├── .gitignore ├── LICENSE ├── README.md ├── bikabika.sln └── bikabika ├── App.cpp ├── App.h ├── App.idl ├── App.xaml ├── Assets ├── LargeTile.scale-100.png ├── LargeTile.scale-125.png ├── LargeTile.scale-150.png ├── LargeTile.scale-200.png ├── LargeTile.scale-400.png ├── LockScreenLogo.scale-200.png ├── Picacgs │ ├── cat_forum.jpg │ ├── cat_game.jpg │ ├── cat_latest.jpg │ ├── cat_leaderboard.jpg │ ├── cat_love_pica.jpg │ ├── cat_random.jpg │ ├── cat_support.jpg │ ├── chat_bg_image.png │ ├── exit.png │ ├── ic_launcher.png │ ├── icon_256.png │ ├── icon_adult.png │ ├── icon_announcement.png │ ├── icon_block.png │ ├── icon_block_gray.png │ ├── icon_empty.png │ ├── icon_exclamation_error.png │ ├── icon_exp.png │ ├── icon_exp_gray.png │ ├── icon_game_recommend.png │ ├── icon_leave.png │ ├── icon_no_comment.png │ ├── icon_question_error.png │ ├── icon_success.png │ ├── icon_top_comment.png │ ├── icon_unknown_error.png │ ├── login_lock.png │ ├── login_mail.png │ ├── logo_round.png │ ├── picacomic_2.png │ ├── placeholder_avatar.png │ ├── placeholder_avatar_2.png │ ├── placeholder_transparent.png │ ├── push_in.png │ ├── register_bday.png │ ├── register_gender.png │ ├── register_name.png │ ├── search.png │ ├── splash_img.jpg │ └── userlogo.png ├── SmallTile.scale-100.png ├── SmallTile.scale-125.png ├── SmallTile.scale-150.png ├── SmallTile.scale-200.png ├── SmallTile.scale-400.png ├── SplashScreen.scale-100.png ├── SplashScreen.scale-125.png ├── SplashScreen.scale-150.png ├── SplashScreen.scale-200.png ├── SplashScreen.scale-400.png ├── Square150x150Logo.scale-100.png ├── Square150x150Logo.scale-125.png ├── Square150x150Logo.scale-150.png ├── Square150x150Logo.scale-200.png ├── Square150x150Logo.scale-400.png ├── Square44x44Logo.altform-lightunplated_targetsize-16.png ├── Square44x44Logo.altform-lightunplated_targetsize-24.png ├── Square44x44Logo.altform-lightunplated_targetsize-256.png ├── Square44x44Logo.altform-lightunplated_targetsize-32.png ├── Square44x44Logo.altform-lightunplated_targetsize-48.png ├── Square44x44Logo.altform-unplated_targetsize-16.png ├── Square44x44Logo.altform-unplated_targetsize-256.png ├── Square44x44Logo.altform-unplated_targetsize-32.png ├── Square44x44Logo.altform-unplated_targetsize-48.png ├── Square44x44Logo.scale-100.png ├── Square44x44Logo.scale-125.png ├── Square44x44Logo.scale-150.png ├── Square44x44Logo.scale-200.png ├── Square44x44Logo.scale-400.png ├── Square44x44Logo.targetsize-16.png ├── Square44x44Logo.targetsize-24.png ├── Square44x44Logo.targetsize-24_altform-unplated.png ├── Square44x44Logo.targetsize-256.png ├── Square44x44Logo.targetsize-32.png ├── Square44x44Logo.targetsize-48.png ├── StoreLogo.backup.png ├── StoreLogo.png ├── StoreLogo.scale-100.png ├── StoreLogo.scale-125.png ├── StoreLogo.scale-150.png ├── StoreLogo.scale-200.png ├── StoreLogo.scale-400.png ├── Wide310x150Logo.scale-100.png ├── Wide310x150Logo.scale-125.png ├── Wide310x150Logo.scale-150.png ├── Wide310x150Logo.scale-200.png ├── Wide310x150Logo.scale-400.png ├── logo.png └── logo2.png ├── BikaImage.cpp ├── BikaImage.h ├── BikaImage.idl ├── BikaImage.xaml ├── ClassificationPage.cpp ├── ClassificationPage.h ├── ClassificationPage.idl ├── ClassificationPage.xaml ├── ComicPage.cpp ├── ComicPage.h ├── ComicPage.idl ├── ComicPage.xaml ├── CommentView.cpp ├── CommentView.h ├── CommentView.idl ├── DownloadPage.cpp ├── DownloadPage.h ├── DownloadPage.idl ├── DownloadPage.xaml ├── HomePage.cpp ├── HomePage.h ├── HomePage.idl ├── HomePage.xaml ├── InfoPage.cpp ├── InfoPage.h ├── InfoPage.idl ├── InfoPage.xaml ├── MainPage.cpp ├── MainPage.h ├── MainPage.idl ├── MainPage.xaml ├── Package.appxmanifest ├── PicArgs.cpp ├── PicArgs.h ├── PicArgs.idl ├── PicPage.cpp ├── PicPage.h ├── PicPage.idl ├── PicPage.xaml ├── PropertySheet.props ├── Resources └── zh-cn │ └── Resources.resw ├── SettingsPage.cpp ├── SettingsPage.h ├── SettingsPage.idl ├── SettingsPage.xaml ├── Themes └── BikaTheme.xaml ├── UserPage.cpp ├── UserPage.h ├── UserPage.idl ├── UserPage.xaml ├── Utils ├── ComicArgs.cpp ├── ComicArgs.h ├── ComicArgs.idl ├── KeywordBox.cpp ├── KeywordBox.h └── KeywordBox.idl ├── bikabika.vcxproj ├── bikabika.vcxproj.filters ├── bikabika.vcxproj.user ├── bikabika_TemporaryKey.pfx ├── packages.config ├── pch.cpp └── pch.h /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 此 .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。 3 | ################################################################################ 4 | 5 | /.vs/bikabika 6 | /bikabika/Generated Files 7 | *.txt 8 | /packages/Microsoft.Windows.CppWinRT.2.0.210806.1 9 | /packages 10 | /bikabika/x64/Debug 11 | /x64/Debug/bikabika 12 | /bikabika/x64/Release 13 | /x64/Release/bikabika 14 | /AppPackages/bikabika/ 15 | /ARM 16 | /bikabika/ARM 17 | /bikabika/ARM/Release 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | bikabika 4 | 5 |

6 |
7 | 8 | # 嗶咔漫畫UWP版🍍 9 | 10 | ✨ 该项目作为插件嵌入到新的应用[ShadowViewer](https://github.com/kitUIN/ShadowViewer)中✨ 11 | 12 | 13 |
14 |

15 | 16 | release 17 | 18 | 19 | license 20 | 21 | 22 | bikabika 23 | 24 | 25 | bikabika 26 | 27 |

28 | 29 | 30 | ## 本项目已停止维护,请移步到新项目->[哔咔插件](https://github.com/kitUIN/ShadowViewer.Plugin.Bika) 31 | 32 | 33 | 34 | 35 | ## 引言📖 36 | 37 | > C++ 100%🆗 38 | - 美观简洁 39 | - 为Windows平台开发的UWP版嗶咔漫畫 40 | - 有问题或者建议可以提issue 41 | - 支持项目可以点个Star✨呢~ 42 | - 点个Watch👀能随时了解开发动态呢~ 43 | - [Telegram频道](https://t.me/bikabikaUWP) 将会提前发布测试版以供测试 44 | 45 | > 刚学C++, 做个项目练练手 46 | > 47 | > 当前为早期开发版本,bug较多,功能不全,等我慢慢开发 48 | 49 | ## 使用指南✏️ 50 | 51 | ### 安装🍩 52 | 53 | 1.打开`Release` 页面,找到最新版本,并选择适用于当前系统的安装包下载。 54 | 55 | > 注:当前仍为早期开发版,功能不齐 56 | 57 | 2.在Windows `系统设置` 中打开 `开发者模式` 。 58 | 59 | 3.压缩包下载完成后,解压压缩包 60 | 61 | 4.在管理员模式下,右键解压后的 `install.ps1` 脚本,`使用 PowerShell 运行` (不是PowerShell Core),根据提示进行安装。 62 | 63 | 保姆级教程(施工中) 64 | 65 | ### 关于代理💗 66 | 67 | 由于UWP软件是无法使用外部代理的,我们需要一些工具来帮助我们实现使用代理的功能。 68 | 69 | 推荐使用Clash\ 70 | ![1](https://i.niupic.com/images/2021/12/09/9Lp1.png) 71 | ![2](https://i.niupic.com/images/2021/12/09/9Lp0.png) 72 | 73 | 保存后就可以使用Clash代理了 74 | 75 | 保姆级教程(施工中) 76 | 77 | ## 展示🍀 78 | > 此为重制版新UI,目前仅在[Telegram频道](https://t.me/bikabikaUWP) 测试 79 | > 待完整开发后在Github发布 80 | ![](https://files.catbox.moe/exh50q.png) 81 | ![](https://files.catbox.moe/47jzrt.png) 82 | ![](https://files.catbox.moe/mzitik.png) 83 | ![](https://files.catbox.moe/8mpfdq.png) 84 | ![](https://files.catbox.moe/vfed3i.png) 85 | 暗系主题: 86 | ![](https://files.catbox.moe/x0s1kj.png) 87 | 磁贴: 88 | ![](https://i.niupic.com/images/2022/03/06/9W2W.png) 89 | ## 功能📝 90 | 以下为重置版功能列表 91 | * 登陆 92 | 93 | * [x] 登陆 94 | 95 | * [ ] 自动测速分流 96 | 97 | * [x] 多用户切换 98 | 99 | * 个人信息 100 | 101 | * [ ] 个人信息 102 | 103 | * [ ] 打卡 104 | 105 | * [ ] 收藏 106 | 107 | * [ ] 浏览历史 108 | 109 | * 主页 110 | 111 | * [ ] 公告栏 112 | 113 | * [ ] 本子神魔 114 | 115 | * 分区 116 | 117 | * [ ] 哔咔排行榜 118 | 119 | * [x] 随机本子 120 | 121 | * [x] 最近更新 122 | 123 | * [x] 其他主要分区 124 | 125 | * 搜索 126 | 127 | * [x] 搜索栏自动建议大家都在搜的关键字 128 | 129 | * [x] 搜索 130 | 131 | * [x] 搜索栏显示历史记录 132 | 133 | * [x] 点击标签搜索 134 | 135 | * [ ] 点击作者搜索 136 | 137 | * 漫画 138 | 139 | * [x] 收藏 140 | 141 | * [x] 爱心 142 | 143 | * [x] 评论区 144 | 145 | * [x] 发送评论 146 | 147 | * [ ] 封印本子 148 | 149 | * [ ] 下载 150 | 151 | * 看图 152 | 153 | * [ ] 全屏 154 | 155 | * [ ] 进度条 156 | 157 | * 游戏 158 | 159 | * [ ] 界面 160 | 161 | 162 | 163 | -------------------------------------------------------------------------------- /bikabika.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.2.32519.379 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bikabika", "bikabika\bikabika.vcxproj", "{42EAA1F1-32B3-4181-BB7D-2CC48932AD58}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|ARM = Debug|ARM 11 | Debug|ARM64 = Debug|ARM64 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|ARM = Release|ARM 15 | Release|ARM64 = Release|ARM64 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|ARM.ActiveCfg = Debug|ARM 21 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|ARM.Build.0 = Debug|ARM 22 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|ARM.Deploy.0 = Debug|ARM 23 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|ARM64.ActiveCfg = Debug|ARM64 24 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|ARM64.Build.0 = Debug|ARM64 25 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|ARM64.Deploy.0 = Debug|ARM64 26 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|x64.ActiveCfg = Debug|x64 27 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|x64.Build.0 = Debug|x64 28 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|x64.Deploy.0 = Debug|x64 29 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|x86.ActiveCfg = Debug|Win32 30 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|x86.Build.0 = Debug|Win32 31 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Debug|x86.Deploy.0 = Debug|Win32 32 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|ARM.ActiveCfg = Release|ARM 33 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|ARM.Build.0 = Release|ARM 34 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|ARM.Deploy.0 = Release|ARM 35 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|ARM64.ActiveCfg = Release|ARM64 36 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|ARM64.Build.0 = Release|ARM64 37 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|ARM64.Deploy.0 = Release|ARM64 38 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|x64.ActiveCfg = Release|x64 39 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|x64.Build.0 = Release|x64 40 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|x64.Deploy.0 = Release|x64 41 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|x86.ActiveCfg = Release|Win32 42 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|x86.Build.0 = Release|Win32 43 | {42EAA1F1-32B3-4181-BB7D-2CC48932AD58}.Release|x86.Deploy.0 = Release|Win32 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | GlobalSection(ExtensibilityGlobals) = postSolution 49 | SolutionGuid = {86C695F4-B989-4413-BFE3-D2BBC515A808} 50 | EndGlobalSection 51 | EndGlobal 52 | -------------------------------------------------------------------------------- /bikabika/App.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | 3 | #include "App.h" 4 | #include "MainPage.h" 5 | 6 | using namespace winrt; 7 | using namespace Windows::ApplicationModel; 8 | using namespace Windows::ApplicationModel::Activation; 9 | using namespace Windows::Foundation; 10 | using namespace Windows::UI::Xaml; 11 | using namespace Windows::UI::Xaml::Controls; 12 | using namespace Windows::UI::Xaml::Navigation; 13 | using namespace bikabika; 14 | using namespace bikabika::implementation; 15 | 16 | /// 17 | /// Initializes the singleton application object. This is the first line of authored code 18 | /// executed, and as such is the logical equivalent of main() or WinMain(). 19 | /// 20 | App::App() 21 | { 22 | InitializeComponent(); 23 | Suspending({ this, &App::OnSuspending }); 24 | 25 | #if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION 26 | UnhandledException([this](IInspectable const&, UnhandledExceptionEventArgs const& e) 27 | { 28 | if (IsDebuggerPresent()) 29 | { 30 | auto errorMessage = e.Message(); 31 | __debugbreak(); 32 | } 33 | }); 34 | #endif 35 | } 36 | 37 | /// 38 | /// Invoked when the application is launched normally by the end user. Other entry points 39 | /// will be used such as when the application is launched to open a specific file. 40 | /// 41 | /// Details about the launch request and process. 42 | void App::OnLaunched(LaunchActivatedEventArgs const& e) 43 | { 44 | Frame rootFrame{ nullptr }; 45 | auto content = Window::Current().Content(); 46 | if (content) 47 | { 48 | rootFrame = content.try_as(); 49 | } 50 | 51 | // Do not repeat app initialization when the Window already has content, 52 | // just ensure that the window is active 53 | if (rootFrame == nullptr) 54 | { 55 | // Create a Frame to act as the navigation context and associate it with 56 | // a SuspensionManager key 57 | rootFrame = Frame(); 58 | 59 | rootFrame.NavigationFailed({ this, &App::OnNavigationFailed }); 60 | 61 | if (e.PreviousExecutionState() == ApplicationExecutionState::Terminated) 62 | { 63 | // Restore the saved session state only when appropriate, scheduling the 64 | // final launch steps after the restore is complete 65 | } 66 | 67 | if (e.PrelaunchActivated() == false) 68 | { 69 | if (rootFrame.Content() == nullptr) 70 | { 71 | // When the navigation stack isn't restored navigate to the first page, 72 | // configuring the new page by passing required information as a navigation 73 | // parameter 74 | rootFrame.Navigate(xaml_typename(), box_value(e.Arguments())); 75 | } 76 | // Place the frame in the current Window 77 | Window::Current().Content(rootFrame); 78 | // Ensure the current window is active 79 | Window::Current().Activate(); 80 | } 81 | } 82 | else 83 | { 84 | if (e.PrelaunchActivated() == false) 85 | { 86 | if (rootFrame.Content() == nullptr) 87 | { 88 | // When the navigation stack isn't restored navigate to the first page, 89 | // configuring the new page by passing required information as a navigation 90 | // parameter 91 | rootFrame.Navigate(xaml_typename(), box_value(e.Arguments())); 92 | } 93 | // Ensure the current window is active 94 | Window::Current().Activate(); 95 | } 96 | } 97 | } 98 | 99 | /// 100 | /// Invoked when application execution is being suspended. Application state is saved 101 | /// without knowing whether the application will be terminated or resumed with the contents 102 | /// of memory still intact. 103 | /// 104 | /// The source of the suspend request. 105 | /// Details about the suspend request. 106 | void App::OnSuspending([[maybe_unused]] IInspectable const& sender, [[maybe_unused]] SuspendingEventArgs const& e) 107 | { 108 | // Save application state and stop any background activity 109 | } 110 | 111 | /// 112 | /// Invoked when Navigation to a certain page fails 113 | /// 114 | /// The Frame which failed navigation 115 | /// Details about the navigation failure 116 | void App::OnNavigationFailed(IInspectable const&, NavigationFailedEventArgs const& /*e*/) 117 | { 118 | //throw hresult_error(E_FAIL, hstring(L"Failed to load Page ") + e.SourcePageType().Name); 119 | } -------------------------------------------------------------------------------- /bikabika/App.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "App.xaml.g.h" 3 | 4 | namespace winrt::bikabika::implementation 5 | { 6 | struct App : AppT 7 | { 8 | App(); 9 | 10 | void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs const&); 11 | void OnSuspending(IInspectable const&, Windows::ApplicationModel::SuspendingEventArgs const&); 12 | void OnNavigationFailed(IInspectable const&, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs const&); 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /bikabika/App.idl: -------------------------------------------------------------------------------- 1 | namespace bikabika 2 | { 3 | } 4 | -------------------------------------------------------------------------------- /bikabika/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /bikabika/Assets/LargeTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/LargeTile.scale-100.png -------------------------------------------------------------------------------- /bikabika/Assets/LargeTile.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/LargeTile.scale-125.png -------------------------------------------------------------------------------- /bikabika/Assets/LargeTile.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/LargeTile.scale-150.png -------------------------------------------------------------------------------- /bikabika/Assets/LargeTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/LargeTile.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/LargeTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/LargeTile.scale-400.png -------------------------------------------------------------------------------- /bikabika/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/cat_forum.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/cat_forum.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/cat_game.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/cat_game.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/cat_latest.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/cat_latest.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/cat_leaderboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/cat_leaderboard.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/cat_love_pica.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/cat_love_pica.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/cat_random.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/cat_random.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/cat_support.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/cat_support.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/chat_bg_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/chat_bg_image.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/exit.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/ic_launcher.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_256.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_adult.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_adult.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_announcement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_announcement.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_block.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_block_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_block_gray.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_empty.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_exclamation_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_exclamation_error.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_exp.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_exp_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_exp_gray.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_game_recommend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_game_recommend.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_leave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_leave.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_no_comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_no_comment.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_question_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_question_error.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_success.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_top_comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_top_comment.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/icon_unknown_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/icon_unknown_error.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/login_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/login_lock.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/login_mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/login_mail.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/logo_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/logo_round.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/picacomic_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/picacomic_2.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/placeholder_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/placeholder_avatar.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/placeholder_avatar_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/placeholder_avatar_2.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/placeholder_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/placeholder_transparent.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/push_in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/push_in.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/register_bday.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/register_bday.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/register_gender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/register_gender.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/register_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/register_name.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/search.png -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/splash_img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/splash_img.jpg -------------------------------------------------------------------------------- /bikabika/Assets/Picacgs/userlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Picacgs/userlogo.png -------------------------------------------------------------------------------- /bikabika/Assets/SmallTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SmallTile.scale-100.png -------------------------------------------------------------------------------- /bikabika/Assets/SmallTile.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SmallTile.scale-125.png -------------------------------------------------------------------------------- /bikabika/Assets/SmallTile.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SmallTile.scale-150.png -------------------------------------------------------------------------------- /bikabika/Assets/SmallTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SmallTile.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/SmallTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SmallTile.scale-400.png -------------------------------------------------------------------------------- /bikabika/Assets/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /bikabika/Assets/SplashScreen.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SplashScreen.scale-125.png -------------------------------------------------------------------------------- /bikabika/Assets/SplashScreen.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SplashScreen.scale-150.png -------------------------------------------------------------------------------- /bikabika/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/SplashScreen.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/SplashScreen.scale-400.png -------------------------------------------------------------------------------- /bikabika/Assets/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /bikabika/Assets/Square150x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square150x150Logo.scale-125.png -------------------------------------------------------------------------------- /bikabika/Assets/Square150x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square150x150Logo.scale-150.png -------------------------------------------------------------------------------- /bikabika/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-16.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-256.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-32.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.altform-unplated_targetsize-48.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.scale-100.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.scale-125.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.scale-150.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.scale-400.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.targetsize-16.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.targetsize-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.targetsize-24.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.targetsize-256.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.targetsize-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.targetsize-32.png -------------------------------------------------------------------------------- /bikabika/Assets/Square44x44Logo.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Square44x44Logo.targetsize-48.png -------------------------------------------------------------------------------- /bikabika/Assets/StoreLogo.backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/StoreLogo.backup.png -------------------------------------------------------------------------------- /bikabika/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/StoreLogo.png -------------------------------------------------------------------------------- /bikabika/Assets/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /bikabika/Assets/StoreLogo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/StoreLogo.scale-125.png -------------------------------------------------------------------------------- /bikabika/Assets/StoreLogo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/StoreLogo.scale-150.png -------------------------------------------------------------------------------- /bikabika/Assets/StoreLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/StoreLogo.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/StoreLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/StoreLogo.scale-400.png -------------------------------------------------------------------------------- /bikabika/Assets/Wide310x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Wide310x150Logo.scale-100.png -------------------------------------------------------------------------------- /bikabika/Assets/Wide310x150Logo.scale-125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Wide310x150Logo.scale-125.png -------------------------------------------------------------------------------- /bikabika/Assets/Wide310x150Logo.scale-150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Wide310x150Logo.scale-150.png -------------------------------------------------------------------------------- /bikabika/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /bikabika/Assets/Wide310x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/Wide310x150Logo.scale-400.png -------------------------------------------------------------------------------- /bikabika/Assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/logo.png -------------------------------------------------------------------------------- /bikabika/Assets/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitUIN/bikabika/d7e974fee8cbad409a701f538561c4e06487389b/bikabika/Assets/logo2.png -------------------------------------------------------------------------------- /bikabika/BikaImage.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "BikaImage.h" 3 | #if __has_include("BikaImage.g.cpp") 4 | #include "BikaImage.g.cpp" 5 | #endif 6 | 7 | using namespace winrt; 8 | using namespace Windows::UI::Xaml; 9 | using namespace Windows::Foundation; 10 | using namespace Windows::Storage::Streams; 11 | namespace winrt::bikabika::implementation 12 | { 13 | BikaImage::BikaImage() 14 | { 15 | DefaultStyleKey(winrt::box_value(L"bikabika.BikaImage")); 16 | InitializeComponent(); 17 | } 18 | 19 | Windows::UI::Xaml::DependencyProperty BikaImage::m_imageProperty = 20 | Windows::UI::Xaml::DependencyProperty::Register( 21 | L"ImgBlock", 22 | winrt::xaml_typename(), 23 | winrt::xaml_typename(), 24 | Windows::UI::Xaml::PropertyMetadata{ nullptr } 25 | ); 26 | winrt::BikaClient::Blocks::ImageBlock BikaImage::ImgBlock() 27 | { 28 | return winrt::unbox_value(GetValue(m_imageProperty)); 29 | } 30 | 31 | void BikaImage::ImgBlock(winrt::BikaClient::Blocks::ImageBlock const& value) 32 | { 33 | SetValue(m_imageProperty, winrt::box_value(value)); 34 | BikaImg().Source(value.Img()); 35 | } 36 | 37 | Windows::UI::Xaml::Media::ImageSource BikaImage::ImgSource() 38 | { 39 | return BikaImg().Source(); 40 | } 41 | void BikaImage::ImageLoaded(bool const& value) 42 | { 43 | m_loaded = value; 44 | } 45 | bool BikaImage::ImageLoaded() 46 | { 47 | return m_loaded; 48 | } 49 | } 50 | void winrt::bikabika::implementation::BikaImage::BikaImg_ImageFailed(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::ExceptionRoutedEventArgs const& e) 51 | { 52 | ImageLoaded(false); 53 | RefreshIcon().Visibility(Visibility::Visible); 54 | } 55 | 56 | 57 | Windows::Foundation::IAsyncAction winrt::bikabika::implementation::BikaImage::BikaImg_ImageOpened(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e) 58 | { 59 | ImageLoaded(true); 60 | RefreshIcon().Visibility(Visibility::Collapsed); 61 | // 通过Xaml界面获取位图的大小不对 62 | //winrt::BikaClient::Blocks::ImageBlock imgBlock = ImgBlock(); 63 | //winrt::Windows::UI::Xaml::Media::Imaging::RenderTargetBitmap bitmap; 64 | //co_await bitmap.RenderAsync(sender.as()); 65 | //IBuffer pixels = co_await bitmap.GetPixelsAsync(); 66 | 67 | //Windows::Storage::ApplicationDataContainer settings = Windows::Storage::ApplicationData::Current().LocalSettings().CreateContainer(L"Settings", Windows::Storage::ApplicationDataCreateDisposition::Always); 68 | //if (!settings.Values().HasKey(L"CacheFolder")) 69 | //{ 70 | // Windows::Storage::StorageFolder storageFolder{ Windows::Storage::ApplicationData::Current().LocalFolder() }; 71 | // Windows::Storage::StorageFolder downloadFolder = co_await storageFolder.CreateFolderAsync(L"Cache"); 72 | // settings.Values().Insert(L"CacheFolder", box_value(downloadFolder.Path())); 73 | //} 74 | //Windows::Storage::StorageFolder storageFolder = co_await Windows::Storage::StorageFolder::GetFolderFromPathAsync(settings.Values().Lookup(L"CacheFolder").as()); 75 | //Windows::Storage::StorageFile imgFile = co_await storageFolder.CreateFileAsync(imgBlock.OriginalName(), Windows::Storage::CreationCollisionOption::ReplaceExisting); 76 | //Windows::Storage::Streams::IRandomAccessStream stream{ co_await imgFile.OpenAsync(Windows::Storage::FileAccessMode::ReadWrite) }; 77 | //auto softwareBitmap = winrt::Windows::Graphics::Imaging::SoftwareBitmap::CreateCopyFromBuffer(pixels, winrt::Windows::Graphics::Imaging::BitmapPixelFormat::Bgra8, (uint32_t)200, (uint32_t)200, winrt::Windows::Graphics::Imaging::BitmapAlphaMode::Ignore); 78 | //auto propertySet = winrt::Windows::Graphics::Imaging::BitmapPropertySet(); 79 | //winrt::Windows::Graphics::Imaging::BitmapTypedValue qualityValue(box_value(1.0), Windows::Foundation::PropertyType::Single); 80 | //propertySet.Insert(L"ImageQuality", qualityValue); 81 | //winrt::Windows::Graphics::Imaging::BitmapEncoder encoder = co_await winrt::Windows::Graphics::Imaging::BitmapEncoder::CreateAsync(winrt::Windows::Graphics::Imaging::BitmapEncoder::JpegEncoderId(), stream, propertySet); 82 | //encoder.SetSoftwareBitmap(softwareBitmap); 83 | ///*auto dataReader = DataReader::FromBuffer(pixels); 84 | //winrt::array_view b; 85 | //dataReader.ReadBytes(b); 86 | //encoder.SetPixelData(winrt::Windows::Graphics::Imaging::BitmapPixelFormat::Bgra8, 87 | // winrt::Windows::Graphics::Imaging::BitmapAlphaMode::Ignore, 88 | // (uint32_t)bitmap.PixelWidth(),(uint32_t)bitmap.PixelHeight(), 89 | // 96, 96,b);*/ 90 | //co_await encoder.FlushAsync(); 91 | 92 | } 93 | 94 | 95 | void winrt::bikabika::implementation::BikaImage::RefreshIcon_PointerPressed(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e) 96 | { 97 | winrt::BikaClient::Blocks::ImageBlock imgBlock = ImgBlock(); 98 | BikaImg().Source(imgBlock.Img()); 99 | } 100 | -------------------------------------------------------------------------------- /bikabika/BikaImage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "winrt/Windows.UI.Xaml.h" 4 | #include "winrt/Windows.UI.Xaml.Markup.h" 5 | #include "winrt/Windows.UI.Xaml.Interop.h" 6 | #include "winrt/Windows.UI.Xaml.Controls.Primitives.h" 7 | #include "BikaImage.g.h" 8 | 9 | namespace winrt::bikabika::implementation 10 | { 11 | struct BikaImage : BikaImageT 12 | { 13 | BikaImage(); 14 | 15 | winrt::BikaClient::Blocks::ImageBlock ImgBlock(); 16 | void ImgBlock(winrt::BikaClient::Blocks::ImageBlock const& value); 17 | Windows::UI::Xaml::Media::ImageSource ImgSource(); 18 | static Windows::UI::Xaml::DependencyProperty ImageProperty() { return m_imageProperty; } 19 | void ImageLoaded(bool const& value); 20 | bool ImageLoaded(); 21 | private: 22 | static Windows::UI::Xaml::DependencyProperty m_imageProperty; 23 | bool m_loaded = false; 24 | 25 | public: 26 | void BikaImg_ImageFailed(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::ExceptionRoutedEventArgs const& e); 27 | Windows::Foundation::IAsyncAction BikaImg_ImageOpened(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e); 28 | void RefreshIcon_PointerPressed(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e); 29 | }; 30 | } 31 | 32 | namespace winrt::bikabika::factory_implementation 33 | { 34 | struct BikaImage : BikaImageT 35 | { 36 | }; 37 | } 38 | -------------------------------------------------------------------------------- /bikabika/BikaImage.idl: -------------------------------------------------------------------------------- 1 | namespace bikabika 2 | { 3 | [default_interface] 4 | runtimeclass BikaImage : Windows.UI.Xaml.Controls.UserControl 5 | { 6 | BikaImage(); 7 | static Windows.UI.Xaml.DependencyProperty ImageProperty{ get; }; 8 | Windows.UI.Xaml.Media.ImageSource ImgSource{ get; }; 9 | BikaClient.Blocks.ImageBlock ImgBlock; 10 | Boolean ImageLoaded; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bikabika/BikaImage.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 14 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /bikabika/ClassificationPage.cpp: -------------------------------------------------------------------------------- 1 | /*****************************************************************//** 2 | * \file ClassificationPage.cpp 3 | * \brief 分类页面 4 | * 5 | * \author kulujun 6 | * \date June 2022 7 | *********************************************************************/ 8 | #include "pch.h" 9 | #include "ClassificationPage.h" 10 | #if __has_include("ClassificationPage.g.cpp") 11 | #include "ClassificationPage.g.cpp" 12 | #endif 13 | using namespace winrt::BikaClient::Blocks; 14 | 15 | using namespace winrt; 16 | using namespace Windows::UI::Xaml; 17 | using namespace Windows::UI::Xaml::Controls; 18 | using namespace Windows::Data::Json; 19 | using namespace Windows::Foundation; 20 | namespace winrt::bikabika::implementation 21 | { 22 | ClassificationPage::ClassificationPage() 23 | { 24 | InitializeComponent(); 25 | } 26 | 27 | winrt::Windows::Foundation::Collections::IObservableVector ClassificationPage::Categories() 28 | { 29 | return m_categories; 30 | } 31 | 32 | void ClassificationPage::Categories(winrt::Windows::Foundation::Collections::IObservableVector const& value) 33 | { 34 | m_categories = value; 35 | m_propertyChanged(*this, Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"Categories" }); 36 | } 37 | CategoriesBlock ClassificationPage::CreateCategoriesBlock(hstring const& title, hstring const& uri) 38 | { 39 | ImageBlock imageBlock; 40 | imageBlock.Img(winrt::Windows::UI::Xaml::Media::Imaging::BitmapImage{ Uri{ uri } }); 41 | CategoriesBlock categoriesBlock; 42 | categoriesBlock.Thumb(imageBlock); 43 | categoriesBlock.Title(title); 44 | categoriesBlock.IsAuto(true); 45 | return categoriesBlock; 46 | } 47 | Windows::Foundation::IAsyncAction ClassificationPage::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) 48 | { 49 | 50 | m_categories.Append(CreateCategoriesBlock(resourceLoader.GetString(L"Categories/Support"),L"ms-appx:///Assets//Picacgs//cat_support.jpg")); 51 | m_categories.Append(CreateCategoriesBlock(resourceLoader.GetString(L"Categories/Leaderboard"),L"ms-appx:///Assets//Picacgs//cat_leaderboard.jpg")); 52 | m_categories.Append(CreateCategoriesBlock(resourceLoader.GetString(L"Categories/Game"),L"ms-appx:///Assets//Picacgs//cat_game.jpg")); 53 | 54 | m_categories.Append(CreateCategoriesBlock(resourceLoader.GetString(L"Categories/Smalltool"),L"ms-appx:///Assets//Picacgs//cat_smalltool.jpg")); 55 | m_categories.Append(CreateCategoriesBlock(resourceLoader.GetString(L"Categories/Forum"),L"ms-appx:///Assets//Picacgs//cat_forum.jpg")); 56 | m_categories.Append(CreateCategoriesBlock(resourceLoader.GetString(L"Categories/Latest"),L"ms-appx:///Assets//Picacgs//cat_latest.jpg")); 57 | m_categories.Append(CreateCategoriesBlock(resourceLoader.GetString(L"Categories/Random"),L"ms-appx:///Assets//Picacgs//cat_random.jpg")); 58 | __super::OnNavigatedTo(e); 59 | auto res = co_await rootPage.HttpClient().Categories(); 60 | rootPage.LayoutMessageShow(false); 61 | if (res.Code() == -1) 62 | { 63 | rootPage.ContentDialogShow(BikaHttpStatus::TIMEOUT, L""); 64 | } 65 | else if (res.Code() == 200) 66 | { 67 | for (auto x : res.Categories()) 68 | { 69 | m_categories.Append(x); 70 | } 71 | } 72 | else if (res.Code() == 401 && res.Error() == L"1005") 73 | { 74 | rootPage.ContentDialogShow(BikaHttpStatus::NOAUTH, res.Message()); 75 | } 76 | else 77 | { 78 | rootPage.ContentDialogShow(BikaHttpStatus::UNKNOWN, res.Message()); 79 | } 80 | } 81 | winrt::event_token ClassificationPage::PropertyChanged(winrt::Windows::UI::Xaml::Data::PropertyChangedEventHandler const& handler) 82 | { 83 | return m_propertyChanged.add(handler); 84 | } 85 | void ClassificationPage::PropertyChanged(winrt::event_token const& token) noexcept 86 | { 87 | m_propertyChanged.remove(token); 88 | } 89 | } 90 | 91 | //选择 92 | Windows::Foundation::IAsyncAction winrt::bikabika::implementation::ClassificationPage::GridV_ItemClick(winrt::Windows::Foundation::IInspectable const& /*sender*/, winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs const& e) 93 | { 94 | auto categoriesBlack = e.ClickedItem().as(); 95 | bikabika::ComicArgs args; 96 | if (!categoriesBlack.IsWeb()) { 97 | 98 | if (categoriesBlack.IsAuto()) 99 | { 100 | if (categoriesBlack.Title()== resourceLoader.GetString(L"Categories/Latest")) 101 | { 102 | args.ComicType(bikabika::ComicsType::RECENTLY_UPDATE); 103 | } 104 | else if (categoriesBlack.Title() == resourceLoader.GetString(L"Categories/Leaderboard")) 105 | { 106 | co_return; 107 | } 108 | else if (categoriesBlack.Title() == resourceLoader.GetString(L"Categories/Game")) 109 | { 110 | co_return; 111 | } 112 | else if (categoriesBlack.Title() == resourceLoader.GetString(L"Categories/Smalltool")) 113 | { 114 | co_return; 115 | } 116 | else if (categoriesBlack.Title() == resourceLoader.GetString(L"Categories/Forum")) 117 | { 118 | co_return; 119 | } 120 | else if (categoriesBlack.Title() == resourceLoader.GetString(L"Categories/Random")) 121 | { 122 | args.ComicType(bikabika::ComicsType::RANDOM); 123 | } 124 | else if (categoriesBlack.Title() == resourceLoader.GetString(L"Categories/Support")) 125 | { 126 | Windows::System::LauncherOptions launcherOptions; 127 | launcherOptions.TreatAsUntrusted(true); 128 | co_await Windows::System::Launcher::LaunchUriAsync(Uri{ L"https://donate.wikawika.xyz" }); 129 | co_return; 130 | } 131 | 132 | } 133 | else 134 | { 135 | 136 | args.ComicType(bikabika::ComicsType::COMIC); 137 | } 138 | 139 | } 140 | else 141 | { 142 | if (categoriesBlack.Title() == resourceLoader.GetString(L"Categories/Help")) 143 | { 144 | Windows::System::LauncherOptions launcherOptions; 145 | launcherOptions.TreatAsUntrusted(true); 146 | co_await Windows::System::Launcher::LaunchUriAsync(Uri{ L"https://donate.wikawika.xyz" }); 147 | } 148 | co_return; 149 | } 150 | args.Title(categoriesBlack.Title()); 151 | args.SortMode(winrt::BikaClient::Utils::BikaSort{ winrt::BikaClient::Utils::SortMode::UA }); 152 | winrt::Microsoft::UI::Xaml::Controls::SymbolIconSource symbol; 153 | winrt::Windows::UI::Xaml::Controls::Frame frame; 154 | symbol.Symbol(Windows::UI::Xaml::Controls::Symbol::List); 155 | frame.Navigate(winrt::xaml_typename(), box_value(args)); 156 | rootPage.CreateNewTab(frame, categoriesBlack.Title(), symbol); 157 | } 158 | 159 | 160 | void winrt::bikabika::implementation::ClassificationPage::Image_PointerEntered(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& /*e*/) 161 | { 162 | auto grid = sender.as(); 163 | auto border = grid.Children().GetAt(0).as(); 164 | auto image = border.Child().as(); 165 | border.Margin(Thickness{ 0,0,0,0 }); 166 | border.Width(145); 167 | border.Height(145); 168 | image.Width(145); 169 | image.Height(145); 170 | } 171 | 172 | 173 | void winrt::bikabika::implementation::ClassificationPage::Image_PointerExited(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& /*e*/) 174 | { 175 | auto grid= sender.as(); 176 | auto border = grid.Children().GetAt(0).as(); 177 | auto image = border.Child().as(); 178 | border.Margin(Thickness{ 0,5,0,0 }); 179 | border.Width(140); 180 | border.Height(140); 181 | image.Width(140); 182 | image.Height(140); 183 | } 184 | -------------------------------------------------------------------------------- /bikabika/ClassificationPage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ClassificationPage.g.h" 4 | 5 | namespace winrt::bikabika::implementation 6 | { 7 | struct ClassificationPage : ClassificationPageT 8 | { 9 | ClassificationPage(); 10 | Windows::Foundation::IAsyncAction OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e); 11 | winrt::Windows::Foundation::Collections::IObservableVector Categories(); 12 | void Categories(winrt::Windows::Foundation::Collections::IObservableVector const& value); 13 | BikaClient::Blocks::CategoriesBlock CreateCategoriesBlock(hstring const& title, hstring const& uri); 14 | winrt::event_token PropertyChanged(winrt::Windows::UI::Xaml::Data::PropertyChangedEventHandler const& handler); 15 | void PropertyChanged(winrt::event_token const& token) noexcept; 16 | private: 17 | winrt::event m_propertyChanged; 18 | Windows::ApplicationModel::Resources::ResourceLoader resourceLoader{ Windows::ApplicationModel::Resources::ResourceLoader::GetForCurrentView() }; 19 | bikabika::MainPage rootPage{ MainPage::Current() }; 20 | winrt::Windows::Foundation::Collections::IObservableVector m_categories = winrt::single_threaded_observable_vector(); 21 | 22 | 23 | public: 24 | Windows::Foundation::IAsyncAction GridV_ItemClick(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs const& e); 25 | void Image_PointerEntered(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e); 26 | void Image_PointerExited(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e); 27 | }; 28 | } 29 | 30 | namespace winrt::bikabika::factory_implementation 31 | { 32 | struct ClassificationPage : ClassificationPageT 33 | { 34 | }; 35 | } 36 | -------------------------------------------------------------------------------- /bikabika/ClassificationPage.idl: -------------------------------------------------------------------------------- 1 | namespace bikabika 2 | { 3 | [default_interface] 4 | runtimeclass ClassificationPage : Windows.UI.Xaml.Controls.Page, Windows.UI.Xaml.Data.INotifyPropertyChanged 5 | { 6 | ClassificationPage(); 7 | Windows.Foundation.Collections.IObservableVector Categories{ get; }; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /bikabika/ClassificationPage.xaml: -------------------------------------------------------------------------------- 1 |  10 | 11 | 12 | 13 | 14 | 15 | 16 | 21 | 27 | 28 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 47 | 54 | 59 | 60 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /bikabika/ComicPage.cpp: -------------------------------------------------------------------------------- 1 | /*****************************************************************//** 2 | * \file ComicPage.cpp 3 | * \brief 分区页面 4 | * 5 | * \author kulujun 6 | * \date June 2022 7 | *********************************************************************/ 8 | #include "pch.h" 9 | #include "ComicPage.h" 10 | #if __has_include("ComicPage.g.cpp") 11 | #include "ComicPage.g.cpp" 12 | #endif 13 | 14 | using namespace winrt; 15 | using namespace Windows::UI::Xaml; 16 | using namespace Windows::UI::Xaml::Controls; 17 | namespace winrt::bikabika::implementation 18 | { 19 | ComicPage::ComicPage() 20 | { 21 | InitializeComponent(); 22 | } 23 | Windows::Foundation::IAsyncAction ComicPage::Goto(int32_t const& index, hstring const& title, BikaClient::Utils::SortMode const& mode) 24 | { 25 | if (!TypeCombo().IsEnabled() || !Pips().IsEnabled()) 26 | { 27 | TypeCombo().IsEnabled(true); 28 | Pips().IsEnabled(true); 29 | } 30 | BikaClient::Responses::ComicsResponse res{ nullptr }; 31 | if (m_comicType == ComicsType::SEARCH) 32 | { 33 | res = co_await rootPage.HttpClient().Search(index, title, mode); 34 | } 35 | else if (m_comicType == ComicsType::FACOURITE) 36 | { 37 | //auto res = co_await rootPage.HttpClient().Search(index, title, mode); 38 | } 39 | else if (m_comicType == ComicsType::RECENTLY_UPDATE) 40 | { 41 | res = co_await rootPage.HttpClient().Comics(index, mode); 42 | } 43 | else if (m_comicType == ComicsType::HISTORY) 44 | { 45 | 46 | } 47 | else if (m_comicType == ComicsType::RANDOM) 48 | { 49 | TypeCombo().IsEnabled(false); 50 | Pips().IsEnabled(false); 51 | res = co_await rootPage.HttpClient().Random(); 52 | } 53 | else 54 | { 55 | res = co_await rootPage.HttpClient().Comics(index, title, mode); 56 | } 57 | if (res.Code() == -1) 58 | { 59 | rootPage.ContentDialogShow(BikaHttpStatus::TIMEOUT, L""); 60 | } 61 | else if (res.Code() == 200) 62 | { 63 | for (auto x : res.Comics()) 64 | { 65 | m_comics.Append(x); 66 | } 67 | if (m_comicType != ComicsType::RANDOM) 68 | { 69 | Index(res.Page() - 1); 70 | AllPage(res.Pages()); 71 | } 72 | } 73 | else if (res.Code() == 401 && res.Error() == L"1005") 74 | { 75 | rootPage.ContentDialogShow(BikaHttpStatus::NOAUTH, res.Message()); 76 | } 77 | else 78 | { 79 | rootPage.ContentDialogShow(BikaHttpStatus::UNKNOWN, res.Message()); 80 | } 81 | } 82 | void ComicPage::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e) 83 | { 84 | TypeCombo().ItemsSource(m_typeBlocks); 85 | 86 | auto params = winrt::unbox_value(e.Parameter()); 87 | m_sort = params.SortMode().SortMode(); 88 | for (uint32_t i = 0; i < 4; i++) 89 | { 90 | if (m_typeBlocks.GetAt(i) == params.SortModeString()) 91 | { 92 | TypeCombo().SelectedIndex(i); 93 | } 94 | } 95 | ComicTitle().Text(params.Title()); 96 | m_comicType = params.ComicType(); 97 | } 98 | 99 | winrt::event_token ComicPage::PropertyChanged(winrt::Windows::UI::Xaml::Data::PropertyChangedEventHandler const& handler) 100 | { 101 | return m_propertyChanged.add(handler); 102 | } 103 | void ComicPage::PropertyChanged(winrt::event_token const& token) noexcept 104 | { 105 | m_propertyChanged.remove(token); 106 | } 107 | winrt::Windows::Foundation::Collections::IObservableVector ComicPage::Comics() 108 | { 109 | return m_comics; 110 | } 111 | int32_t ComicPage::Index() 112 | { 113 | return m_index; 114 | } 115 | int32_t ComicPage::PipIndex() 116 | { 117 | return m_index + 1; 118 | } 119 | int32_t ComicPage::AllPage() 120 | { 121 | return m_pages; 122 | } 123 | void ComicPage::AllPage(int32_t const& value) 124 | { 125 | m_pages = value; 126 | m_propertyChanged(*this, Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"AllPage" }); 127 | } 128 | void ComicPage::Index(int32_t const& value) 129 | { 130 | m_index = value; 131 | m_propertyChanged(*this, Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"Index" }); 132 | m_propertyChanged(*this, Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"PipIndex" }); 133 | } 134 | } 135 | 136 | 137 | 138 | 139 | 140 | Windows::Foundation::IAsyncAction winrt::bikabika::implementation::ComicPage::TypeCombo_SelectionChanged(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs const& e) 141 | { 142 | if (m_firstArrive) 143 | { 144 | hstring s = sender.as().SelectedItem().as(); 145 | if (s == resourceLoader.GetString(L"sort/dd")) m_sort = BikaClient::Utils::SortMode::DD; 146 | else if (s == resourceLoader.GetString(L"sort/da"))m_sort = BikaClient::Utils::SortMode::DA; 147 | else if (s == resourceLoader.GetString(L"sort/ld")) m_sort = BikaClient::Utils::SortMode::LD; 148 | else if (s == resourceLoader.GetString(L"sort/vd")) m_sort = BikaClient::Utils::SortMode::VD; 149 | else m_sort = BikaClient::Utils::SortMode::UA; 150 | if (m_index == 0) 151 | { 152 | m_comics.Clear(); 153 | co_await Goto(1, ComicTitle().Text(), m_sort); 154 | } 155 | else 156 | { 157 | Index(0); 158 | } 159 | } 160 | else m_firstArrive = true; 161 | } 162 | 163 | 164 | void winrt::bikabika::implementation::ComicPage::Index_KeyUp(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e) 165 | { 166 | if (e.Key() == Windows::System::VirtualKey::Enter) 167 | { 168 | auto box = sender.as(); 169 | hstring s = box.Text(); 170 | for (auto x : s) 171 | { 172 | if (!(x >= L'0' && x <= L'9')) 173 | { 174 | box.Text(to_hstring(m_index+1)); 175 | return; 176 | } 177 | } 178 | int32_t index = std::stoi(to_string(s)); 179 | if (index <= m_pages) 180 | { 181 | Index(index - 1); 182 | } 183 | else box.Text(to_hstring(m_index + 1)); 184 | } 185 | } 186 | 187 | 188 | Windows::Foundation::IAsyncAction winrt::bikabika::implementation::ComicPage::PipsPager_SelectedIndexChanged(winrt::Microsoft::UI::Xaml::Controls::PipsPager const& sender, winrt::Microsoft::UI::Xaml::Controls::PipsPagerSelectedIndexChangedEventArgs const& args) 189 | { 190 | if (m_index < m_pages) 191 | { 192 | auto index = sender.SelectedPageIndex(); 193 | m_comics.Clear(); 194 | co_await Goto(index + 1, ComicTitle().Text(), m_sort); 195 | } 196 | } 197 | 198 | 199 | Windows::Foundation::IAsyncAction winrt::bikabika::implementation::ComicPage::RefreshButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e) 200 | { 201 | m_comics.Clear(); 202 | co_await Goto(m_index + 1, ComicTitle().Text(), m_sort); 203 | } 204 | 205 | void winrt::bikabika::implementation::ComicPage::GridV_ItemClick(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs const& e) 206 | { 207 | auto comicBlock = e.ClickedItem().as(); 208 | auto container = GridV().ContainerFromItem(e.ClickedItem()).as(); 209 | FrameworkElement root = container.ContentTemplateRoot().as(); 210 | bikabika::BikaImage bikaImg = root.FindName(L"ConnectedElement2").as(); 211 | if(bikaImg.ImageLoaded()) winrt::Windows::UI::Xaml::Media::Animation::ConnectedAnimationService::GetForCurrentView().PrepareToAnimate(L"ForwardConnectedAnimation", bikaImg.as()); 212 | winrt::Microsoft::UI::Xaml::Controls::SymbolIconSource symbol; 213 | winrt::Windows::UI::Xaml::Controls::Frame frame; 214 | symbol.Symbol(Windows::UI::Xaml::Controls::Symbol::PreviewLink); 215 | frame.Navigate(winrt::xaml_typename(), box_value(single_threaded_vector({ box_value(bikaImg.ImgSource()), box_value(bikabika::ComicArgs(comicBlock.ID(),1,1,1)) })), winrt::Windows::UI::Xaml::Media::Animation::SuppressNavigationTransitionInfo()); 216 | rootPage.CreateNewTab(frame, comicBlock.Title(), symbol); 217 | } -------------------------------------------------------------------------------- /bikabika/ComicPage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ComicPage.g.h" 4 | 5 | namespace winrt::bikabika::implementation 6 | { 7 | struct ComicPage : ComicPageT 8 | { 9 | ComicPage(); 10 | Windows::Foundation::IAsyncAction Goto(int32_t const& index, hstring const& title, BikaClient::Utils::SortMode const& mode); 11 | void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs const& e); 12 | winrt::event_token PropertyChanged(winrt::Windows::UI::Xaml::Data::PropertyChangedEventHandler const& handler); 13 | void PropertyChanged(winrt::event_token const& token) noexcept; 14 | winrt::Windows::Foundation::Collections::IObservableVector Comics(); 15 | int32_t Index(); 16 | int32_t PipIndex(); 17 | int32_t AllPage(); 18 | void AllPage(int32_t const& value); 19 | void Index(int32_t const& value); 20 | 21 | private: 22 | winrt::event m_propertyChanged; 23 | Windows::ApplicationModel::Resources::ResourceLoader resourceLoader{ Windows::ApplicationModel::Resources::ResourceLoader::GetForCurrentView() }; 24 | bikabika::MainPage rootPage{ MainPage::Current() }; 25 | int32_t m_index = 0; 26 | int32_t m_pages = 1; 27 | bool m_firstArrive = false; 28 | bikabika::ComicsType m_comicType = bikabika::ComicsType::COMIC; 29 | BikaClient::Utils::SortMode m_sort = BikaClient::Utils::SortMode::UA; 30 | winrt::Windows::Foundation::Collections::IObservableVector m_comics = winrt::single_threaded_observable_vector(); 31 | winrt::Windows::Foundation::Collections::IObservableVector m_typeBlocks = winrt::single_threaded_observable_vector({ resourceLoader.GetString(L"sort/ua"),resourceLoader.GetString(L"sort/dd"),resourceLoader.GetString(L"sort/da"),resourceLoader.GetString(L"sort/ld"),resourceLoader.GetString(L"sort/vd") }); 32 | public: 33 | Windows::Foundation::IAsyncAction TypeCombo_SelectionChanged(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::SelectionChangedEventArgs const& e); 34 | void Index_KeyUp(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Input::KeyRoutedEventArgs const& e); 35 | Windows::Foundation::IAsyncAction PipsPager_SelectedIndexChanged(winrt::Microsoft::UI::Xaml::Controls::PipsPager const& sender, winrt::Microsoft::UI::Xaml::Controls::PipsPagerSelectedIndexChangedEventArgs const& args); 36 | Windows::Foundation::IAsyncAction RefreshButton_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::RoutedEventArgs const& e); 37 | void GridV_ItemClick(winrt::Windows::Foundation::IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs const& e); 38 | }; 39 | } 40 | 41 | namespace winrt::bikabika::factory_implementation 42 | { 43 | struct ComicPage : ComicPageT 44 | { 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /bikabika/ComicPage.idl: -------------------------------------------------------------------------------- 1 | namespace bikabika 2 | { 3 | 4 | runtimeclass ComicPage : Windows.UI.Xaml.Controls.Page, Windows.UI.Xaml.Data.INotifyPropertyChanged 5 | { 6 | ComicPage(); 7 | Windows.Foundation.Collections.IObservableVector Comics{ get; }; 8 | Int32 Index; 9 | Int32 AllPage; 10 | Int32 PipIndex{ get; }; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bikabika/ComicPage.xaml: -------------------------------------------------------------------------------- 1 |  12 | 13 | 14 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 36 | 42 | 43 | 44 | 45 | 49 | 50 | 58 | 62 | 63 | 64 | 68 | 69 | 73 | 77 | 82 | 86 | 87 | 88 | 96 | 97 | 98 | 102 | 107 | 111 | 116 | 121 | 125 | 126 | 127 | 136 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 191 | 192 | 193 | 194 | 195 | 199 | 200 | 204 | 211 | 212 | 217 | 226 | 235 | 239 | 244 | 248 | 252 | 257 | 261 | 262 | 263 | 264 | 270 | 280 | 281 | 282 | 283 | -------------------------------------------------------------------------------- /bikabika/CommentView.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "CommentView.h" 3 | #include "CommentView.g.cpp" 4 | 5 | 6 | namespace winrt::bikabika::implementation 7 | { 8 | winrt::Windows::Foundation::Collections::IObservableVector CommentView::Comments() 9 | { 10 | return m_comment; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bikabika/CommentView.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "CommentView.g.h" 3 | 4 | namespace winrt::bikabika::implementation 5 | { 6 | struct CommentView : CommentViewT 7 | { 8 | CommentView() = default; 9 | 10 | winrt::Windows::Foundation::Collections::IObservableVector Comments(); 11 | private: 12 | winrt::Windows::Foundation::Collections::IObservableVector m_comment = winrt::single_threaded_observable_vector(); 13 | }; 14 | } 15 | namespace winrt::bikabika::factory_implementation 16 | { 17 | struct CommentView : CommentViewT 18 | { 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /bikabika/CommentView.idl: -------------------------------------------------------------------------------- 1 | namespace bikabika 2 | { 3 | runtimeclass CommentView 4 | { 5 | CommentView(); 6 | Windows.Foundation.Collections.IObservableVector Comments{ get; }; 7 | } 8 | } -------------------------------------------------------------------------------- /bikabika/DownloadPage.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "DownloadPage.h" 3 | #if __has_include("DownloadPage.g.cpp") 4 | #include "DownloadPage.g.cpp" 5 | #endif 6 | 7 | using namespace winrt; 8 | using namespace Windows::UI::Xaml; 9 | 10 | namespace winrt::bikabika::implementation 11 | { 12 | DownloadPage::DownloadPage() 13 | { 14 | InitializeComponent(); 15 | } 16 | 17 | int32_t DownloadPage::MyProperty() 18 | { 19 | throw hresult_not_implemented(); 20 | } 21 | 22 | void DownloadPage::MyProperty(int32_t /* value */) 23 | { 24 | throw hresult_not_implemented(); 25 | } 26 | 27 | void DownloadPage::ClickHandler(IInspectable const&, RoutedEventArgs const&) 28 | { 29 | Button().Content(box_value(L"Clicked")); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /bikabika/DownloadPage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "DownloadPage.g.h" 4 | 5 | namespace winrt::bikabika::implementation 6 | { 7 | struct DownloadPage : DownloadPageT 8 | { 9 | DownloadPage(); 10 | 11 | int32_t MyProperty(); 12 | void MyProperty(int32_t value); 13 | 14 | void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args); 15 | }; 16 | } 17 | 18 | namespace winrt::bikabika::factory_implementation 19 | { 20 | struct DownloadPage : DownloadPageT 21 | { 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /bikabika/DownloadPage.idl: -------------------------------------------------------------------------------- 1 | namespace bikabika 2 | { 3 | [default_interface] 4 | runtimeclass DownloadPage : Windows.UI.Xaml.Controls.Page 5 | { 6 | DownloadPage(); 7 | Int32 MyProperty; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /bikabika/DownloadPage.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 14 |