Query for new tachiyomix metadata from extensions (#3464)

This commit is contained in:
AntsyLich
2026-06-24 00:04:44 +06:00
committed by GitHub
parent 176a5409b2
commit 41265cce32
@@ -49,6 +49,11 @@ internal object ExtensionLoader {
private const val METADATA_SOURCE_CLASS = "tachiyomi.extension.class"
private const val METADATA_SOURCE_FACTORY = "tachiyomi.extension.factory"
private const val METADATA_NSFW = "tachiyomi.extension.nsfw"
private const val METADATA_NAME = "tachiyomix.name"
private const val METADATA_EXTENSION_LIB = "tachiyomix.extensionLib"
private const val METADATA_CONTENT_WARNING = "tachiyomix.contentWarning"
const val LIB_VERSION_MIN = 1.4
const val LIB_VERSION_MAX = 1.6
@@ -228,7 +233,8 @@ internal object ExtensionLoader {
val appInfo = pkgInfo.applicationInfo!!
val pkgName = pkgInfo.packageName
val extName = pkgManager.getApplicationLabel(appInfo).toString().substringAfter("Tachiyomi: ")
val extName = appInfo.metaData.getString(METADATA_NAME)
?: pkgManager.getApplicationLabel(appInfo).toString().substringAfter("Tachiyomi: ")
val versionName = pkgInfo.versionName
val versionCode = PackageInfoCompat.getLongVersionCode(pkgInfo)
@@ -238,7 +244,8 @@ internal object ExtensionLoader {
}
// Validate lib version
val libVersion = versionName.substringBeforeLast('.').toDoubleOrNull()
val libVersion = appInfo.metaData.getDouble(METADATA_EXTENSION_LIB).takeUnless { it == 0.0 }
?: versionName.substringBeforeLast('.').toDoubleOrNull()
if (libVersion == null || (libVersion != LIB_VERSION_MIN && libVersion != LIB_VERSION_MAX)) {
logcat(LogPriority.WARN) {
"Lib version is $libVersion, while only versions " +
@@ -271,7 +278,8 @@ internal object ExtensionLoader {
return LoadResult.Untrusted(extension)
}
val isNsfw = appInfo.metaData.getInt(METADATA_NSFW) == 1
val isNsfw = appInfo.metaData.getInt(METADATA_CONTENT_WARNING) > 0 ||
appInfo.metaData.getInt(METADATA_NSFW) == 1
if (!loadNsfwSource && isNsfw) {
logcat(LogPriority.WARN) { "NSFW extension $pkgName not allowed" }
return LoadResult.Error