diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt index 3d260cdb5..c5df74ac1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt @@ -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