mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Bump dependencies + linting
This commit is contained in:
		| @@ -13,11 +13,13 @@ class SetMigrateSorting( | ||||
|  | ||||
|     enum class Mode { | ||||
|         ALPHABETICAL, | ||||
|         TOTAL; | ||||
|         TOTAL, | ||||
|         ; | ||||
|     } | ||||
|  | ||||
|     enum class Direction { | ||||
|         ASCENDING, | ||||
|         DESCENDING; | ||||
|         DESCENDING, | ||||
|         ; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -338,7 +338,9 @@ private fun InfoText( | ||||
|  | ||||
|     val clickableModifier = if (onClick != null) { | ||||
|         Modifier.clickable(interactionSource, indication = null) { onClick() } | ||||
|     } else Modifier | ||||
|     } else { | ||||
|         Modifier | ||||
|     } | ||||
|  | ||||
|     Column( | ||||
|         modifier = modifier.then(clickableModifier), | ||||
|   | ||||
| @@ -18,7 +18,8 @@ import eu.kanade.tachiyomi.R | ||||
|  | ||||
| enum class MangaCover(val ratio: Float) { | ||||
|     Square(1f / 1f), | ||||
|     Book(2f / 3f); | ||||
|     Book(2f / 3f), | ||||
|     ; | ||||
|  | ||||
|     @Composable | ||||
|     operator fun invoke( | ||||
| @@ -42,7 +43,9 @@ enum class MangaCover(val ratio: Float) { | ||||
|                             role = Role.Button, | ||||
|                             onClick = onClick, | ||||
|                         ) | ||||
|                     } else Modifier, | ||||
|                     } else { | ||||
|                         Modifier | ||||
|                     }, | ||||
|                 ), | ||||
|             contentScale = ContentScale.Crop, | ||||
|         ) | ||||
|   | ||||
| @@ -220,12 +220,18 @@ private fun ScaffoldLayout( | ||||
|                     .asPaddingValues(this@SubcomposeLayout) | ||||
|                 val innerPadding = PaddingValues( | ||||
|                     top = | ||||
|                     if (topBarHeight == 0) insets.calculateTopPadding() | ||||
|                     else topBarHeight.toDp(), | ||||
|                     if (topBarHeight == 0) { | ||||
|                         insets.calculateTopPadding() | ||||
|                     } else { | ||||
|                         topBarHeight.toDp() | ||||
|                     }, | ||||
|                     bottom = | ||||
|                     ( | ||||
|                         if (bottomBarHeight == 0) insets.calculateBottomPadding() | ||||
|                         else bottomBarHeight.toDp() | ||||
|                         if (bottomBarHeight == 0) { | ||||
|                             insets.calculateBottomPadding() | ||||
|                         } else { | ||||
|                             bottomBarHeight.toDp() | ||||
|                         } | ||||
|                         ) + fabHeight.toDp(), | ||||
|                     start = insets.calculateLeftPadding((this@SubcomposeLayout).layoutDirection), | ||||
|                     end = insets.calculateRightPadding((this@SubcomposeLayout).layoutDirection), | ||||
|   | ||||
| @@ -145,13 +145,17 @@ fun VerticalFastScroller( | ||||
|                                     ) | ||||
|                                 }, | ||||
|                             ) | ||||
|                         } else Modifier, | ||||
|                         } else { | ||||
|                             Modifier | ||||
|                         }, | ||||
|                     ) | ||||
|                     .then( | ||||
|                         // Exclude thumb from gesture area only when needed | ||||
|                         if (isThumbVisible && !isThumbDragged && !listState.isScrollInProgress) { | ||||
|                             Modifier.systemGestureExclusion() | ||||
|                         } else Modifier, | ||||
|                         } else { | ||||
|                             Modifier | ||||
|                         }, | ||||
|                     ) | ||||
|                     .height(ThumbLength) | ||||
|                     .padding(horizontal = 8.dp) | ||||
| @@ -321,13 +325,17 @@ fun VerticalGridFastScroller( | ||||
|                                     ) | ||||
|                                 }, | ||||
|                             ) | ||||
|                         } else Modifier, | ||||
|                         } else { | ||||
|                             Modifier | ||||
|                         }, | ||||
|                     ) | ||||
|                     .then( | ||||
|                         // Exclude thumb from gesture area only when needed | ||||
|                         if (isThumbVisible && !isThumbDragged && !state.isScrollInProgress) { | ||||
|                             Modifier.systemGestureExclusion() | ||||
|                         } else Modifier, | ||||
|                         } else { | ||||
|                             Modifier | ||||
|                         }, | ||||
|                     ) | ||||
|                     .height(ThumbLength) | ||||
|                     .padding(horizontal = 8.dp) | ||||
|   | ||||
| @@ -673,7 +673,9 @@ private fun LazyListScope.sharedChapterItems( | ||||
|             }, | ||||
|             onDownloadClick = if (onDownloadChapter != null) { | ||||
|                 { onDownloadChapter(listOf(chapterItem), it) } | ||||
|             } else null, | ||||
|             } else { | ||||
|                 null | ||||
|             }, | ||||
|         ) | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -6,7 +6,7 @@ enum class DownloadAction { | ||||
|     NEXT_10_CHAPTERS, | ||||
|     CUSTOM, | ||||
|     UNREAD_CHAPTERS, | ||||
|     ALL_CHAPTERS | ||||
|     ALL_CHAPTERS, | ||||
| } | ||||
|  | ||||
| enum class EditCoverAction { | ||||
|   | ||||
| @@ -316,10 +316,12 @@ private fun MangaAndSourceTitlesLarge( | ||||
|                 .padding(top = 2.dp) | ||||
|                 .clickableNoIndication( | ||||
|                     onLongClick = { | ||||
|                         if (!author.isNullOrBlank()) context.copyToClipboard( | ||||
|                             author, | ||||
|                             author, | ||||
|                         ) | ||||
|                         if (!author.isNullOrBlank()) { | ||||
|                             context.copyToClipboard( | ||||
|                                 author, | ||||
|                                 author, | ||||
|                             ) | ||||
|                         } | ||||
|                     }, | ||||
|                     onClick = { if (!author.isNullOrBlank()) doSearch(author, true) }, | ||||
|                 ), | ||||
| @@ -428,10 +430,12 @@ private fun MangaAndSourceTitlesSmall( | ||||
|                 style = MaterialTheme.typography.titleLarge, | ||||
|                 modifier = Modifier.clickableNoIndication( | ||||
|                     onLongClick = { | ||||
|                         if (title.isNotBlank()) context.copyToClipboard( | ||||
|                             title, | ||||
|                             title, | ||||
|                         ) | ||||
|                         if (title.isNotBlank()) { | ||||
|                             context.copyToClipboard( | ||||
|                                 title, | ||||
|                                 title, | ||||
|                             ) | ||||
|                         } | ||||
|                     }, | ||||
|                     onClick = { if (title.isNotBlank()) doSearch(title, true) }, | ||||
|                 ), | ||||
| @@ -446,10 +450,12 @@ private fun MangaAndSourceTitlesSmall( | ||||
|                     .padding(top = 2.dp) | ||||
|                     .clickableNoIndication( | ||||
|                         onLongClick = { | ||||
|                             if (!author.isNullOrBlank()) context.copyToClipboard( | ||||
|                                 author, | ||||
|                                 author, | ||||
|                             ) | ||||
|                             if (!author.isNullOrBlank()) { | ||||
|                                 context.copyToClipboard( | ||||
|                                     author, | ||||
|                                     author, | ||||
|                                 ) | ||||
|                             } | ||||
|                         }, | ||||
|                         onClick = { if (!author.isNullOrBlank()) doSearch(author, true) }, | ||||
|                     ), | ||||
|   | ||||
| @@ -103,12 +103,16 @@ private fun Modifier.drawScrollbar( | ||||
|     val estimatedItemSize = if (items.isEmpty()) 0f else itemsSize.toFloat() / items.size | ||||
|     val totalSize = estimatedItemSize * layoutInfo.totalItemsCount | ||||
|     val thumbSize = viewportSize / totalSize * viewportSize | ||||
|     val startOffset = if (items.isEmpty()) 0f else items | ||||
|         .first() | ||||
|         .run { | ||||
|             val startPadding = if (reverseDirection) layoutInfo.afterContentPadding else layoutInfo.beforeContentPadding | ||||
|             startPadding + ((estimatedItemSize * index - offset) / totalSize * viewportSize) | ||||
|         } | ||||
|     val startOffset = if (items.isEmpty()) { | ||||
|         0f | ||||
|     } else { | ||||
|         items | ||||
|             .first() | ||||
|             .run { | ||||
|                 val startPadding = if (reverseDirection) layoutInfo.afterContentPadding else layoutInfo.beforeContentPadding | ||||
|                 startPadding + ((estimatedItemSize * index - offset) / totalSize * viewportSize) | ||||
|             } | ||||
|     } | ||||
|     val drawScrollbar = onDrawScrollbar( | ||||
|         orientation, reverseDirection, atEnd, showScrollbar, | ||||
|         thickness, color, alpha, thumbSize, startOffset, positionOffset, | ||||
| @@ -202,7 +206,9 @@ private fun Modifier.drawScrollbar( | ||||
|     val isLtr = LocalLayoutDirection.current == LayoutDirection.Ltr | ||||
|     val reverseDirection = if (orientation == Orientation.Horizontal) { | ||||
|         if (isLtr) reverseScrolling else !reverseScrolling | ||||
|     } else reverseScrolling | ||||
|     } else { | ||||
|         reverseScrolling | ||||
|     } | ||||
|     val atEnd = if (orientation == Orientation.Vertical) isLtr else true | ||||
|  | ||||
|     val context = LocalContext.current | ||||
|   | ||||
| @@ -111,8 +111,11 @@ object Migrations { | ||||
|                 // Migrate library filters to tri-state versions | ||||
|                 fun convertBooleanPrefToTriState(key: String): Int { | ||||
|                     val oldPrefValue = prefs.getBoolean(key, false) | ||||
|                     return if (oldPrefValue) ExtendedNavigationView.Item.TriStateGroup.State.INCLUDE.value | ||||
|                     else ExtendedNavigationView.Item.TriStateGroup.State.IGNORE.value | ||||
|                     return if (oldPrefValue) { | ||||
|                         ExtendedNavigationView.Item.TriStateGroup.State.INCLUDE.value | ||||
|                     } else { | ||||
|                         ExtendedNavigationView.Item.TriStateGroup.State.IGNORE.value | ||||
|                     } | ||||
|                 } | ||||
|                 prefs.edit { | ||||
|                     putInt(PreferenceKeys.filterDownloaded, convertBooleanPrefToTriState("pref_filter_downloaded_key")) | ||||
|   | ||||
| @@ -44,8 +44,11 @@ class BackupFileValidator( | ||||
|             .filter { sourceManager.get(it.key) == null } | ||||
|             .values.map { | ||||
|                 val id = it.toLongOrNull() | ||||
|                 if (id == null) it | ||||
|                 else sourceManager.getOrStub(id).toString() | ||||
|                 if (id == null) { | ||||
|                     it | ||||
|                 } else { | ||||
|                     sourceManager.getOrStub(id).toString() | ||||
|                 } | ||||
|             } | ||||
|             .distinct() | ||||
|             .sorted() | ||||
|   | ||||
| @@ -11,7 +11,8 @@ data class BackupTracking( | ||||
|     @ProtoNumber(1) var syncId: Int, | ||||
|     // LibraryId is not null in 1.x | ||||
|     @ProtoNumber(2) var libraryId: Long, | ||||
|     @Deprecated("Use mediaId instead", level = DeprecationLevel.WARNING) @ProtoNumber(3) | ||||
|     @Deprecated("Use mediaId instead", level = DeprecationLevel.WARNING) | ||||
|     @ProtoNumber(3) | ||||
|     var mediaIdInt: Int = 0, | ||||
|     // trackingUrl is called mediaUrl in 1.x | ||||
|     @ProtoNumber(4) var trackingUrl: String = "", | ||||
|   | ||||
| @@ -30,29 +30,37 @@ class BangumiInterceptor(val bangumi: Bangumi) : Interceptor { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         val authRequest = if (originalRequest.method == "GET") originalRequest.newBuilder() | ||||
|             .header("User-Agent", "Tachiyomi") | ||||
|             .url( | ||||
|                 originalRequest.url.newBuilder() | ||||
|                     .addQueryParameter("access_token", currAuth.access_token).build(), | ||||
|             ) | ||||
|             .build() else originalRequest.newBuilder() | ||||
|             .post(addToken(currAuth.access_token, originalRequest.body as FormBody)) | ||||
|             .header("User-Agent", "Tachiyomi") | ||||
|             .build() | ||||
|         val authRequest = if (originalRequest.method == "GET") { | ||||
|             originalRequest.newBuilder() | ||||
|                 .header("User-Agent", "Tachiyomi") | ||||
|                 .url( | ||||
|                     originalRequest.url.newBuilder() | ||||
|                         .addQueryParameter("access_token", currAuth.access_token).build(), | ||||
|                 ) | ||||
|                 .build() | ||||
|         } else { | ||||
|             originalRequest.newBuilder() | ||||
|                 .post(addToken(currAuth.access_token, originalRequest.body as FormBody)) | ||||
|                 .header("User-Agent", "Tachiyomi") | ||||
|                 .build() | ||||
|         } | ||||
|  | ||||
|         return chain.proceed(authRequest) | ||||
|     } | ||||
|  | ||||
|     fun newAuth(oauth: OAuth?) { | ||||
|         this.oauth = if (oauth == null) null else OAuth( | ||||
|             oauth.access_token, | ||||
|             oauth.token_type, | ||||
|             System.currentTimeMillis() / 1000, | ||||
|             oauth.expires_in, | ||||
|             oauth.refresh_token, | ||||
|             this.oauth?.user_id, | ||||
|         ) | ||||
|         this.oauth = if (oauth == null) { | ||||
|             null | ||||
|         } else { | ||||
|             OAuth( | ||||
|                 oauth.access_token, | ||||
|                 oauth.token_type, | ||||
|                 System.currentTimeMillis() / 1000, | ||||
|                 oauth.expires_in, | ||||
|                 oauth.refresh_token, | ||||
|                 this.oauth?.user_id, | ||||
|             ) | ||||
|         } | ||||
|  | ||||
|         bangumi.saveToken(oauth) | ||||
|     } | ||||
|   | ||||
| @@ -41,8 +41,11 @@ class KomgaApi(private val client: OkHttpClient) { | ||||
|                 val progress = client | ||||
|                     .newCall(GET("${url.replace("/api/v1/series/", "/api/v2/series/")}/read-progress/tachiyomi")) | ||||
|                     .await().let { | ||||
|                         if (url.contains("/api/v1/series/")) it.parseAs<ReadProgressV2Dto>() | ||||
|                         else it.parseAs<ReadProgressDto>().toV2() | ||||
|                         if (url.contains("/api/v1/series/")) { | ||||
|                             it.parseAs<ReadProgressV2Dto>() | ||||
|                         } else { | ||||
|                             it.parseAs<ReadProgressDto>().toV2() | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                 track.apply { | ||||
|   | ||||
| @@ -29,14 +29,18 @@ internal class ExtensionGithubApi { | ||||
|  | ||||
|     suspend fun findExtensions(): List<Extension.Available> { | ||||
|         return withIOContext { | ||||
|             val githubResponse = if (requiresFallbackSource) null else try { | ||||
|                 networkService.client | ||||
|                     .newCall(GET("${REPO_URL_PREFIX}index.min.json")) | ||||
|                     .await() | ||||
|             } catch (e: Throwable) { | ||||
|                 logcat(LogPriority.ERROR, e) { "Failed to get extensions from GitHub" } | ||||
|                 requiresFallbackSource = true | ||||
|             val githubResponse = if (requiresFallbackSource) { | ||||
|                 null | ||||
|             } else { | ||||
|                 try { | ||||
|                     networkService.client | ||||
|                         .newCall(GET("${REPO_URL_PREFIX}index.min.json")) | ||||
|                         .await() | ||||
|                 } catch (e: Throwable) { | ||||
|                     logcat(LogPriority.ERROR, e) { "Failed to get extensions from GitHub" } | ||||
|                     requiresFallbackSource = true | ||||
|                     null | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             val response = githubResponse ?: run { | ||||
|   | ||||
| @@ -50,11 +50,13 @@ internal class ExtensionInstallReceiver(private val listener: Listener) : | ||||
|  | ||||
|         when (intent.action) { | ||||
|             Intent.ACTION_PACKAGE_ADDED -> { | ||||
|                 if (!isReplacing(intent)) launchNow { | ||||
|                     when (val result = getExtensionFromIntent(context, intent)) { | ||||
|                         is LoadResult.Success -> listener.onExtensionInstalled(result.extension) | ||||
|                         is LoadResult.Untrusted -> listener.onExtensionUntrusted(result.extension) | ||||
|                         else -> {} | ||||
|                 if (!isReplacing(intent)) { | ||||
|                     launchNow { | ||||
|                         when (val result = getExtensionFromIntent(context, intent)) { | ||||
|                             is LoadResult.Success -> listener.onExtensionInstalled(result.extension) | ||||
|                             is LoadResult.Untrusted -> listener.onExtensionUntrusted(result.extension) | ||||
|                             else -> {} | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|   | ||||
| @@ -238,7 +238,9 @@ class UpdatesGridGlanceWidget : GlanceAppWidget() { | ||||
|                     .let { | ||||
|                         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { | ||||
|                             it.transformations(RoundedCornersTransformation(roundPx)) | ||||
|                         } else it // Handled by system | ||||
|                         } else { | ||||
|                             it // Handled by system | ||||
|                         } | ||||
|                     } | ||||
|                     .build() | ||||
|                 Pair(updatesView.mangaId, app.imageLoader.executeBlocking(request).drawable?.toBitmap()) | ||||
|   | ||||
| @@ -74,10 +74,12 @@ internal class RateLimitInterceptor( | ||||
|                         throw IOException("Canceled") | ||||
|                     } else if (hasRemovedExpired) { | ||||
|                         break | ||||
|                     } else try { // wait for the first entry to expire, or notified by cached response | ||||
|                         (requestQueue as Object).wait(requestQueue.first - periodStart) | ||||
|                     } catch (_: InterruptedException) { | ||||
|                         continue | ||||
|                     } else { | ||||
|                         try { // wait for the first entry to expire, or notified by cached response | ||||
|                             (requestQueue as Object).wait(requestQueue.first - periodStart) | ||||
|                         } catch (_: InterruptedException) { | ||||
|                             continue | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|   | ||||
| @@ -50,7 +50,7 @@ private var lockState = LockState.INACTIVE | ||||
| private enum class LockState { | ||||
|     INACTIVE, | ||||
|     PENDING, | ||||
|     ACTIVE | ||||
|     ACTIVE, | ||||
| } | ||||
|  | ||||
| class SecureActivityDelegateImpl : SecureActivityDelegate, DefaultLifecycleObserver { | ||||
|   | ||||
| @@ -167,8 +167,11 @@ class SearchPresenter( | ||||
|                 val service = enhancedServices | ||||
|                     .firstOrNull { it.isTrackFrom(updatedTrack, prevManga, prevSource) } | ||||
|  | ||||
|                 if (service != null) service.migrateTrack(updatedTrack, manga, source) | ||||
|                 else updatedTrack | ||||
|                 if (service != null) { | ||||
|                     service.migrateTrack(updatedTrack, manga, source) | ||||
|                 } else { | ||||
|                     updatedTrack | ||||
|                 } | ||||
|             } | ||||
|             insertTrack.awaitAll(tracks) | ||||
|         } | ||||
|   | ||||
| @@ -190,32 +190,44 @@ class LibraryPresenter( | ||||
|                 else -> downloadManager.getDownloadCount(item.manga.toDomainManga()!!) > 0 | ||||
|             } | ||||
|  | ||||
|             return@downloaded if (downloadedOnly || filterDownloaded == State.INCLUDE.value) isDownloaded | ||||
|             else !isDownloaded | ||||
|             return@downloaded if (downloadedOnly || filterDownloaded == State.INCLUDE.value) { | ||||
|                 isDownloaded | ||||
|             } else { | ||||
|                 !isDownloaded | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         val filterFnUnread: (LibraryItem) -> Boolean = unread@{ item -> | ||||
|             if (filterUnread == State.IGNORE.value) return@unread true | ||||
|             val isUnread = item.manga.unreadCount != 0 | ||||
|  | ||||
|             return@unread if (filterUnread == State.INCLUDE.value) isUnread | ||||
|             else !isUnread | ||||
|             return@unread if (filterUnread == State.INCLUDE.value) { | ||||
|                 isUnread | ||||
|             } else { | ||||
|                 !isUnread | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         val filterFnStarted: (LibraryItem) -> Boolean = started@{ item -> | ||||
|             if (filterStarted == State.IGNORE.value) return@started true | ||||
|             val hasStarted = item.manga.hasStarted | ||||
|  | ||||
|             return@started if (filterStarted == State.INCLUDE.value) hasStarted | ||||
|             else !hasStarted | ||||
|             return@started if (filterStarted == State.INCLUDE.value) { | ||||
|                 hasStarted | ||||
|             } else { | ||||
|                 !hasStarted | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         val filterFnCompleted: (LibraryItem) -> Boolean = completed@{ item -> | ||||
|             if (filterCompleted == State.IGNORE.value) return@completed true | ||||
|             val isCompleted = item.manga.status == SManga.COMPLETED | ||||
|  | ||||
|             return@completed if (filterCompleted == State.INCLUDE.value) isCompleted | ||||
|             else !isCompleted | ||||
|             return@completed if (filterCompleted == State.INCLUDE.value) { | ||||
|                 isCompleted | ||||
|             } else { | ||||
|                 !isCompleted | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         val filterFnTracking: (LibraryItem) -> Boolean = tracking@{ item -> | ||||
|   | ||||
| @@ -305,7 +305,8 @@ class MangaController : FullComposeController<MangaPresenter> { | ||||
|                 previousController.search(query) | ||||
|             } | ||||
|             is UpdatesController, | ||||
|             is HistoryController, -> { | ||||
|             is HistoryController, | ||||
|             -> { | ||||
|                 // Manually navigate to LibraryController | ||||
|                 router.handleBack() | ||||
|                 (router.activity as MainActivity).setSelectedNavItem(R.id.nav_library) | ||||
|   | ||||
| @@ -151,7 +151,9 @@ class HttpPageLoader( | ||||
|             .mapNotNull { | ||||
|                 if (it.status == Page.QUEUE) { | ||||
|                     PriorityPage(it, 0).apply { queue.offer(this) } | ||||
|                 } else null | ||||
|                 } else { | ||||
|                     null | ||||
|                 } | ||||
|             } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -12,7 +12,8 @@ enum class OrientationType(val prefValue: Int, val flag: Int, @StringRes val str | ||||
|     REVERSE_PORTRAIT(6, ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT, R.string.rotation_reverse_portrait, R.drawable.ic_stay_current_portrait_24dp, 0x00000030), | ||||
|     LANDSCAPE(3, ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE, R.string.rotation_landscape, R.drawable.ic_stay_current_landscape_24dp, 0x00000018), | ||||
|     LOCKED_PORTRAIT(4, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT, R.string.rotation_force_portrait, R.drawable.ic_screen_lock_portrait_24dp, 0x00000020), | ||||
|     LOCKED_LANDSCAPE(5, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, R.string.rotation_force_landscape, R.drawable.ic_screen_lock_landscape_24dp, 0x00000028); | ||||
|     LOCKED_LANDSCAPE(5, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE, R.string.rotation_force_landscape, R.drawable.ic_screen_lock_landscape_24dp, 0x00000028), | ||||
|     ; | ||||
|  | ||||
|     companion object { | ||||
|         const val MASK = 0x00000038 | ||||
|   | ||||
| @@ -171,7 +171,8 @@ class PagerViewerAdapter(private val viewer: PagerViewer) : ViewPagerAdapter() { | ||||
|  | ||||
|         val placeAtIndex = when (viewer) { | ||||
|             is L2RPagerViewer, | ||||
|             is VerticalPagerViewer, -> currentIndex + 1 | ||||
|             is VerticalPagerViewer, | ||||
|             -> currentIndex + 1 | ||||
|             else -> currentIndex | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -33,11 +33,13 @@ private suspend fun <T> Observable<T>.awaitOne(): T = suspendCancellableCoroutin | ||||
|                 } | ||||
|  | ||||
|                 override fun onCompleted() { | ||||
|                     if (cont.isActive) cont.resumeWithException( | ||||
|                         IllegalStateException( | ||||
|                             "Should have invoked onNext", | ||||
|                         ), | ||||
|                     ) | ||||
|                     if (cont.isActive) { | ||||
|                         cont.resumeWithException( | ||||
|                             IllegalStateException( | ||||
|                                 "Should have invoked onNext", | ||||
|                             ), | ||||
|                         ) | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 override fun onError(e: Throwable) { | ||||
|   | ||||
| @@ -117,7 +117,7 @@ open class ExtendedNavigationView @JvmOverloads constructor( | ||||
|             enum class State(val value: Int) { | ||||
|                 IGNORE(0), | ||||
|                 INCLUDE(1), | ||||
|                 EXCLUDE(2) | ||||
|                 EXCLUDE(2), | ||||
|             } | ||||
|  | ||||
|             override fun getStateDrawable(context: Context): Drawable? { | ||||
|   | ||||
| @@ -46,7 +46,9 @@ class MaterialFastScroll @JvmOverloads constructor(context: Context, attrs: Attr | ||||
|                     } else { | ||||
|                         event.x > handle.width + ViewCompat.getPaddingStart(handle) | ||||
|                     } | ||||
|                 ) return false | ||||
|                 ) { | ||||
|                     return false | ||||
|                 } | ||||
|                 // end | ||||
|  | ||||
|                 if (ignoreTouchesOutsideHandle && | ||||
|   | ||||
| @@ -39,7 +39,9 @@ class TachiyomiChangeHandlerFrameLayout( | ||||
|             behavior.apply { | ||||
|                 shouldHeaderOverlap = overlapHeader | ||||
|             } | ||||
|         } else null | ||||
|         } else { | ||||
|             null | ||||
|         } | ||||
|         if (!enable) { | ||||
|             // The behavior doesn't reset translationY when shouldHeaderOverlap is false | ||||
|             translationY = 0F | ||||
|   | ||||
| @@ -48,7 +48,9 @@ class TachiyomiSearchView @JvmOverloads constructor( | ||||
|                 clearFocus() | ||||
|                 listener?.onQueryTextSubmit(query.toString()) | ||||
|                 true | ||||
|             } else false | ||||
|             } else { | ||||
|                 false | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user