mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-26 19:17:51 +02:00
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
0c07e05a2b | |||
060f0682f4 | |||
88032e11df | |||
493c8b0943 | |||
af2ef0621a | |||
095461e31b | |||
3ddd1033c3 | |||
912687ac78 | |||
40a9595012 | |||
12ff37d052 | |||
4857073f30 |
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
I acknowledge that:
|
||||
|
||||
- I have updated to the latest version of the app (stable is v0.10.2)
|
||||
- I have updated to the latest version of the app (stable is v0.10.3)
|
||||
- I have updated all extensions
|
||||
- If this is an issue with an extension, that I should be opening an issue in https://github.com/inorichi/tachiyomi-extensions
|
||||
|
||||
|
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -9,7 +9,7 @@ labels: "bug"
|
||||
|
||||
I acknowledge that:
|
||||
|
||||
- I have updated to the latest version of the app (stable is v0.10.2)
|
||||
- I have updated to the latest version of the app (stable is v0.10.3)
|
||||
- I have updated all extensions
|
||||
- If this is an issue with an extension, that I should be opening an issue in https://github.com/inorichi/tachiyomi-extensions
|
||||
|
||||
|
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -9,7 +9,7 @@ labels: "feature"
|
||||
|
||||
I acknowledge that:
|
||||
|
||||
- I have updated to the latest version of the app (stable is v0.10.2)
|
||||
- I have updated to the latest version of the app (stable is v0.10.3)
|
||||
- I have updated all extensions
|
||||
- If this is an issue with an extension, that I should be opening an issue in https://github.com/inorichi/tachiyomi-extensions
|
||||
|
||||
|
@ -40,8 +40,8 @@ android {
|
||||
minSdkVersion AndroidConfig.minSdk
|
||||
targetSdkVersion AndroidConfig.targetSdk
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
versionCode 48
|
||||
versionName "0.10.2"
|
||||
versionCode 49
|
||||
versionName "0.10.3"
|
||||
|
||||
buildConfigField "String", "COMMIT_COUNT", "\"${getCommitCount()}\""
|
||||
buildConfigField "String", "COMMIT_SHA", "\"${getGitSha()}\""
|
||||
@ -139,7 +139,6 @@ dependencies {
|
||||
implementation 'androidx.preference:preference:1.1.1'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha05'
|
||||
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01'
|
||||
implementation 'androidx.webkit:webkit:1.3.0-rc01'
|
||||
|
||||
final lifecycle_version = '2.3.0-alpha06'
|
||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
||||
@ -154,6 +153,8 @@ dependencies {
|
||||
// UI library
|
||||
implementation 'com.google.android.material:material:1.3.0-alpha02'
|
||||
|
||||
implementation 'dev.chrisbanes:insetter-ktx:0.3.1'
|
||||
|
||||
standardImplementation 'com.google.firebase:firebase-core:17.4.4'
|
||||
|
||||
// ReactiveX
|
||||
|
@ -79,7 +79,7 @@ internal class DownloadNotifier(private val context: Context) {
|
||||
* Dismiss the downloader's notification. Downloader error notifications use a different id, so
|
||||
* those can only be dismissed by the user.
|
||||
*/
|
||||
fun dismiss() {
|
||||
fun dismissProgress() {
|
||||
context.notificationManager.cancel(Notifications.ID_DOWNLOAD_CHAPTER_PROGRESS)
|
||||
}
|
||||
|
||||
|
@ -139,6 +139,7 @@ class Downloader(
|
||||
notifier.paused = false
|
||||
notifier.onPaused()
|
||||
} else {
|
||||
notifier.dismissProgress()
|
||||
notifier.onComplete()
|
||||
}
|
||||
}
|
||||
@ -170,7 +171,7 @@ class Downloader(
|
||||
.forEach { it.status = Download.NOT_DOWNLOADED }
|
||||
}
|
||||
queue.clear()
|
||||
notifier.dismiss()
|
||||
notifier.dismissProgress()
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,43 +1,29 @@
|
||||
package eu.kanade.tachiyomi.extension.api
|
||||
|
||||
import android.content.Context
|
||||
import com.github.salomonbrys.kotson.fromJson
|
||||
import com.github.salomonbrys.kotson.get
|
||||
import com.github.salomonbrys.kotson.int
|
||||
import com.github.salomonbrys.kotson.string
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.JsonArray
|
||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||
import eu.kanade.tachiyomi.extension.model.Extension
|
||||
import eu.kanade.tachiyomi.extension.model.LoadResult
|
||||
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||
import eu.kanade.tachiyomi.network.await
|
||||
import java.util.Date
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import okhttp3.Response
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
internal class ExtensionGithubApi {
|
||||
|
||||
private val network: NetworkHelper by injectLazy()
|
||||
private val preferences: PreferencesHelper by injectLazy()
|
||||
|
||||
private val gson: Gson by injectLazy()
|
||||
|
||||
suspend fun findExtensions(): List<Extension.Available> {
|
||||
val call = GET(EXT_URL)
|
||||
val service: ExtensionGithubService = ExtensionGithubService.create()
|
||||
|
||||
return withContext(Dispatchers.IO) {
|
||||
val response = network.client.newCall(call).await()
|
||||
if (response.isSuccessful) {
|
||||
parseResponse(response)
|
||||
} else {
|
||||
response.close()
|
||||
throw Exception("Failed to get extensions")
|
||||
}
|
||||
val response = service.getRepo()
|
||||
parseResponse(response)
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,11 +50,7 @@ internal class ExtensionGithubApi {
|
||||
return extensionsWithUpdate
|
||||
}
|
||||
|
||||
private fun parseResponse(response: Response): List<Extension.Available> {
|
||||
val text = response.body?.use { it.string() } ?: return emptyList()
|
||||
|
||||
val json = gson.fromJson<JsonArray>(text)
|
||||
|
||||
private fun parseResponse(json: JsonArray): List<Extension.Available> {
|
||||
return json
|
||||
.filter { element ->
|
||||
val versionName = element["version"].string
|
||||
@ -82,18 +64,18 @@ internal class ExtensionGithubApi {
|
||||
val versionName = element["version"].string
|
||||
val versionCode = element["code"].int
|
||||
val lang = element["lang"].string
|
||||
val icon = "$REPO_URL/icon/${apkName.replace(".apk", ".png")}"
|
||||
val icon = "$REPO_URL_PREFIX/icon/${apkName.replace(".apk", ".png")}"
|
||||
|
||||
Extension.Available(name, pkgName, versionName, versionCode, lang, apkName, icon)
|
||||
}
|
||||
}
|
||||
|
||||
fun getApkUrl(extension: Extension.Available): String {
|
||||
return "$REPO_URL/apk/${extension.apkName}"
|
||||
return "$REPO_URL_PREFIX/apk/${extension.apkName}"
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val REPO_URL = "https://raw.githubusercontent.com/inorichi/tachiyomi-extensions/repo"
|
||||
private const val EXT_URL = "$REPO_URL/index.json"
|
||||
const val BASE_URL = "https://raw.githubusercontent.com/"
|
||||
const val REPO_URL_PREFIX = "${BASE_URL}inorichi/tachiyomi-extensions/repo/"
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
package eu.kanade.tachiyomi.extension.api
|
||||
|
||||
import com.google.gson.JsonArray
|
||||
import eu.kanade.tachiyomi.network.NetworkHelper
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
import retrofit2.http.GET
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
/**
|
||||
* Used to get the extension repo listing from GitHub.
|
||||
*/
|
||||
interface ExtensionGithubService {
|
||||
|
||||
companion object {
|
||||
private val client by lazy {
|
||||
val network: NetworkHelper by injectLazy()
|
||||
network.client.newBuilder()
|
||||
.addNetworkInterceptor { chain ->
|
||||
val originalResponse = chain.proceed(chain.request())
|
||||
originalResponse.newBuilder()
|
||||
.header("Content-Encoding", "gzip")
|
||||
.header("Content-Type", "application/json")
|
||||
.build()
|
||||
}
|
||||
.build()
|
||||
}
|
||||
|
||||
fun create(): ExtensionGithubService {
|
||||
val adapter = Retrofit.Builder()
|
||||
.baseUrl(ExtensionGithubApi.BASE_URL)
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.client(client)
|
||||
.build()
|
||||
|
||||
return adapter.create(ExtensionGithubService::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
@GET("${ExtensionGithubApi.REPO_URL_PREFIX}index.json.gz")
|
||||
suspend fun getRepo(): JsonArray
|
||||
}
|
@ -2,18 +2,16 @@ package eu.kanade.tachiyomi.network
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebResourceResponse
|
||||
import android.webkit.WebSettings
|
||||
import android.webkit.WebView
|
||||
import android.widget.Toast
|
||||
import androidx.webkit.WebViewClientCompat
|
||||
import androidx.webkit.WebViewFeature
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||
import eu.kanade.tachiyomi.util.system.WebViewClientCompat
|
||||
import eu.kanade.tachiyomi.util.system.WebViewUtil
|
||||
import eu.kanade.tachiyomi.util.system.isOutdated
|
||||
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
||||
@ -116,7 +114,7 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
|
||||
}
|
||||
|
||||
// HTTP error codes are only received since M
|
||||
if (WebViewFeature.isFeatureSupported(WebViewFeature.RECEIVE_WEB_RESOURCE_ERROR) &&
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
|
||||
url == origRequestUrl && !challengeFound
|
||||
) {
|
||||
// The first request didn't return the challenge, abort.
|
||||
@ -124,13 +122,15 @@ class CloudflareInterceptor(private val context: Context) : Interceptor {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onReceivedHttpError(
|
||||
override fun onReceivedErrorCompat(
|
||||
view: WebView,
|
||||
request: WebResourceRequest,
|
||||
errorResponse: WebResourceResponse
|
||||
errorCode: Int,
|
||||
description: String?,
|
||||
failingUrl: String,
|
||||
isMainFrame: Boolean
|
||||
) {
|
||||
if (request.isForMainFrame) {
|
||||
if (errorResponse.statusCode == 503) {
|
||||
if (isMainFrame) {
|
||||
if (errorCode == 503) {
|
||||
// Found the Cloudflare challenge page.
|
||||
challengeFound = true
|
||||
} else {
|
||||
|
@ -149,7 +149,7 @@ class SourceController :
|
||||
)
|
||||
}
|
||||
|
||||
SourceOptionsDialog(item, items).showDialog(router)
|
||||
SourceOptionsDialog(item.source.toString(), items).showDialog(router)
|
||||
}
|
||||
|
||||
private fun disableSource(source: Source) {
|
||||
@ -270,17 +270,17 @@ class SourceController :
|
||||
|
||||
class SourceOptionsDialog(bundle: Bundle? = null) : DialogController(bundle) {
|
||||
|
||||
private lateinit var item: SourceItem
|
||||
private lateinit var source: String
|
||||
private lateinit var items: List<Pair<String, () -> Unit>>
|
||||
|
||||
constructor(item: SourceItem, items: List<Pair<String, () -> Unit>>) : this() {
|
||||
this.item = item
|
||||
constructor(source: String, items: List<Pair<String, () -> Unit>>) : this() {
|
||||
this.source = source
|
||||
this.items = items
|
||||
}
|
||||
|
||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||
return MaterialDialog(activity!!)
|
||||
.title(text = item.source.toString())
|
||||
.title(text = source)
|
||||
.listItems(
|
||||
items = items.map { it.first },
|
||||
waitForPositiveButton = false
|
||||
|
@ -46,6 +46,7 @@ import eu.kanade.tachiyomi.util.view.shrinkOnScroll
|
||||
import eu.kanade.tachiyomi.util.view.snack
|
||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
||||
import eu.kanade.tachiyomi.widget.EmptyView
|
||||
import kotlinx.android.synthetic.main.main_activity.root_coordinator
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.flow.drop
|
||||
import kotlinx.coroutines.flow.filter
|
||||
@ -403,7 +404,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
|
||||
binding.emptyView.show(message, actions)
|
||||
} else {
|
||||
snack = binding.catalogueView.snack(message, Snackbar.LENGTH_INDEFINITE) {
|
||||
snack = activity!!.root_coordinator?.snack(message, Snackbar.LENGTH_INDEFINITE) {
|
||||
setAction(R.string.action_retry, retryAction)
|
||||
}
|
||||
}
|
||||
|
@ -4,14 +4,11 @@ import android.app.Activity
|
||||
import android.app.SearchManager
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import com.bluelinelabs.conductor.Conductor
|
||||
import com.bluelinelabs.conductor.Controller
|
||||
import com.bluelinelabs.conductor.ControllerChangeHandler
|
||||
@ -19,12 +16,12 @@ import com.bluelinelabs.conductor.Router
|
||||
import com.bluelinelabs.conductor.RouterTransaction
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
import com.google.android.material.behavior.HideBottomViewOnScrollBehavior
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.Migrations
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
|
||||
import eu.kanade.tachiyomi.data.preference.asImmediateFlow
|
||||
import eu.kanade.tachiyomi.databinding.MainActivityBinding
|
||||
import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi
|
||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
||||
@ -45,14 +42,12 @@ import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController
|
||||
import eu.kanade.tachiyomi.util.lang.launchIO
|
||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.util.view.snack
|
||||
import java.util.Date
|
||||
import java.util.concurrent.TimeUnit
|
||||
import kotlinx.android.synthetic.main.main_activity.appbar
|
||||
import kotlinx.android.synthetic.main.main_activity.tabs
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import timber.log.Timber
|
||||
|
||||
class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
@ -155,13 +150,12 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
if (savedInstanceState == null) {
|
||||
// Show changelog prompt on update
|
||||
if (Migrations.upgrade(preferences) && !BuildConfig.DEBUG) {
|
||||
showUpdateInfoSnackbar()
|
||||
WhatsNewDialogController().showDialog(router)
|
||||
}
|
||||
}
|
||||
|
||||
setExtensionsBadge()
|
||||
preferences.extensionUpdatesCount().asFlow()
|
||||
.onEach { setExtensionsBadge() }
|
||||
preferences.extensionUpdatesCount()
|
||||
.asImmediateFlow { setExtensionsBadge() }
|
||||
.launchIn(scope)
|
||||
}
|
||||
|
||||
@ -382,32 +376,6 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showUpdateInfoSnackbar() {
|
||||
val snack = binding.rootCoordinator.snack(
|
||||
getString(R.string.updated_version, BuildConfig.VERSION_NAME),
|
||||
Snackbar.LENGTH_INDEFINITE
|
||||
) {
|
||||
setAction(R.string.whats_new) {
|
||||
val url = "https://github.com/inorichi/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
|
||||
val intent = Intent(Intent.ACTION_VIEW, url.toUri())
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
// Ensure the snackbar sits above the bottom nav
|
||||
view.updateLayoutParams<CoordinatorLayout.LayoutParams> {
|
||||
anchorId = binding.bottomNav.id
|
||||
anchorGravity = Gravity.TOP
|
||||
gravity = Gravity.TOP
|
||||
}
|
||||
}
|
||||
|
||||
// Manually handle dismiss delay since Snackbar.LENGTH_LONG is a too short
|
||||
launchIO {
|
||||
delay(10000)
|
||||
snack.dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
// Shortcut actions
|
||||
const val SHORTCUT_LIBRARY = "eu.kanade.tachiyomi.SHOW_LIBRARY"
|
||||
|
@ -0,0 +1,24 @@
|
||||
package eu.kanade.tachiyomi.ui.main
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.core.net.toUri
|
||||
import com.afollestad.materialdialogs.MaterialDialog
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
|
||||
class WhatsNewDialogController(bundle: Bundle? = null) : DialogController(bundle) {
|
||||
|
||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||
return MaterialDialog(activity!!)
|
||||
.title(text = activity!!.getString(R.string.updated_version, BuildConfig.VERSION_NAME))
|
||||
.positiveButton(android.R.string.ok)
|
||||
.neutralButton(R.string.whats_new) {
|
||||
val url = "https://github.com/inorichi/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
|
||||
val intent = Intent(Intent.ACTION_VIEW, url.toUri())
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
}
|
@ -14,6 +14,9 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.view.ActionMode
|
||||
import androidx.core.graphics.blue
|
||||
import androidx.core.graphics.green
|
||||
import androidx.core.graphics.red
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.recyclerview.widget.ConcatAdapter
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
@ -122,7 +125,6 @@ class MangaController :
|
||||
private val coverCache: CoverCache by injectLazy()
|
||||
|
||||
private val toolbarTextColor by lazy { view!!.context.getResourceColor(R.attr.colorOnPrimary) }
|
||||
private var toolbarTextAlpha = 255
|
||||
|
||||
private var mangaInfoAdapter: MangaInfoHeaderAdapter? = null
|
||||
private var chaptersHeaderAdapter: MangaChaptersHeaderAdapter? = null
|
||||
@ -157,6 +159,19 @@ class MangaController :
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
|
||||
override fun getTitle(): String? {
|
||||
return manga?.title
|
||||
}
|
||||
|
||||
override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) {
|
||||
super.onChangeStarted(handler, type)
|
||||
|
||||
// Hide toolbar title on enter
|
||||
if (type.isEnter) {
|
||||
updateToolbarTitleAlpha()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onChangeEnded(handler: ControllerChangeHandler, type: ControllerChangeType) {
|
||||
super.onChangeEnded(handler, type)
|
||||
if (manga == null || source == null) {
|
||||
@ -204,7 +219,6 @@ class MangaController :
|
||||
// Delayed in case we need to jump to chapters
|
||||
binding.recycler.post {
|
||||
updateToolbarTitleAlpha()
|
||||
setTitle(manga?.title)
|
||||
}
|
||||
}
|
||||
|
||||
@ -243,18 +257,14 @@ class MangaController :
|
||||
else -> min(binding.recycler.computeVerticalScrollOffset(), 255)
|
||||
}
|
||||
|
||||
if (calculatedAlpha != toolbarTextAlpha) {
|
||||
toolbarTextAlpha = calculatedAlpha
|
||||
|
||||
activity?.toolbar?.setTitleTextColor(
|
||||
Color.argb(
|
||||
toolbarTextAlpha,
|
||||
Color.red(toolbarTextColor),
|
||||
Color.green(toolbarTextColor),
|
||||
Color.blue(toolbarTextColor)
|
||||
)
|
||||
activity?.toolbar?.setTitleTextColor(
|
||||
Color.argb(
|
||||
calculatedAlpha,
|
||||
toolbarTextColor.red,
|
||||
toolbarTextColor.green,
|
||||
toolbarTextColor.blue
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private fun updateFilterIconState() {
|
||||
@ -881,7 +891,7 @@ class MangaController :
|
||||
val manga = presenter.manga
|
||||
presenter.downloadChapters(chapters)
|
||||
if (view != null && !manga.favorite) {
|
||||
binding.recycler.snack(view.context.getString(R.string.snack_add_to_library), Snackbar.LENGTH_INDEFINITE) {
|
||||
activity!!.root_coordinator?.snack(view.context.getString(R.string.snack_add_to_library), Snackbar.LENGTH_INDEFINITE) {
|
||||
setAction(R.string.action_add) {
|
||||
addToLibrary(manga)
|
||||
}
|
||||
|
@ -20,11 +20,11 @@ import android.view.WindowManager
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.AnimationUtils
|
||||
import android.widget.SeekBar
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.setPadding
|
||||
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import dev.chrisbanes.insetter.applySystemWindowInsetsToPadding
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.database.models.Chapter
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
@ -288,16 +288,13 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
|
||||
onBackPressed()
|
||||
}
|
||||
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.readerMenu) { _, insets ->
|
||||
if (!window.isDefaultBar()) {
|
||||
binding.readerMenu.setPadding(
|
||||
insets.systemWindowInsetLeft,
|
||||
insets.systemWindowInsetTop,
|
||||
insets.systemWindowInsetRight,
|
||||
insets.systemWindowInsetBottom
|
||||
)
|
||||
}
|
||||
insets
|
||||
if (!window.isDefaultBar()) {
|
||||
binding.readerMenu.applySystemWindowInsetsToPadding(
|
||||
left = true,
|
||||
top = true,
|
||||
right = true,
|
||||
bottom = true
|
||||
)
|
||||
}
|
||||
|
||||
// Init listeners on bottom menu
|
||||
|
@ -80,29 +80,38 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
||||
isIdle = state == ViewPager.SCROLL_STATE_IDLE
|
||||
}
|
||||
})
|
||||
pager.tapListener = { event ->
|
||||
pager.tapListener = f@{ event ->
|
||||
if (!config.tappingEnabled) {
|
||||
activity.toggleMenu()
|
||||
return@f
|
||||
}
|
||||
|
||||
val positionX = event.x
|
||||
val positionY = event.y
|
||||
val topSideTap = positionY < pager.height * 0.25f
|
||||
val bottomSideTap = positionY > pager.height * 0.75f
|
||||
val leftSideTap = positionX < pager.width * 0.33f
|
||||
val rightSideTap = positionX > pager.width * 0.66f
|
||||
|
||||
val invertMode = config.tappingInverted
|
||||
val invertVertical = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val invertHorizontal = invertMode == TappingInvertMode.HORIZONTAL || invertMode == TappingInvertMode.BOTH
|
||||
|
||||
if (this is VerticalPagerViewer) {
|
||||
val positionY = event.y
|
||||
val tappingInverted = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val topSideTap = positionY < pager.height * 0.33f && config.tappingEnabled
|
||||
val bottomSideTap = positionY > pager.height * 0.66f && config.tappingEnabled
|
||||
|
||||
when {
|
||||
topSideTap && !tappingInverted || bottomSideTap && tappingInverted -> moveLeft()
|
||||
bottomSideTap && !tappingInverted || topSideTap && tappingInverted -> moveRight()
|
||||
topSideTap && !invertVertical || bottomSideTap && invertVertical -> moveLeft()
|
||||
bottomSideTap && !invertVertical || topSideTap && invertVertical -> moveRight()
|
||||
|
||||
leftSideTap && !invertHorizontal || rightSideTap && invertHorizontal -> moveLeft()
|
||||
rightSideTap && !invertHorizontal || leftSideTap && invertHorizontal -> moveRight()
|
||||
|
||||
else -> activity.toggleMenu()
|
||||
}
|
||||
} else {
|
||||
val positionX = event.x
|
||||
val tappingInverted = invertMode == TappingInvertMode.HORIZONTAL || invertMode == TappingInvertMode.BOTH
|
||||
val leftSideTap = positionX < pager.width * 0.33f && config.tappingEnabled
|
||||
val rightSideTap = positionX > pager.width * 0.66f && config.tappingEnabled
|
||||
|
||||
when {
|
||||
leftSideTap && !tappingInverted || rightSideTap && tappingInverted -> moveLeft()
|
||||
rightSideTap && !tappingInverted || leftSideTap && tappingInverted -> moveRight()
|
||||
leftSideTap && !invertHorizontal || rightSideTap && invertHorizontal -> moveLeft()
|
||||
rightSideTap && !invertHorizontal || leftSideTap && invertHorizontal -> moveRight()
|
||||
|
||||
else -> activity.toggleMenu()
|
||||
}
|
||||
}
|
||||
|
@ -93,17 +93,30 @@ class WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = tr
|
||||
}
|
||||
}
|
||||
})
|
||||
recycler.tapListener = { event ->
|
||||
val positionY = event.rawY
|
||||
val invertMode = config.tappingInverted
|
||||
val topSideTap = positionY < recycler.height * 0.33f && config.tappingEnabled
|
||||
val bottomSideTap = positionY > recycler.height * 0.66f && config.tappingEnabled
|
||||
recycler.tapListener = f@{ event ->
|
||||
if (!config.tappingEnabled) {
|
||||
activity.toggleMenu()
|
||||
return@f
|
||||
}
|
||||
|
||||
val tappingInverted = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val positionX = event.rawX
|
||||
val positionY = event.rawY
|
||||
val topSideTap = positionY < recycler.height * 0.25f
|
||||
val bottomSideTap = positionY > recycler.height * 0.75f
|
||||
val leftSideTap = positionX < recycler.width * 0.33f
|
||||
val rightSideTap = positionX > recycler.width * 0.66f
|
||||
|
||||
val invertMode = config.tappingInverted
|
||||
val invertVertical = invertMode == TappingInvertMode.VERTICAL || invertMode == TappingInvertMode.BOTH
|
||||
val invertHorizontal = invertMode == TappingInvertMode.HORIZONTAL || invertMode == TappingInvertMode.BOTH
|
||||
|
||||
when {
|
||||
topSideTap && !tappingInverted || bottomSideTap && tappingInverted -> scrollUp()
|
||||
bottomSideTap && !tappingInverted || topSideTap && tappingInverted -> scrollDown()
|
||||
topSideTap && !invertVertical || bottomSideTap && invertVertical -> scrollUp()
|
||||
bottomSideTap && !invertVertical || topSideTap && invertVertical -> scrollDown()
|
||||
|
||||
leftSideTap && !invertHorizontal || rightSideTap && invertHorizontal -> scrollUp()
|
||||
rightSideTap && !invertHorizontal || leftSideTap && invertHorizontal -> scrollDown()
|
||||
|
||||
else -> activity.toggleMenu()
|
||||
}
|
||||
}
|
||||
|
@ -204,7 +204,6 @@ class SettingsGeneralController : SettingsController() {
|
||||
"sr",
|
||||
"sv",
|
||||
"th",
|
||||
"tl",
|
||||
"tr",
|
||||
"uk",
|
||||
"ur-rPK",
|
||||
|
@ -9,19 +9,18 @@ import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.webkit.WebChromeClient
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebView
|
||||
import android.widget.Toast
|
||||
import androidx.core.graphics.ColorUtils
|
||||
import androidx.core.view.isInvisible
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.webkit.WebViewClientCompat
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.databinding.WebviewActivityBinding
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
||||
import eu.kanade.tachiyomi.util.system.WebViewClientCompat
|
||||
import eu.kanade.tachiyomi.util.system.WebViewUtil
|
||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||
@ -100,8 +99,8 @@ class WebViewActivity : BaseActivity<WebviewActivityBinding>() {
|
||||
}
|
||||
|
||||
binding.webview.webViewClient = object : WebViewClientCompat() {
|
||||
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
|
||||
view.loadUrl(request.url.toString())
|
||||
override fun shouldOverrideUrlCompat(view: WebView, url: String): Boolean {
|
||||
view.loadUrl(url)
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,91 @@
|
||||
package eu.kanade.tachiyomi.util.system
|
||||
|
||||
import android.annotation.TargetApi
|
||||
import android.os.Build
|
||||
import android.webkit.WebResourceError
|
||||
import android.webkit.WebResourceRequest
|
||||
import android.webkit.WebResourceResponse
|
||||
import android.webkit.WebView
|
||||
import android.webkit.WebViewClient
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
abstract class WebViewClientCompat : WebViewClient() {
|
||||
|
||||
open fun shouldOverrideUrlCompat(view: WebView, url: String): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
open fun shouldInterceptRequestCompat(view: WebView, url: String): WebResourceResponse? {
|
||||
return null
|
||||
}
|
||||
|
||||
open fun onReceivedErrorCompat(
|
||||
view: WebView,
|
||||
errorCode: Int,
|
||||
description: String?,
|
||||
failingUrl: String,
|
||||
isMainFrame: Boolean
|
||||
) {
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.N)
|
||||
final override fun shouldOverrideUrlLoading(
|
||||
view: WebView,
|
||||
request: WebResourceRequest
|
||||
): Boolean {
|
||||
return shouldOverrideUrlCompat(view, request.url.toString())
|
||||
}
|
||||
|
||||
final override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
|
||||
return shouldOverrideUrlCompat(view, url)
|
||||
}
|
||||
|
||||
final override fun shouldInterceptRequest(
|
||||
view: WebView,
|
||||
request: WebResourceRequest
|
||||
): WebResourceResponse? {
|
||||
return shouldInterceptRequestCompat(view, request.url.toString())
|
||||
}
|
||||
|
||||
final override fun shouldInterceptRequest(
|
||||
view: WebView,
|
||||
url: String
|
||||
): WebResourceResponse? {
|
||||
return shouldInterceptRequestCompat(view, url)
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
final override fun onReceivedError(
|
||||
view: WebView,
|
||||
request: WebResourceRequest,
|
||||
error: WebResourceError
|
||||
) {
|
||||
onReceivedErrorCompat(
|
||||
view, error.errorCode, error.description?.toString(),
|
||||
request.url.toString(), request.isForMainFrame
|
||||
)
|
||||
}
|
||||
|
||||
final override fun onReceivedError(
|
||||
view: WebView,
|
||||
errorCode: Int,
|
||||
description: String?,
|
||||
failingUrl: String
|
||||
) {
|
||||
onReceivedErrorCompat(view, errorCode, description, failingUrl, failingUrl == view.url)
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
final override fun onReceivedHttpError(
|
||||
view: WebView,
|
||||
request: WebResourceRequest,
|
||||
error: WebResourceResponse
|
||||
) {
|
||||
onReceivedErrorCompat(
|
||||
view, error.statusCode, error.reasonPhrase,
|
||||
request.url
|
||||
.toString(),
|
||||
request.isForMainFrame
|
||||
)
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
android:id="@+id/downloaded_only"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
android:layout_gravity="center"
|
||||
android:padding="4dp"
|
||||
android:text="@string/label_downloaded_only"
|
||||
android:textColor="@color/md_black_1000" />
|
||||
android:textColor="@color/md_white_1000" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
@ -41,13 +41,13 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:text="@string/local_source_badge"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@ -56,12 +56,12 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:text="120"
|
||||
tools:visibility="visible" />
|
||||
|
@ -41,13 +41,13 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:text="@string/local_source_badge"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@ -56,12 +56,12 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:text="120"
|
||||
tools:visibility="visible" />
|
||||
|
@ -54,14 +54,14 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:text="@string/local_source_badge"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible" />
|
||||
|
||||
@ -70,13 +70,13 @@
|
||||
style="@style/TextAppearance.Regular.Caption"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/pale_green"
|
||||
android:background="@color/green"
|
||||
android:maxLines="1"
|
||||
android:paddingStart="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:paddingEnd="3dp"
|
||||
android:paddingBottom="1dp"
|
||||
android:textColor="@color/md_black_1000"
|
||||
android:textColor="@color/md_white_1000"
|
||||
android:visibility="gone"
|
||||
tools:text="122"
|
||||
tools:visibility="visible" />
|
||||
|
@ -1,465 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="categories">Mga Kategorya</string>
|
||||
<string name="manga">Mga Manga</string>
|
||||
<string name="chapters">Mga Kabanata</string>
|
||||
<string name="track">Sinusundan</string>
|
||||
<string name="history">Kasaysayan</string>
|
||||
<string name="label_settings">Pagsasaayos</string>
|
||||
<string name="label_download_queue">Toka sa Download</string>
|
||||
<string name="label_library">Aklatan</string>
|
||||
<string name="label_recent_manga">Kamakailang Binása</string>
|
||||
<string name="label_recent_updates">Mga Update</string>
|
||||
<string name="label_categories">Mga Kategorya</string>
|
||||
<string name="label_backup">Pag-backup</string>
|
||||
<string name="label_migration">Ilipat</string>
|
||||
<string name="label_extensions">Mga Dugtong</string>
|
||||
<string name="label_extension_info">Tungkol sa Dugtong</string>
|
||||
<string name="action_settings">Pagsasaayos</string>
|
||||
<string name="action_filter">Salain</string>
|
||||
<string name="action_filter_downloaded">Na-download</string>
|
||||
<string name="action_filter_bookmarked">Tinandaan</string>
|
||||
<string name="action_filter_unread">Babasáhin</string>
|
||||
<string name="action_filter_read">Nabása</string>
|
||||
<string name="action_filter_empty">Tanggalin ang pagsala</string>
|
||||
<string name="action_sort_alpha">Pa-alpabeto</string>
|
||||
<string name="action_sort_total">Dami ng kabanata</string>
|
||||
<string name="action_sort_last_read">Huling binása</string>
|
||||
<string name="action_search">Maghanap</string>
|
||||
<string name="action_global_search">Panlahatang paghahanap</string>
|
||||
<string name="action_select_all">Piliin lahat</string>
|
||||
<string name="name">Pangalan</string>
|
||||
<string name="action_mark_as_read">Markahang nabása</string>
|
||||
<string name="action_mark_as_unread">Markahang babasáhin</string>
|
||||
<string name="action_mark_previous_as_read">Markahang nabása ang huli</string>
|
||||
<string name="action_download">I-download</string>
|
||||
<string name="action_bookmark">Tandaan</string>
|
||||
<string name="action_remove_bookmark">Tanggalin ang pananda</string>
|
||||
<string name="action_delete">Burahin</string>
|
||||
<string name="action_update">I-update</string>
|
||||
<string name="action_update_library">I-update ang aklatan</string>
|
||||
<string name="action_edit">I-edit</string>
|
||||
<string name="action_add">Magdagdag</string>
|
||||
<string name="action_add_category">Magdagdag ng kategorya</string>
|
||||
<string name="action_edit_categories">I-edit ang mga kategorya</string>
|
||||
<string name="action_rename_category">Baguhin ang pangalan</string>
|
||||
<string name="action_move_category">I-kategorya</string>
|
||||
<string name="action_edit_cover">I-edit ang pabalat</string>
|
||||
<string name="action_sort_up">Ayusin pataas</string>
|
||||
<string name="action_sort_down">Ayusin pababa</string>
|
||||
<string name="action_show_downloaded">Mga na-download</string>
|
||||
<string name="action_next_unread">Susunod na babasáhin</string>
|
||||
<string name="action_stop">Itigil</string>
|
||||
<string name="action_pause">Ihinto</string>
|
||||
<string name="action_close">Isara</string>
|
||||
<string name="action_previous_chapter">Nakaraang kabanata</string>
|
||||
<string name="action_next_chapter">Susunod na kabanata</string>
|
||||
<string name="action_retry">Subukan muli</string>
|
||||
<string name="action_remove">Tanggalin</string>
|
||||
<string name="action_resume">Ipagpatuloy</string>
|
||||
<string name="action_move">Ilipat</string>
|
||||
<string name="action_open_in_browser">Buksan sa browser</string>
|
||||
<string name="action_open_in_web_view">Buksan sa WebView</string>
|
||||
<string name="action_display_mode">Kaparaanan</string>
|
||||
<string name="action_display">Pagpapakita</string>
|
||||
<string name="action_display_grid">Siksik</string>
|
||||
<string name="action_display_list">Listahan</string>
|
||||
<string name="action_display_download_badge">Bilang ng na-download</string>
|
||||
<string name="action_cancel">Ikansela</string>
|
||||
<string name="action_sort">Ibukod</string>
|
||||
<string name="action_install">I-install</string>
|
||||
<string name="action_share">Ibahagi</string>
|
||||
<string name="action_save">I-save</string>
|
||||
<string name="action_reset">I-reset</string>
|
||||
<string name="action_undo">I-undo</string>
|
||||
<string name="action_open_log">Buksan ang log</string>
|
||||
<string name="action_create">Gumawa</string>
|
||||
<string name="action_restore">Ipanumbalik</string>
|
||||
<string name="action_open">Buksan</string>
|
||||
<string name="action_login">Mag-log in</string>
|
||||
<string name="loading">Nagkakarga…</string>
|
||||
<string name="app_not_available">Hindi available ang app</string>
|
||||
<string name="short_recent_updates">Mga Update</string>
|
||||
<string name="pref_category_general">Pangkalahatan</string>
|
||||
<string name="pref_category_reader">Pagbása</string>
|
||||
<string name="pref_category_downloads">Mga Download</string>
|
||||
<string name="pref_category_tracking">Sinusundan</string>
|
||||
<string name="pref_category_advanced">Higit pa</string>
|
||||
<string name="pref_category_about">Tungkol</string>
|
||||
<string name="pref_library_columns">Kada hilera</string>
|
||||
<string name="portrait">Patayo</string>
|
||||
<string name="landscape">Pahiga</string>
|
||||
<string name="default_columns">Itinakda</string>
|
||||
<string name="pref_library_update_interval">Dalas ng pag-update</string>
|
||||
<string name="update_never">Mano-mano</string>
|
||||
<string name="update_1hour">Oras-oras</string>
|
||||
<string name="update_2hour">Kada 2 oras</string>
|
||||
<string name="update_3hour">Kada 3 oras</string>
|
||||
<string name="update_6hour">Kada 6 na oras</string>
|
||||
<string name="update_12hour">Kada 12 oras</string>
|
||||
<string name="update_24hour">Araw-araw</string>
|
||||
<string name="update_48hour">Kada 2 araw</string>
|
||||
<string name="update_weekly">Linggo-linggo</string>
|
||||
<string name="update_monthly">Buwan-buwan</string>
|
||||
<string name="pref_library_update_categories">Mga Kategoryang isasama sa pangkalahatang update</string>
|
||||
<string name="all">Lahat</string>
|
||||
<string name="pref_library_update_restriction">Kondisyon sa pag-update</string>
|
||||
<string name="pref_library_update_restriction_summary">I-update lamang kapag nakamit ang (mga) kondisyon</string>
|
||||
<string name="wifi">Naka-wifi</string>
|
||||
<string name="charging">Naka-charge</string>
|
||||
<string name="pref_update_only_non_completed">I-update lamang ang (mga) nagpapatuloy na manga</string>
|
||||
<string name="pref_auto_update_manga_sync">I-sync ang mga kabanata pagkatapos basahin</string>
|
||||
<string name="pref_start_screen">Pambungad na iskrin</string>
|
||||
<string name="pref_language">Wika</string>
|
||||
<string name="system_default">Bahala ang sistema</string>
|
||||
<string name="default_category">Default na kategorya</string>
|
||||
<string name="default_category_summary">Palaging tanungin</string>
|
||||
<string name="all_lang">Lahat</string>
|
||||
<string name="ext_update">I-update</string>
|
||||
<string name="ext_install">I-install</string>
|
||||
<string name="ext_pending">Hinihintay</string>
|
||||
<string name="ext_downloading">Dina-download</string>
|
||||
<string name="ext_installing">Ini-install</string>
|
||||
<string name="ext_installed">Naka-install</string>
|
||||
<string name="ext_trust">Tiwala</string>
|
||||
<string name="ext_untrusted">Hindi tiwala</string>
|
||||
<string name="ext_uninstall">I-uninstall</string>
|
||||
<string name="ext_available">Available</string>
|
||||
<string name="untrusted_extension">Untrusted na extension</string>
|
||||
<string name="untrusted_extension_message">Ang extension na ito ay na-sign gamit ang isang untrusted certificate at hindi pinagana.
|
||||
\n
|
||||
\nAng isang malisyosong extension ay kayang mabasa ang kahit anong mga login credentials na nakatago sa Tachiyomi o di kaya\'y mag-execute ng arbitrary code.
|
||||
\n
|
||||
\nSa pamamagitan ng pagtitiwala sa certificate na ito, tinatanggap mo ang mga panganib na ito.</string>
|
||||
<string name="ext_version_info">Bersyon: %1$s</string>
|
||||
<string name="ext_language_info">Wika: %1$s</string>
|
||||
<string name="pref_fullscreen">I-fullscreen</string>
|
||||
<string name="pref_lock_orientation">I-lock ang oryentasyon</string>
|
||||
<string name="pref_page_transitions">Mga transisyon ng pahina</string>
|
||||
<string name="pref_double_tap_anim_speed">Bilis ng animation sa pag-dobleng pindot</string>
|
||||
<string name="pref_show_page_number">Ipakita ang bilang ng pahina</string>
|
||||
<string name="pref_true_color">Kulay na 32-bit</string>
|
||||
<string name="pref_crop_borders">I-crop ang mga gilid</string>
|
||||
<string name="pref_custom_brightness">Gamitin ang pansariling kaliwanagan</string>
|
||||
<string name="pref_custom_color_filter">Gamitin ang pansariling pagsalâ ng kulay</string>
|
||||
<string name="pref_keep_screen_on">Panatilihing nakabukas ang screen</string>
|
||||
<string name="pref_skip_read_chapters">Laktawan ang mga kabanatang namarkahang nabasa</string>
|
||||
<string name="pref_reader_navigation">Pangangalugad</string>
|
||||
<string name="pref_read_with_volume_keys">Mga buton sa volume</string>
|
||||
<string name="pref_read_with_volume_keys_inverted">Baligtarin ang buton sa volume</string>
|
||||
<string name="pref_read_with_tapping">Pag-pindot</string>
|
||||
<string name="pref_read_with_long_tap">Dialog sa mahabang pindot</string>
|
||||
<string name="pref_reader_theme">Kulay ng likuran</string>
|
||||
<string name="white_background">Puti</string>
|
||||
<string name="black_background">Itim</string>
|
||||
<string name="pref_viewer_type">Default na viewer</string>
|
||||
<string name="default_viewer">Default</string>
|
||||
<string name="left_to_right_viewer">Kaliwa pakanan</string>
|
||||
<string name="right_to_left_viewer">Kanan pakaliwa</string>
|
||||
<string name="vertical_viewer">Patayo</string>
|
||||
<string name="webtoon_viewer">Pa-webtoon</string>
|
||||
<string name="pager_viewer">Pager</string>
|
||||
<string name="pref_image_decoder">Decoder ng larawan</string>
|
||||
<string name="pref_image_scale_type">Uri ng pag-scale</string>
|
||||
<string name="scale_type_fit_screen">Pagkasyahin sa screen</string>
|
||||
<string name="scale_type_stretch">Banatin</string>
|
||||
<string name="scale_type_fit_width">Pagkasyahin ang lapad</string>
|
||||
<string name="scale_type_fit_height">Pagkasyahin ang tangkad</string>
|
||||
<string name="scale_type_original_size">Orihinal na laki</string>
|
||||
<string name="scale_type_smart_fit">Matalinong ipagkasya</string>
|
||||
<string name="pref_zoom_start">Panimulang posisyon na isu-zoom</string>
|
||||
<string name="zoom_start_automatic">Awtomatiko</string>
|
||||
<string name="zoom_start_left">Kaliwa</string>
|
||||
<string name="zoom_start_right">Kanan</string>
|
||||
<string name="zoom_start_center">Gitna</string>
|
||||
<string name="double_tap_anim_speed_0">Walang animasyon</string>
|
||||
<string name="double_tap_anim_speed_normal">Normal</string>
|
||||
<string name="double_tap_anim_speed_fast">Mabilis</string>
|
||||
<string name="pref_rotation_type">Pag-ikot</string>
|
||||
<string name="rotation_free">Malaya</string>
|
||||
<string name="rotation_lock">I-lock</string>
|
||||
<string name="rotation_force_portrait">Pwersahang patayo</string>
|
||||
<string name="rotation_force_landscape">Pwersahang pahiga</string>
|
||||
<string name="color_filter_r_value">R</string>
|
||||
<string name="color_filter_g_value">G</string>
|
||||
<string name="color_filter_b_value">B</string>
|
||||
<string name="color_filter_a_value">A</string>
|
||||
<string name="pref_download_directory">Directory ng mga Download</string>
|
||||
<string name="pref_download_only_over_wifi">Mag-download lamang sa Wi-Fi</string>
|
||||
<string name="pref_remove_after_marked_as_read">Tanggalin kapag namarkahang nabasa</string>
|
||||
<string name="pref_remove_after_read">Tanggalin pagkatapos basahin</string>
|
||||
<string name="custom_dir">Custom na directory</string>
|
||||
<string name="disabled">I-disable</string>
|
||||
<string name="last_read_chapter">Huling nabasang kabanata</string>
|
||||
<string name="second_to_last">Ikalawa sa huling kabanata</string>
|
||||
<string name="third_to_last">Ikatlo sa huling kabanata</string>
|
||||
<string name="fourth_to_last">Ikaapat sa huling kabanata</string>
|
||||
<string name="fifth_to_last">Ikalima sa huling kabanata</string>
|
||||
<string name="pref_download_new">Mag-download ng mga bagong kabanata</string>
|
||||
<string name="pref_download_new_categories">Mga kategoryang isasama sa pag-download</string>
|
||||
<string name="services">Mga Serbisyo</string>
|
||||
<string name="backup">Backup</string>
|
||||
<string name="pref_create_backup">Gumawa ng backup</string>
|
||||
<string name="pref_create_backup_summ">Maaring magamit para ma-restore ang kasalukuyang aklatan</string>
|
||||
<string name="pref_restore_backup">I-restore ang backup</string>
|
||||
<string name="pref_restore_backup_summ">I-restore ang aklatan mula sa backup file</string>
|
||||
<string name="pref_backup_directory">Directory ng backup</string>
|
||||
<string name="pref_backup_service_category">Serbisyo</string>
|
||||
<string name="pref_backup_interval">Dalas ng pag-backup</string>
|
||||
<string name="pref_backup_slots">Hangganan ng mga awtomatikong backup</string>
|
||||
<string name="backup_created">Nagawa na ang backup</string>
|
||||
<string name="restore_completed">Nakumpleto na ang pagre-restore</string>
|
||||
<string name="backup_restore_content">Ginagamit ng pagre-restore ang source para makakuha ng data, maaring magamit ang inyong data.
|
||||
\n
|
||||
\nSiguraduhin din na ikaw ay maayos na naka-login sa mga source that nangangailangan nito bago mag-restore.</string>
|
||||
<string name="pref_color_filter_mode">Blend mode ng color filter</string>
|
||||
<string name="filter_mode_default">Default</string>
|
||||
<string name="filter_mode_overlay">Patong (Overlay)</string>
|
||||
<string name="filter_mode_multiply">Paramihin (Multiply)</string>
|
||||
<string name="filter_mode_screen">Iskrin (Screen)</string>
|
||||
<string name="filter_mode_lighten">Iwas / Liwanag (Dodge / Lighten)</string>
|
||||
<string name="filter_mode_darken">Sunog / Dilim (Burn / Darken)</string>
|
||||
<string name="label_help">Tulong</string>
|
||||
<string name="pref_library_update_prioritization">Ayos ng pag-update</string>
|
||||
<string name="backup_choice">Ano ang gusto mong i-backup\?</string>
|
||||
<string name="restoring_backup">Nire-restore ang backup</string>
|
||||
<string name="creating_backup">Ginagawa ang backup</string>
|
||||
<string name="pref_clear_chapter_cache">Linisin ang cache ng kabanata</string>
|
||||
<string name="used_cache">Nagamit: %1$s</string>
|
||||
<string name="cache_deleted">Nalinis ang cache. Nabura ang %1$d na (mga) file</string>
|
||||
<string name="cache_delete_error">Nagkaproblema habang nililinis ang cache</string>
|
||||
<string name="pref_clear_cookies">Linisin ang mga cookies</string>
|
||||
<string name="cookies_cleared">Nalinis ang mga cookies</string>
|
||||
<string name="choices_reset">I-reset ang mga pinili sa dialog</string>
|
||||
<string name="pref_clear_database">Linisin ang database</string>
|
||||
<string name="pref_clear_database_summary">Burahin ang mga manga at kabanatang wala sa iyong aklatan</string>
|
||||
<string name="clear_database_confirmation">Sigurado ka ba\? Mawawala ang mga nabasang kabanata at ang daloy ng mga manga na wala sa aklatan</string>
|
||||
<string name="clear_database_completed">Binura ang mga tala</string>
|
||||
<string name="pref_refresh_library_tracking">I-refresh ang metadata ng mga sinusubaybayan</string>
|
||||
<string name="pref_refresh_library_tracking_summary">Ini-a-update ang estado, iskor, at huling nabasang kabanata mula sa mga tracking service</string>
|
||||
<string name="version">Bersyon</string>
|
||||
<string name="build_time">Oras ng build</string>
|
||||
<string name="pref_enable_acra">Ipadala ang mga ulat ng pagka-crash</string>
|
||||
<string name="pref_acra_summary">Nakakatulong sa pagsasaayos ng mga bugs. Walang sensitibong data ang ipapadala</string>
|
||||
<string name="login_title">Mag-login para kay %1$s</string>
|
||||
<string name="username">Taguri (Username)</string>
|
||||
<string name="password">Kontrasenyas (Password)</string>
|
||||
<string name="show_password">Ipakita ang kontrasenyas</string>
|
||||
<string name="login">Mag-login</string>
|
||||
<string name="login_success">Tagumpay ang login</string>
|
||||
<string name="invalid_login">Error sa login</string>
|
||||
<string name="unknown_error">Hindi malamang error</string>
|
||||
<string name="library_search_hint">Pamagat o Gumawa…</string>
|
||||
<string name="updating_category">Ini-a-update ang kategorya</string>
|
||||
<string name="local_source_badge">Lokal</string>
|
||||
<string name="confirm_delete_manga">Sigurado ka bang gusto mong tanggalin ang mga napiling manga\?</string>
|
||||
<string name="also_delete_chapters">Burahin din ang mga na-download na kabanata</string>
|
||||
<string name="source_requires_login">Kinakailangan ng source na ito na mag-login ka</string>
|
||||
<string name="select_source">Pumili ng source</string>
|
||||
<string name="no_valid_sources">Mangyaring i-enable ang kahit isang tunay na source</string>
|
||||
<string name="no_more_results">Wala nang mga resulta</string>
|
||||
<string name="local_source">Lokal na manga</string>
|
||||
<string name="other_source">Iba pa</string>
|
||||
<string name="invalid_combination">Hindi maaring mapili ang Default sa iba pang mga kategorya</string>
|
||||
<string name="added_to_library">Naidagdag na ang manga sa iyong aklatan</string>
|
||||
<string name="action_global_search_hint">Pangkalahatang paghahanap…</string>
|
||||
<string name="latest">Pinakabago</string>
|
||||
<string name="browse">Mag-browse</string>
|
||||
<string name="manga_not_in_db">Ang manga na ito ay tinanggal mula sa database.</string>
|
||||
<string name="manga_detail_tab">Impo</string>
|
||||
<string name="description">Paglalarawan</string>
|
||||
<string name="ongoing">Nagpapatuloy</string>
|
||||
<string name="unknown">Hindi alam</string>
|
||||
<string name="licensed">Lisensyado</string>
|
||||
<string name="remove_from_library">Tanggalin sa aklatan</string>
|
||||
<string name="manga_info_full_title_label">Pamagat</string>
|
||||
<string name="manga_added_library">Nadagdag sa aklatan</string>
|
||||
<string name="manga_removed_library">Natanggal sa aklatan</string>
|
||||
<string name="delete_downloads_for_manga">Burahin ang mga na-download na kabanata\?</string>
|
||||
<string name="copied_to_clipboard">Nakopya sa clipboard ang %1$s</string>
|
||||
<string name="source_not_installed">Hindi na-install ang source: %1$s</string>
|
||||
<string name="manga_chapters_tab">Mga Kabanata</string>
|
||||
<string name="manga_chapter_no_title">Walang Pamagat</string>
|
||||
<string name="display_mode_chapter">Kabanata %1$s</string>
|
||||
<string name="chapter_downloaded">Na-download</string>
|
||||
<string name="chapter_queued">Nakatoka</string>
|
||||
<string name="chapter_downloading">Dina-download</string>
|
||||
<string name="chapter_downloading_progress">Dina-download (%1$d/%2$d)</string>
|
||||
<string name="chapter_error">Nabigo</string>
|
||||
<string name="chapter_paused">Naka-tigil</string>
|
||||
<string name="fetch_chapters_error">Nagka-error habang kinukuha ang mga kabanata</string>
|
||||
<string name="show_title">Ipakita ang pamagat</string>
|
||||
<string name="show_chapter_number">Ipakita ang bilang ng kabanata</string>
|
||||
<string name="sorting_mode">Paraan ng pag-aayos</string>
|
||||
<string name="sort_by_source">Base sa source</string>
|
||||
<string name="sort_by_number">Base sa bilang ng kabanata</string>
|
||||
<string name="manga_download">I-download</string>
|
||||
<string name="custom_download">I-download ang custom na rami</string>
|
||||
<string name="download_1">Susunod na kabanata</string>
|
||||
<string name="download_5">Susunod na 5 kabanata</string>
|
||||
<string name="download_10">Susunod na 10 kabanata</string>
|
||||
<string name="download_custom">Custom</string>
|
||||
<string name="download_all">Lahat</string>
|
||||
<string name="download_unread">Hindi na nababasa</string>
|
||||
<string name="confirm_delete_chapters">Sigurado ka bang gusto mong burahin ang mga napiling kabanata\?</string>
|
||||
<string name="manga_tracking_tab">Sinusubaybayan</string>
|
||||
<string name="reading">Binabasa</string>
|
||||
<string name="completed">Nakumpleto</string>
|
||||
<string name="dropped">Umalis</string>
|
||||
<string name="on_hold">Nakatigil</string>
|
||||
<string name="plan_to_read">Planong basahin</string>
|
||||
<string name="repeating">Babasahin muli</string>
|
||||
<string name="score">Iskor</string>
|
||||
<string name="title">Pamagat</string>
|
||||
<string name="status">Estado</string>
|
||||
<string name="track_status">Estado</string>
|
||||
<string name="track_start_date">Nagsimula</string>
|
||||
<string name="track_type">Uri</string>
|
||||
<string name="track_author">Gumawa</string>
|
||||
<string name="error_category_exists">Mayroon nang kategoryang kasing-pangalan nito!</string>
|
||||
<string name="snack_categories_deleted">Binura ang mga kategorya</string>
|
||||
<string name="dialog_with_checkbox_remove_description">Tatanggalin nito ang petsa ng pagbasa ng kabanatang ito. Sigurado ka ba\?</string>
|
||||
<string name="dialog_with_checkbox_reset">I-reset ang lahat ng mga kabanata para sa manga na ito</string>
|
||||
<string name="snack_add_to_library">Idagdag ang manga sa Aklatan\?</string>
|
||||
<string name="picture_saved">Na-save ang larawan</string>
|
||||
<string name="saving_picture">Sine-save ang larawan</string>
|
||||
<string name="options">Mga Pagpipilian</string>
|
||||
<string name="custom_filter">Pasadyang pagsala</string>
|
||||
<string name="set_as_cover">I-set bilang pabalat</string>
|
||||
<string name="cover_updated">Na-update ang pabalat</string>
|
||||
<string name="page_downloaded">Nakopya ang pahina sa %1$s</string>
|
||||
<string name="downloading">Dina-download…</string>
|
||||
<string name="download_progress">Na-download %1$d%%</string>
|
||||
<string name="chapter_progress">Pahina: %1$d</string>
|
||||
<string name="chapter_subtitle">Kabanata %1$s</string>
|
||||
<string name="no_next_chapter">Hindi nakita ang susunod na kabanata</string>
|
||||
<string name="no_previous_chapter">Hindi nakita ang nakaraang kabanata</string>
|
||||
<string name="decode_image_error">Hindi ma-decode ang larawan</string>
|
||||
<string name="confirm_set_image_as_cover">Gusto mo bang i-set ang larawang ito bilang pabalat\?</string>
|
||||
<string name="transition_finished">Natapos:</string>
|
||||
<string name="transition_current">Kasalukuyan:</string>
|
||||
<string name="transition_next">Susunod:</string>
|
||||
<string name="transition_previous">Nakaraan:</string>
|
||||
<string name="transition_no_next">Walang susunod na kabanata</string>
|
||||
<string name="transition_no_previous">Walang nakaraang kabanata</string>
|
||||
<string name="transition_pages_loading">Kinakarga ang mga pahina…</string>
|
||||
<string name="transition_pages_error">Pumalya sa pagkarga ng mga pahina: %1$s</string>
|
||||
<string name="migration_info">Pindutin para mapili ang source na paglilipat</string>
|
||||
<string name="migration_dialog_what_to_include">Piliin ang mga isasamang data</string>
|
||||
<string name="migrate">Lumipat</string>
|
||||
<string name="copy">Kopyahin</string>
|
||||
<string name="download_queue_error">Nagkaproblema habang nagda-download ng mga kabanata. Maaring mong ulitin ito sa Downloads section.</string>
|
||||
<string name="notification_update_progress">Usad: %1$d/%2$d</string>
|
||||
<string name="notification_new_chapters">May (mga) bagong kabanatang nakita</string>
|
||||
<string name="notification_cover_update_failed">Pumalya sa pag-update ng pabalat</string>
|
||||
<string name="notification_first_add_to_library">Mangyaring idagdag muna ang manga sa iyong aklatan bago gawin ito</string>
|
||||
<string name="notification_not_connected_to_ac_title">Kinansela ang pag-sync</string>
|
||||
<string name="notification_not_connected_to_ac_body">Hindi nakakonekta sa AC power</string>
|
||||
<string name="notification_no_connection_title">Kinansela ang pag-sync</string>
|
||||
<string name="notification_no_connection_body">Walang koneksyon</string>
|
||||
<string name="file_select_cover">Pumili ng larawang pabalat</string>
|
||||
<string name="file_select_backup">Pumili ng backup file</string>
|
||||
<string name="file_select_icon">Pumili ng shortcut icon</string>
|
||||
<string name="update_check_confirm">Download</string>
|
||||
<string name="update_check_ignore">Pabayaan</string>
|
||||
<string name="update_check_no_new_updates">Walang mga bagong update</string>
|
||||
<string name="update_check_look_for_updates">Naghahanap ng mga update…</string>
|
||||
<string name="update_check_notification_file_download">Download update</string>
|
||||
<string name="update_check_notification_download_in_progress">Kasalukuyang nagda-download…</string>
|
||||
<string name="update_check_notification_download_complete">Nakumpleto ang pag-download</string>
|
||||
<string name="update_check_notification_download_error">Error sa pag-download</string>
|
||||
<string name="update_check_notification_update_available">Mayroong update</string>
|
||||
<string name="description_cover">Pabalat ng manga</string>
|
||||
<string name="information_no_downloads">Walang mga download</string>
|
||||
<string name="information_no_recent">Walang bago kamakailan</string>
|
||||
<string name="information_no_recent_manga">Walang binása kamakailan</string>
|
||||
<string name="information_empty_library">Walang laman ang Aklatan mo, magdagdag ng serye sa iyong Aklatan mula sa Mangalugad.</string>
|
||||
<string name="information_empty_category">Wala ka pang kategorya. Pindutin lang ang plus button para makagawa ng isa para maorganisa mo na ang Aklatan mo.</string>
|
||||
<string name="download_notifier_downloader_title">Tagapag-download</string>
|
||||
<string name="download_notifier_title_error">Error</string>
|
||||
<string name="download_notifier_unknown_error">Nangyari ang isang hindi inaasahang error habang dina-download ang kabanata</string>
|
||||
<string name="download_notifier_page_error">May nawawalang pahina sa directory</string>
|
||||
<string name="download_notifier_page_ready_error">Hindi naikarga ang isang pahina</string>
|
||||
<string name="download_notifier_text_only_wifi">Walang koneksyon sa Wi-Fi</string>
|
||||
<string name="download_notifier_no_network">Walang koneksyon sa Network</string>
|
||||
<string name="download_notifier_download_paused">Nakahinto ang pag-download</string>
|
||||
<string name="channel_common">Karaniwan</string>
|
||||
<string name="channel_library">Aklatan</string>
|
||||
<string name="no_results_found">Walang nahanap na resulta</string>
|
||||
<string name="action_webview_back">Bumalik</string>
|
||||
<string name="action_webview_forward">Susunod</string>
|
||||
<string name="pref_category_library">Aklatan</string>
|
||||
<string name="action_sort_latest_chapter">Pinakabagong kabanata</string>
|
||||
<string name="action_view_chapters">Mga kabanata</string>
|
||||
<string name="action_cancel_all">Kanselahin lahat</string>
|
||||
<string name="notification_chapters_single">Kabanata %1$s</string>
|
||||
<string name="track_finished_reading_date">Petsa na natapos basahin</string>
|
||||
<string name="track_started_reading_date">Petsa nagsimulang basahin</string>
|
||||
<string name="want_to_read">Gustong basahin</string>
|
||||
<string name="manga_info_about_label">Tungkol</string>
|
||||
<string name="pref_category_reading">Binabasa</string>
|
||||
<string name="pref_category_security">Seguridad</string>
|
||||
<string name="action_move_to_bottom">I-baba</string>
|
||||
<string name="action_move_to_top">I-taas</string>
|
||||
<string name="action_oldest">Pinakaluma</string>
|
||||
<string name="action_newest">Pinakabago</string>
|
||||
<string name="label_sources">Mga Pinagkunan</string>
|
||||
<string name="action_sort_last_checked">Huling sinilip</string>
|
||||
<string name="unlock_app">Buksan ang Tachiyomi</string>
|
||||
<string name="action_pin">I-pin</string>
|
||||
<string name="action_display_show_tabs">Ipakita ang mga kategorya</string>
|
||||
<string name="action_display_unread_badge">Bilang ng babasáhin</string>
|
||||
<string name="action_display_comfortable_grid">Maginhawa</string>
|
||||
<string name="action_migrate">Lumipat</string>
|
||||
<string name="action_start">Magsimula</string>
|
||||
<string name="action_disable_all">Isara lahat</string>
|
||||
<string name="action_enable_all">Buksan lahat</string>
|
||||
<string name="action_select_inverse">Baligtarin</string>
|
||||
<string name="action_menu">Pagpipilian</string>
|
||||
<string name="confirm_exit">Pindutin muli upang makaalis</string>
|
||||
<string name="label_more">Karagdagan</string>
|
||||
<string name="notification_chapters_single_and_more">Kabanata %q$s at %2$d pa</string>
|
||||
<plurals name="notification_chapters_generic">
|
||||
<item quantity="one">Isang bagong kabanata</item>
|
||||
<item quantity="other">%1$d (na) bagong kabanata</item>
|
||||
</plurals>
|
||||
<plurals name="notification_new_chapters_summary">
|
||||
<item quantity="one">Para sa isang serye</item>
|
||||
<item quantity="other">Para sa %d (na) serye</item>
|
||||
</plurals>
|
||||
<string name="notification_check_updates">Naghahanap ng mga bagong kabanata</string>
|
||||
<string name="information_webview_outdated">Mangyaring i-update po ang inyong WebView para sa mas maayos na pagpapakita</string>
|
||||
<string name="information_cloudflare_bypass_failure"/>
|
||||
<string name="pref_library_update_refresh_metadata">Awtomatikong i-refresh ang metadata</string>
|
||||
<string name="pref_category_library_update">Mga Update</string>
|
||||
<string name="pref_category_display">Pagpapakita</string>
|
||||
<string name="hide_notification_content">Itago ang nilalaman ng abiso</string>
|
||||
<string name="secure_screen_summary">Itago ang mga laman ng app sa tuwing lumilipat sa ibang app at harangin ang mga screenshot</string>
|
||||
<string name="secure_screen">Bantayán ang iskrin</string>
|
||||
<plurals name="lock_after_mins">
|
||||
<item quantity="one">Matapos ng 1 minuto</item>
|
||||
<item quantity="other">Matapos ng %1$s (na) minuto</item>
|
||||
</plurals>
|
||||
<string name="lock_never">Di kailanman</string>
|
||||
<string name="lock_always">Palagi</string>
|
||||
<string name="lock_when_idle">I-lock kapag di ginagamit</string>
|
||||
<string name="lock_with_biometrics">I-lock gamit ang biometrics</string>
|
||||
<string name="pref_manage_notifications">Mga abiso</string>
|
||||
<string name="pref_confirm_exit">Kumpirmahing aalis</string>
|
||||
<string name="pref_date_format">Pagsulat ng petsa</string>
|
||||
<string name="theme_dark_amoled">AMOLED na itim</string>
|
||||
<string name="theme_dark_blue">May bughaw</string>
|
||||
<string name="theme_dark_default">Orihinal</string>
|
||||
<string name="pref_theme_light">Maliwanag na tema</string>
|
||||
<string name="pref_theme_dark">Madilim na tema</string>
|
||||
<string name="theme_light_blue">May bughaw</string>
|
||||
<string name="theme_light_default">Orihinal</string>
|
||||
<string name="theme_light">Nakasara</string>
|
||||
<string name="theme_dark">Nakabukás</string>
|
||||
<string name="theme_system">Sundan ang sistema</string>
|
||||
<string name="pref_theme_mode">Madilim</string>
|
||||
<string name="action_webview_refresh">Sariwain</string>
|
||||
<string name="action_reorganize_by">I-reorder</string>
|
||||
<string name="action_unpin">I-unpin</string>
|
||||
<string name="action_disable">Isara</string>
|
||||
</resources>
|
@ -74,6 +74,6 @@
|
||||
<color name="md_blue_grey_900">#263238</color>
|
||||
<color name="md_blue_grey_800">#37474F</color>
|
||||
|
||||
<color name="pale_green">#AAE1AA</color>
|
||||
<color name="green">#47a84a</color>
|
||||
|
||||
</resources>
|
||||
|
Reference in New Issue
Block a user