mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-25 10:37:51 +02:00
Better distinguish between obsolete and unofficial extensions
This commit is contained in:
@ -18,7 +18,8 @@ sealed class Extension {
|
||||
val sources: List<Source>,
|
||||
override val lang: String,
|
||||
val hasUpdate: Boolean = false,
|
||||
val isObsolete: Boolean = false
|
||||
val isObsolete: Boolean = false,
|
||||
val isUnofficial: Boolean = false
|
||||
) : Extension()
|
||||
|
||||
data class Available(
|
||||
|
@ -31,13 +31,13 @@ internal object ExtensionLoader {
|
||||
|
||||
private const val PACKAGE_FLAGS = PackageManager.GET_CONFIGURATIONS or PackageManager.GET_SIGNATURES
|
||||
|
||||
// inorichi's key
|
||||
val officialSignature = "7ce04da7773d41b489f4693a366c36bcd0a11fc39b547168553c285bd7348e23"
|
||||
/**
|
||||
* List of the trusted signatures.
|
||||
*/
|
||||
var trustedSignatures = mutableSetOf<String>() +
|
||||
Injekt.get<PreferencesHelper>().trustedSignatures().get() +
|
||||
// inorichi's key
|
||||
"7ce04da7773d41b489f4693a366c36bcd0a11fc39b547168553c285bd7348e23"
|
||||
Injekt.get<PreferencesHelper>().trustedSignatures().get() + officialSignature
|
||||
|
||||
/**
|
||||
* Return a list of all the installed extensions initialized concurrently.
|
||||
@ -159,7 +159,10 @@ internal object ExtensionLoader {
|
||||
else -> "all"
|
||||
}
|
||||
|
||||
val extension = Extension.Installed(extName, pkgName, versionName, versionCode, sources, lang)
|
||||
val extension = Extension.Installed(
|
||||
extName, pkgName, versionName, versionCode, sources, lang,
|
||||
isUnofficial = signatureHash != officialSignature
|
||||
)
|
||||
return LoadResult.Success(extension)
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,13 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
|
||||
.launchIn(scope)
|
||||
|
||||
if (extension.isObsolete) {
|
||||
binding.extensionObsolete.visible()
|
||||
binding.extensionWarningBanner.visible()
|
||||
binding.extensionWarningBanner.setText(R.string.obsolete_extension_message)
|
||||
}
|
||||
|
||||
if (extension.isUnofficial) {
|
||||
binding.extensionWarningBanner.visible()
|
||||
binding.extensionWarningBanner.setText(R.string.unofficial_extension_message)
|
||||
}
|
||||
|
||||
val themedContext by lazy { getPreferenceThemeContext() }
|
||||
|
@ -91,6 +91,10 @@ class ExtensionHolder(view: View, override val adapter: ExtensionAdapter) :
|
||||
setTextColor(context.getResourceColor(R.attr.colorError))
|
||||
setText(R.string.ext_obsolete)
|
||||
}
|
||||
extension.isUnofficial -> {
|
||||
setTextColor(context.getResourceColor(R.attr.colorError))
|
||||
setText(R.string.ext_unofficial)
|
||||
}
|
||||
else -> {
|
||||
setText(R.string.ext_details)
|
||||
}
|
||||
|
Reference in New Issue
Block a user