Query for new tachiyomix metadata from extensions (#3464)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user