dispaly gecko version in about dialog

This commit is contained in:
Fabian Freund
2025-09-22 13:54:13 +02:00
parent 4661386024
commit 8e5e858c9a
10 changed files with 117 additions and 31 deletions
@@ -52,6 +52,7 @@ import mozilla.components.support.base.log.Log
import mozilla.components.support.base.log.sink.AndroidLogSink
import mozilla.components.support.base.log.sink.LogSink
import org.mozilla.gecko.util.ThreadUtils.runOnUiThread
import org.mozilla.geckoview.BuildConfig as GeckoViewBuildConfig
class PriorityAwareLogSink(
private val minLogPriority: Log.Priority,
@@ -135,6 +136,10 @@ class GeckoBrowserApiImpl : GeckoBrowserApi {
isPlatformViewRegistered = false
}
override fun getGeckoVersion(): String {
return GeckoViewBuildConfig.MOZ_APP_VERSION + "-" + GeckoViewBuildConfig.MOZ_APP_BUILDID
}
override fun initialize(logLevel: LogLevel, contentBlocking: ContentBlocking) {
synchronized(this) {
if(!isGeckoInitialized) {
@@ -2648,6 +2648,7 @@ private open class GeckoPigeonCodec : StandardMessageCodec() {
/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
interface GeckoBrowserApi {
fun getGeckoVersion(): String
fun initialize(logLevel: LogLevel, contentBlocking: ContentBlocking)
fun showNativeFragment(): Boolean
fun onTrimMemory(level: Long)
@@ -2661,6 +2662,21 @@ interface GeckoBrowserApi {
@JvmOverloads
fun setUp(binaryMessenger: BinaryMessenger, api: GeckoBrowserApi?, messageChannelSuffix: String = "") {
val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.getGeckoVersion$separatedMessageChannelSuffix", codec)
if (api != null) {
channel.setMessageHandler { _, reply ->
val wrapped: List<Any?> = try {
listOf(api.getGeckoVersion())
} catch (exception: Throwable) {
GeckoPigeonUtils.wrapError(exception)
}
reply.reply(wrapped)
}
} else {
channel.setMessageHandler(null)
}
}
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.initialize$separatedMessageChannelSuffix", codec)
if (api != null) {
@@ -13,6 +13,10 @@ class GeckoBrowserService {
GeckoBrowserService({GeckoBrowserApi? api}) : _api = api ?? _apiInstance;
Future<String> getGeckoVersion() {
return _api.getGeckoVersion();
}
Future<void> initialize(LogLevel logLevel, ContentBlocking contentBlocking) {
return _api.initialize(logLevel, contentBlocking);
}
@@ -3007,6 +3007,34 @@ class GeckoBrowserApi {
final String pigeonVar_messageChannelSuffix;
Future<String> getGeckoVersion() async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.getGeckoVersion$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName,
pigeonChannelCodec,
binaryMessenger: pigeonVar_binaryMessenger,
);
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(null);
final List<Object?>? pigeonVar_replyList =
await pigeonVar_sendFuture as List<Object?>?;
if (pigeonVar_replyList == null) {
throw _createConnectionError(pigeonVar_channelName);
} else if (pigeonVar_replyList.length > 1) {
throw PlatformException(
code: pigeonVar_replyList[0]! as String,
message: pigeonVar_replyList[1] as String?,
details: pigeonVar_replyList[2],
);
} else if (pigeonVar_replyList[0] == null) {
throw PlatformException(
code: 'null-error',
message: 'Host platform returned null value for non-null return value.',
);
} else {
return (pigeonVar_replyList[0] as String?)!;
}
}
Future<void> initialize(LogLevel logLevel, ContentBlocking contentBlocking) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.initialize$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
@@ -838,6 +838,7 @@ enum LogLevel { debug, info, warn, error }
)
@HostApi()
abstract class GeckoBrowserApi {
String getGeckoVersion();
void initialize(LogLevel logLevel, ContentBlocking contentBlocking);
bool showNativeFragment();
void onTrimMemory(int level);