| 167 | } |
| 168 | |
| 169 | void HomeActivity::loop() { |
| 170 | const int menuCount = getMenuItemCount(); |
| 171 | |
| 172 | buttonNavigator.onNext([this, menuCount] { |
| 173 | selectorIndex = ButtonNavigator::nextIndex(selectorIndex, menuCount); |
| 174 | requestUpdate(); |
| 175 | }); |
| 176 | |
| 177 | buttonNavigator.onPrevious([this, menuCount] { |
| 178 | selectorIndex = ButtonNavigator::previousIndex(selectorIndex, menuCount); |
| 179 | requestUpdate(); |
| 180 | }); |
| 181 | |
| 182 | if (mappedInput.wasReleased(MappedInputManager::Button::Confirm)) { |
| 183 | if (selectorIndex < recentBooks.size()) { |
| 184 | onSelectBook(recentBooks[selectorIndex].path); |
| 185 | } else { |
| 186 | const int menuIndex = selectorIndex - static_cast<int>(recentBooks.size()); |
| 187 | switch (indexToMenuItem(menuIndex, hasOpdsServers)) { |
| 188 | case HomeMenuItem::FILE_BROWSER: |
| 189 | onFileBrowserOpen(); |
| 190 | break; |
| 191 | case HomeMenuItem::RECENTS: |
| 192 | onRecentsOpen(); |
| 193 | break; |
| 194 | case HomeMenuItem::OPDS_BROWSER: |
| 195 | onOpdsBrowserOpen(); |
| 196 | break; |
| 197 | case HomeMenuItem::FILE_TRANSFER: |
| 198 | onFileTransferOpen(); |
| 199 | break; |
| 200 | case HomeMenuItem::SETTINGS_MENU: |
| 201 | onSettingsOpen(); |
| 202 | break; |
| 203 | default: |
| 204 | break; |
| 205 | } |
| 206 | } |
| 207 | } |
| 208 | } |
| 209 | |
| 210 | void HomeActivity::render(RenderLock&&) { |
| 211 | const auto& metrics = UITheme::getInstance().getMetrics(); |
nothing calls this directly
no test coverage detected