fix some stuff

This commit is contained in:
Fabian Freund
2025-01-03 13:18:16 +01:00
parent 5ba8bc9620
commit ea0880b97a
16 changed files with 313 additions and 79 deletions
+23 -1
View File
@@ -67,7 +67,29 @@ android {
release { release {
// TODO: Add your own signing config for the release build. // TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works. // Signing with the debug keys for now, so `flutter run --release` works.
signingConfig = signingConfigs.release signingConfig = signingConfigs.debug
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
bundle {
// Profiler issues require us to temporarily package native code compressed to
// match the previous APK packaging.
// https://bugzilla.mozilla.org/show_bug.cgi?id=1865634
packagingOptions {
jniLibs {
it.useLegacyPackaging = true
}
}
}
packagingOptions {
jniLibs {
useLegacyPackaging true
} }
} }
+125
View File
@@ -0,0 +1,125 @@
# We do not want to obfuscate - It's just painful to debug without the right mapping file.
# If we update this, we'll have to update our Sentry config to upload ProGuard mappings.
-dontobfuscate
##### Default proguard settings:
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/sebastian/Library/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
####################################################################################################
# Adjust
####################################################################################################
-keep public class com.adjust.sdk.** { *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
-keep class dalvik.system.VMRuntime {
java.lang.String getRuntime();
}
-keep class android.os.Build {
java.lang.String[] SUPPORTED_ABIS;
java.lang.String CPU_ABI;
}
-keep class android.content.res.Configuration {
android.os.LocaledList getLocales();
java.util.Locale locale;
}
-keep class android.os.LocaledList {
java.util.Locale get(int);
}
####################################################################################################
# Okhttp
####################################################################################################
# JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.**
# A resource is loaded with a relative path so the package of this class must be preserved.
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
# OkHttp platform used only on JVM and when Conscrypt dependency is available.
-dontwarn okhttp3.internal.platform.ConscryptPlatform
####################################################################################################
# Android architecture components
####################################################################################################
-dontwarn android.**
-dontwarn androidx.**
-dontwarn com.google.**
-dontwarn org.mozilla.geckoview.**
-dontwarn mozilla.components.**
# https://developer.android.com/topic/libraries/architecture/release-notes.html
# According to the docs this won't be needed when 1.0 of the library is released.
-keep class * implements android.arch.lifecycle.GeneratedAdapter {<init>(...);}
# Temporary fix until we can use androidx
-dontwarn mozilla.components.service.fretboard.scheduler.workmanager.**
# Fix for ViewModels
-keep class * extends androidx.lifecycle.ViewModel {
<init>();
}
-keep class * extends androidx.lifecycle.AndroidViewModel {
<init>(android.app.Application);
}
####################################################################################################
# Mozilla Application Services
####################################################################################################
-keep class mozilla.appservices.** { *; }
####################################################################################################
# Kotlinx
####################################################################################################
-dontwarn kotlinx.atomicfu.**
####################################################################################################
# snakeyaml
####################################################################################################
-dontwarn java.beans.PropertyDescriptor
-dontwarn java.beans.Introspector
-dontwarn java.beans.BeanInfo
-dontwarn java.beans.IntrospectionException
-dontwarn java.beans.FeatureDescriptor
####################################################################################################
# kotlinx.coroutines: use the fast service loader to init MainDispatcherLoader by including a rule
# to rewrite this property to return true:
# https://github.com/Kotlin/kotlinx.coroutines/blob/8c98180f177bbe4b26f1ed9685a9280fea648b9c/kotlinx-coroutines-core/jvm/src/internal/MainDispatchers.kt#L19
#
# R8 is expected to optimize the default implementation to avoid a performance issue but a bug in R8
# as bundled with AGP v7.0.0 causes this optimization to fail so we use the fast service loader instead. See:
# https://github.com/mozilla-mobile/focus-android/issues/5102#issuecomment-897854121
#
# The fast service loader appears to be as performant as the R8 optimization so it's not worth the
# churn to later remove this workaround. If needed, the upstream fix is being handled in
# https://issuetracker.google.com/issues/196302685
####################################################################################################
-assumenosideeffects class kotlinx.coroutines.internal.MainDispatcherLoader {
boolean FAST_SERVICE_LOADER_ENABLED return true;
}
@@ -1,5 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
@@ -34,6 +36,14 @@
<!-- Needed for uploading media files on devices with Android 13 and later. --> <!-- Needed for uploading media files on devices with Android 13 and later. -->
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" /> <uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
<!-- Needed to interact with all apps installed on a device -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<!-- Needed to support Credential Manager with Android 14 and later. -->
<uses-permission android:name="android.permission.CREDENTIAL_MANAGER_SET_ORIGIN" />
<uses-permission android:name="android.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS" />
<application <application
android:label="Lensai" android:label="Lensai"
@@ -149,6 +159,14 @@
android:resource="@xml/search_bar_widget_info"/> android:resource="@xml/search_bar_widget_info"/>
</receiver> </receiver>
<service
android:name="eu.lensai.flutter_mozilla_components.services.CustomTabsService"
android:exported="true">
<intent-filter>
<action android:name="android.support.customtabs.action.CustomTabsService" />
</intent-filter>
</service>
<service <service
android:name="eu.lensai.flutter_mozilla_components.services.DownloadService" android:name="eu.lensai.flutter_mozilla_components.services.DownloadService"
android:foregroundServiceType="dataSync" /> android:foregroundServiceType="dataSync" />
+1 -2
View File
@@ -2,5 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionSha256Sum=194717442575a6f96e1c1befa2c30e9a4fc90f701d7aee33eb879b79e7ff05c0
@@ -31,7 +31,7 @@ class WebExtensionsState extends _$WebExtensionsState {
state = {...state}..[extensionId] = current.copyWith( state = {...state}..[extensionId] = current.copyWith(
title: data.title, title: data.title,
enabled: data.enabled, enabled: data.enabled ?? current.enabled,
badgeText: data.badgeText, badgeText: data.badgeText,
badgeTextColor: (data.badgeTextColor != null) badgeTextColor: (data.badgeTextColor != null)
? Color(data.badgeTextColor!) ? Color(data.badgeTextColor!)
@@ -7,7 +7,7 @@ part of 'web_extensions_state.dart';
// ************************************************************************** // **************************************************************************
String _$webExtensionsStateHash() => String _$webExtensionsStateHash() =>
r'9ac102b1d1740d69f9b0de590f08ff0774064845'; r'bbaba8d27980046275858d2707bc66c6e349a537';
/// Copied from Dart SDK /// Copied from Dart SDK
class _SystemHash { class _SystemHash {
@@ -35,55 +35,63 @@ class ContainerChips extends HookConsumerWidget {
ref.watch(filteredContainersWithCountProvider(searchText)); ref.watch(filteredContainersWithCountProvider(searchText));
return containersAsync.when( return containersAsync.when(
data: (availableContainers) => SizedBox( data: (availableContainers) {
height: 48, if (selectedContainer == null &&
child: Row( availableContainers.isEmpty &&
children: [ !displayMenu) {
if (selectedContainer != null || availableContainers.isNotEmpty) return const SizedBox.shrink();
Expanded( }
child: SelectableChips(
deleteIcon: false, return SizedBox(
itemId: (container) => container.id, height: 48,
itemAvatar: (container) => Container( child: Row(
width: 20.0, children: [
height: 20.0, if (selectedContainer != null || availableContainers.isNotEmpty)
decoration: BoxDecoration( Expanded(
color: container.color, child: SelectableChips(
shape: BoxShape.circle, deleteIcon: false,
itemId: (container) => container.id,
itemAvatar: (container) => Container(
width: 20.0,
height: 20.0,
decoration: BoxDecoration(
color: container.color,
shape: BoxShape.circle,
),
), ),
itemLabel: (container) =>
Text(container.name ?? 'New Container'),
itemBadgeCount: (container) => container.tabCount,
availableItems: availableContainers,
selectedItem: selectedContainer,
onSelected: onSelected,
onDeleted: onDeleted,
), ),
itemLabel: (container) => )
Text(container.name ?? 'New Container'), else
itemBadgeCount: (container) => container.tabCount, Visibility(
availableItems: availableContainers, visible: displayMenu,
selectedItem: selectedContainer, child: Expanded(
onSelected: onSelected, child: Text(
onDeleted: onDeleted, "Press '>' to manage Containers.",
), style: TextStyle(
) color: Theme.of(context).hintColor,
else fontStyle: FontStyle.italic,
Visibility( ),
visible: displayMenu,
child: Expanded(
child: Text(
"Press '>' to manage Containers.",
style: TextStyle(
color: Theme.of(context).hintColor,
fontStyle: FontStyle.italic,
), ),
), ),
), ),
), if (displayMenu)
if (displayMenu) IconButton(
IconButton( onPressed: () async {
onPressed: () async { await context.push(ContainerListRoute().location);
await context.push(ContainerListRoute().location); },
}, icon: const Icon(Icons.chevron_right),
icon: const Icon(Icons.chevron_right), ),
), ],
], ),
), );
), },
error: (error, stackTrace) => const SizedBox.shrink(), error: (error, stackTrace) => const SizedBox.shrink(),
loading: () => const SizedBox( loading: () => const SizedBox(
height: 48, height: 48,
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/data/models/equatable_iterable.dart'; import 'package:lensai/data/models/equatable_iterable.dart';
import 'package:lensai/features/bangs/data/models/bang_data.dart'; import 'package:lensai/features/bangs/data/models/bang_data.dart';
@@ -15,9 +16,12 @@ import 'package:lensai/features/search/domain/providers/search_suggestions.dart'
import 'package:lensai/features/search/presentation/widgets/bang_chips.dart'; import 'package:lensai/features/search/presentation/widgets/bang_chips.dart';
import 'package:lensai/features/search/presentation/widgets/search_field.dart'; import 'package:lensai/features/search/presentation/widgets/search_field.dart';
import 'package:lensai/presentation/hooks/listenable_callback.dart'; import 'package:lensai/presentation/hooks/listenable_callback.dart';
import 'package:lensai/presentation/widgets/failure_widget.dart';
import 'package:skeletonizer/skeletonizer.dart'; import 'package:skeletonizer/skeletonizer.dart';
class SearchScreen extends HookConsumerWidget { class SearchScreen extends HookConsumerWidget {
static const _matchPrefix = '***';
final String? initialSearchText; final String? initialSearchText;
const SearchScreen({required this.initialSearchText}); const SearchScreen({required this.initialSearchText});
@@ -36,9 +40,13 @@ class SearchScreen extends HookConsumerWidget {
.read(searchSuggestionsProvider().notifier) .read(searchSuggestionsProvider().notifier)
.addQuery(searchTextController.text); .addQuery(searchTextController.text);
await ref await ref.read(tabSearchRepositoryProvider.notifier).addQuery(
.read(tabSearchRepositoryProvider.notifier) searchTextController.text,
.addQuery(searchTextController.text); // ignore: avoid_redundant_argument_values
matchPrefix: _matchPrefix,
// ignore: avoid_redundant_argument_values
matchSuffix: _matchPrefix,
);
}, },
); );
@@ -212,14 +220,50 @@ class SearchScreen extends HookConsumerWidget {
enabled: tabs.isLoading, enabled: tabs.isLoading,
child: tabs.when( child: tabs.when(
data: (data) { data: (data) {
return SliverList.builder(itemBuilder: itemBuilder); return SliverList.builder(
itemCount: data.length,
itemBuilder: (context, index) {
final result = data[index];
final headHasMatch =
result.title.contains(_matchPrefix);
final bodyResult =
result.extractedContent ?? result.fullContent;
return ListTile(
title: Markdown(
shrinkWrap: true,
padding: EdgeInsets.zero,
data: result.title,
physics: const NeverScrollableScrollPhysics(),
),
subtitle: (!headHasMatch && bodyResult != null)
? Markdown(
shrinkWrap: true,
padding: EdgeInsets.zero,
data: bodyResult,
physics:
const NeverScrollableScrollPhysics(),
)
: null,
);
},
);
},
error: (error, stackTrace) {
return FailureWidget(
title: 'Could not load tabs',
exception: error,
);
}, },
error: error,
loading: () => SliverList.builder( loading: () => SliverList.builder(
itemCount: tabs.valueOrNull?.length ?? 3, itemCount: tabs.valueOrNull?.length ?? 3,
itemBuilder: (context, index) { itemBuilder: (context, index) {
return ListTile() return ListTile(
},), title: Bone.text(),
);
},
),
), ),
); );
}, },
+5 -5
View File
@@ -9,13 +9,13 @@ environment:
dependencies: dependencies:
collection: ^1.19.0 collection: ^1.19.0
copy_with_extension: ^6.0.0 copy_with_extension: ^6.0.0
drift: ^2.22.1 drift: ^2.23.0
dynamic_color: ^1.7.0 dynamic_color: ^1.7.0
exceptions: ^0.6.1 exceptions: ^0.6.1
expandable_page_view: ^1.0.17 expandable_page_view: ^1.0.17
fading_scroll: ^0.9.1 fading_scroll: ^0.9.1
fast_equatable: ^1.1.0 fast_equatable: ^1.1.0
file_picker: ^8.1.6 file_picker: ^8.1.7
flutter: flutter:
sdk: flutter sdk: flutter
flutter_hooks: ^0.20.5 flutter_hooks: ^0.20.5
@@ -23,7 +23,7 @@ dependencies:
flutter_material_design_icons: ^1.1.7447 flutter_material_design_icons: ^1.1.7447
flutter_mozilla_components: flutter_mozilla_components:
path: ../packages/flutter_mozilla_components path: ../packages/flutter_mozilla_components
flutter_pdf_text: ^0.7.0 flutter_pdf_text: ^0.8.1
flutter_secure_storage: ^9.2.2 flutter_secure_storage: ^9.2.2
flutter_sharing_intent: ^1.1.1 flutter_sharing_intent: ^1.1.1
go_router: ^14.6.2 go_router: ^14.6.2
@@ -47,7 +47,7 @@ dependencies:
riverpod_annotation: ^2.6.1 riverpod_annotation: ^2.6.1
rxdart: ^0.28.0 rxdart: ^0.28.0
share_plus: ^10.1.3 share_plus: ^10.1.3
shared_preferences: ^2.3.4 shared_preferences: ^2.3.5
skeletonizer: ^1.4.2 skeletonizer: ^1.4.2
speech_to_text_google_dialog: speech_to_text_google_dialog:
git: git:
@@ -71,7 +71,7 @@ dev_dependencies:
copy_with_extension_gen: ^6.0.0 copy_with_extension_gen: ^6.0.0
custom_lint: ^0.6.10 custom_lint: ^0.6.10
dependency_validator: ^4.1.2 dependency_validator: ^4.1.2
drift_dev: ^2.22.1 drift_dev: ^2.23.0
fast_equatable_lint: ^0.3.0 fast_equatable_lint: ^0.3.0
flutter_launcher_icons: ^0.14.2 flutter_launcher_icons: ^0.14.2
go_router_builder: ^2.7.1 go_router_builder: ^2.7.1
@@ -109,10 +109,6 @@ dependencies {
implementation "org.mozilla.components:support-ktx:$mozillaComponentsVersion" implementation "org.mozilla.components:support-ktx:$mozillaComponentsVersion"
implementation "org.mozilla.components:support-webextensions:$mozillaComponentsVersion" implementation "org.mozilla.components:support-webextensions:$mozillaComponentsVersion"
implementation "org.mozilla.components:support-locale:$mozillaComponentsVersion" implementation "org.mozilla.components:support-locale:$mozillaComponentsVersion"
implementation "org.mozilla.components:lib-fetch-httpurlconnection:$mozillaComponentsVersion"
implementation "org.mozilla.components:lib-crash:$mozillaComponentsVersion"
implementation "org.mozilla.components:lib-publicsuffixlist:$mozillaComponentsVersion"
implementation "org.mozilla.components:lib-dataprotect:$mozillaComponentsVersion"
implementation "org.mozilla.components:concept-engine:$mozillaComponentsVersion" implementation "org.mozilla.components:concept-engine:$mozillaComponentsVersion"
implementation "org.mozilla.components:concept-fetch:$mozillaComponentsVersion" implementation "org.mozilla.components:concept-fetch:$mozillaComponentsVersion"
implementation "org.mozilla.components:concept-toolbar:$mozillaComponentsVersion" implementation "org.mozilla.components:concept-toolbar:$mozillaComponentsVersion"
@@ -125,8 +121,8 @@ dependencies {
implementation "org.mozilla.components:browser-thumbnails:$mozillaComponentsVersion" implementation "org.mozilla.components:browser-thumbnails:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-addons:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-addons:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-app-links:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-app-links:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-autofill:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-awesomebar:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-awesomebar:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-customtabs:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-downloads:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-downloads:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-media:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-media:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-tabs:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-tabs:$mozillaComponentsVersion"
@@ -137,7 +133,6 @@ dependencies {
implementation "org.mozilla.components:feature-sitepermissions:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-sitepermissions:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-webcompat:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-webcompat:$mozillaComponentsVersion"
implementation "org.mozilla.components:feature-webnotifications:$mozillaComponentsVersion" implementation "org.mozilla.components:feature-webnotifications:$mozillaComponentsVersion"
implementation "org.mozilla.components:service-digitalassetlinks:$mozillaComponentsVersion"
implementation "org.mozilla.components:ui-widgets:$mozillaComponentsVersion" implementation "org.mozilla.components:ui-widgets:$mozillaComponentsVersion"
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0' implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
@@ -31,6 +31,7 @@ import mozilla.components.feature.addons.AddonManager
import mozilla.components.feature.addons.amo.AMOAddonsProvider import mozilla.components.feature.addons.amo.AMOAddonsProvider
import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker
import mozilla.components.feature.addons.update.DefaultAddonUpdater import mozilla.components.feature.addons.update.DefaultAddonUpdater
import mozilla.components.feature.customtabs.store.CustomTabsServiceStore
import mozilla.components.feature.downloads.DownloadMiddleware import mozilla.components.feature.downloads.DownloadMiddleware
import mozilla.components.feature.media.MediaSessionFeature import mozilla.components.feature.media.MediaSessionFeature
import mozilla.components.feature.media.middleware.RecordingDevicesMiddleware import mozilla.components.feature.media.middleware.RecordingDevicesMiddleware
@@ -155,6 +156,11 @@ class Core(private val context: Context,
} }
} }
/**
* The [CustomTabsServiceStore] holds global custom tabs related data.
*/
val customTabsStore by lazy { CustomTabsServiceStore() }
/** /**
* The storage component for persisting browser tab sessions. * The storage component for persisting browser tab sessions.
*/ */
@@ -1,4 +1,4 @@
// Autogenerated from Pigeon (v22.6.0), do not edit directly. // Autogenerated from Pigeon (v22.7.0), do not edit directly.
// See also: https://pub.dev/packages/pigeon // See also: https://pub.dev/packages/pigeon
@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass")
@@ -7,7 +7,9 @@ package eu.lensai.flutter_mozilla_components.pigeons
import android.util.Log import android.util.Log
import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BasicMessageChannel
import io.flutter.plugin.common.BinaryMessenger import io.flutter.plugin.common.BinaryMessenger
import io.flutter.plugin.common.EventChannel
import io.flutter.plugin.common.MessageCodec import io.flutter.plugin.common.MessageCodec
import io.flutter.plugin.common.StandardMethodCodec
import io.flutter.plugin.common.StandardMessageCodec import io.flutter.plugin.common.StandardMessageCodec
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream
import java.nio.ByteBuffer import java.nio.ByteBuffer
@@ -0,0 +1,15 @@
package eu.lensai.flutter_mozilla_components.services
import eu.lensai.flutter_mozilla_components.GlobalComponents
import mozilla.components.concept.engine.Engine
import mozilla.components.feature.customtabs.AbstractCustomTabsService
import mozilla.components.feature.customtabs.store.CustomTabsServiceStore
class CustomTabsService : AbstractCustomTabsService() {
private val components by lazy {
requireNotNull(GlobalComponents.components) { "Components not initialized" }
}
override val customTabsServiceStore: CustomTabsServiceStore by lazy { components.core.customTabsStore }
override val engine: Engine by lazy { components.core.engine }
}
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
@@ -1,4 +1,4 @@
// Autogenerated from Pigeon (v22.6.0), do not edit directly. // Autogenerated from Pigeon (v22.7.0), do not edit directly.
// See also: https://pub.dev/packages/pigeon // See also: https://pub.dev/packages/pigeon
// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers
@@ -1483,7 +1483,7 @@ class GeckoSessionApi {
final String pigeonVar_messageChannelSuffix; final String pigeonVar_messageChannelSuffix;
Future<void> loadUrl({required String? tabId, required String url, required LoadUrlFlagsValue flags, required Map<String, String>? additionalHeaders,}) async { Future<void> loadUrl({required String? tabId, required String url, required LoadUrlFlagsValue flags, required Map<String, String>? additionalHeaders, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadUrl$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadUrl$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -1505,7 +1505,7 @@ class GeckoSessionApi {
} }
} }
Future<void> loadData({required String? tabId, required String data, required String mimeType, required String encoding,}) async { Future<void> loadData({required String? tabId, required String data, required String mimeType, required String encoding, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadData$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.loadData$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -1725,7 +1725,7 @@ class GeckoSessionApi {
} }
} }
Future<void> translate({required String? tabId, required String fromLanguage, required String toLanguage, required TranslationOptions? options,}) async { Future<void> translate({required String? tabId, required String fromLanguage, required String toLanguage, required TranslationOptions? options, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.translate$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoSessionApi.translate$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -1871,7 +1871,7 @@ class GeckoTabsApi {
final String pigeonVar_messageChannelSuffix; final String pigeonVar_messageChannelSuffix;
Future<void> syncEvents({required bool onSelectedTabChange, required bool onTabListChange, required bool onTabContentStateChange, required bool onIconChange, required bool onSecurityInfoStateChange, required bool onReaderableStateChange, required bool onHistoryStateChange, required bool onFindResults, required bool onThumbnailChange,}) async { Future<void> syncEvents({required bool onSelectedTabChange, required bool onTabListChange, required bool onTabContentStateChange, required bool onIconChange, required bool onSecurityInfoStateChange, required bool onReaderableStateChange, required bool onHistoryStateChange, required bool onFindResults, required bool onThumbnailChange, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.syncEvents$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.syncEvents$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -1937,7 +1937,7 @@ class GeckoTabsApi {
} }
} }
Future<String> addTab({required String url, required bool selectTab, required bool startLoading, required String? parentId, required LoadUrlFlagsValue flags, required String? contextId, required SourceValue source, required bool private, required HistoryMetadataKey? historyMetadata, required Map<String, String>? additionalHeaders,}) async { Future<String> addTab({required String url, required bool selectTab, required bool startLoading, required String? parentId, required LoadUrlFlagsValue flags, required String? contextId, required SourceValue source, required bool private, required HistoryMetadataKey? historyMetadata, required Map<String, String>? additionalHeaders, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.addTab$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.addTab$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -2074,7 +2074,7 @@ class GeckoTabsApi {
} }
} }
Future<void> restoreTabsByList({required List<RecoverableTab> tabs, required String? selectTabId, required RestoreLocation restoreLocation,}) async { Future<void> restoreTabsByList({required List<RecoverableTab> tabs, required String? selectTabId, required RestoreLocation restoreLocation, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.restoreTabsByList$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.restoreTabsByList$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -2148,7 +2148,7 @@ class GeckoTabsApi {
} }
/// Selects an already existing tab displaying [url] or otherwise creates a new tab. /// Selects an already existing tab displaying [url] or otherwise creates a new tab.
Future<String> selectOrAddTabByUrl({required String url, required bool private, required SourceValue source, required LoadUrlFlagsValue flags, required bool ignoreFragment,}) async { Future<String> selectOrAddTabByUrl({required String url, required bool private, required SourceValue source, required LoadUrlFlagsValue flags, required bool ignoreFragment, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectOrAddTabByUrl$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.selectOrAddTabByUrl$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -2202,7 +2202,7 @@ class GeckoTabsApi {
} }
} }
Future<void> moveTabs({required List<String> tabIds, required String targetTabId, required bool placeAfter,}) async { Future<void> moveTabs({required List<String> tabIds, required String targetTabId, required bool placeAfter, }) async {
final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.moveTabs$pigeonVar_messageChannelSuffix'; final String pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoTabsApi.moveTabs$pigeonVar_messageChannelSuffix';
final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>( final BasicMessageChannel<Object?> pigeonVar_channel = BasicMessageChannel<Object?>(
pigeonVar_channelName, pigeonVar_channelName,
@@ -17,7 +17,7 @@ dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
lint: ^2.3.0 lint: ^2.3.0
pigeon: ^22.7.0 pigeon: ^22.7.1
# For information on the generic Dart part of this file, see the # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec