Skip to content

Commit

Permalink
Introduce PlatformOptions class to flutter_custom_tabs app-facing…
Browse files Browse the repository at this point in the history
… package
  • Loading branch information
droibit committed Nov 23, 2023
1 parent 2493880 commit 0e4334e
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 30 deletions.
27 changes: 13 additions & 14 deletions flutter_custom_tabs/example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import 'dart:async';
import 'dart:io';

import 'package:flutter/material.dart';

import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';
import 'package:flutter_custom_tabs/flutter_custom_tabs_lite.dart' as lite;

Expand Down Expand Up @@ -74,7 +73,7 @@ class MyApp extends StatelessWidget {
}
}

Future<void> _launchURLInDefaultBrowserOnAndroid(BuildContext context) async {
Future<void> _launchUrl(BuildContext context) async {
final theme = Theme.of(context);
try {
await launchUrl(
Expand All @@ -84,19 +83,24 @@ Future<void> _launchURLInDefaultBrowserOnAndroid(BuildContext context) async {
toolbarColor: theme.colorScheme.surface,
navigationBarColor: theme.colorScheme.background,
),
shareState: CustomTabsShareState.on,
urlBarHidingEnabled: true,
showTitle: true,
browser: const CustomTabsBrowserConfiguration(
prefersDefaultBrowser: true,
),
),
safariVCOptions: SafariViewControllerOptions(
preferredBarTintColor: theme.colorScheme.surface,
preferredControlTintColor: theme.colorScheme.onSurface,
barCollapsingEnabled: true,
entersReaderIfAvailable: false,
),
);
} catch (e) {
// An exception is thrown if browser app is not installed on Android device.
debugPrint(e.toString());
}
}

Future<void> _launchUrl(BuildContext context) async {
Future<void> _launchURLInDefaultBrowserOnAndroid(BuildContext context) async {
final theme = Theme.of(context);
try {
await launchUrl(
Expand All @@ -106,19 +110,14 @@ Future<void> _launchUrl(BuildContext context) async {
toolbarColor: theme.colorScheme.surface,
navigationBarColor: theme.colorScheme.background,
),
shareState: CustomTabsShareState.on,
urlBarHidingEnabled: true,
showTitle: true,
),
safariVCOptions: SafariViewControllerOptions(
preferredBarTintColor: theme.colorScheme.surface,
preferredControlTintColor: theme.colorScheme.onSurface,
barCollapsingEnabled: true,
entersReaderIfAvailable: false,
browser: const CustomTabsBrowserConfiguration(
prefersDefaultBrowser: true,
),
),
);
} catch (e) {
// An exception is thrown if browser app is not installed on Android device.
debugPrint(e.toString());
}
}
Expand Down
2 changes: 1 addition & 1 deletion flutter_custom_tabs/lib/flutter_custom_tabs_lite.dart
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export 'src/launch_options.dart';
export 'src/types/launch_options.dart';
export 'src/launcher_lite.dart';
2 changes: 1 addition & 1 deletion flutter_custom_tabs/lib/src/launcher_lite.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_custom_tabs_platform_interface/flutter_custom_tabs_platform_interface.dart';
import 'package:meta/meta.dart';

import 'launch_options.dart';
import 'types/launch_options.dart';

/// Passes [url] with options to the underlying platform for launching a custom tab.
///
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:flutter_custom_tabs_platform_interface/flutter_custom_tabs_platform_interface.dart';
import 'package:flutter_custom_tabs_android/flutter_custom_tabs_android.dart';
import 'package:flutter_custom_tabs_ios/flutter_custom_tabs_ios.dart';
import 'package:meta/meta.dart';

/// The Configuration for providing minimal options for mobile platforms when launching Custom Tabs by specifying a URL.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import 'package:flutter/services.dart';
import 'package:flutter_custom_tabs/src/launch_options.dart';
import 'package:flutter_custom_tabs/src/launcher_lite.dart';
import 'package:flutter_custom_tabs/flutter_custom_tabs_lite.dart';
import 'package:flutter_custom_tabs_platform_interface/flutter_custom_tabs_platform_interface.dart';
import 'package:flutter_test/flutter_test.dart';

import '../mocks/mock_custom_tabs_platform.dart';
import 'mocks/mock_custom_tabs_platform.dart';

void main() {
final mock = MockCustomTabsPlatform();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'package:flutter/services.dart';
import 'package:flutter_custom_tabs/src/launcher.dart';
import 'package:flutter_custom_tabs/flutter_custom_tabs.dart';
import 'package:flutter_custom_tabs_platform_interface/flutter_custom_tabs_platform_interface.dart';
import 'package:flutter_test/flutter_test.dart';

import '../mocks/mock_custom_tabs_platform.dart';
import 'mocks/mock_custom_tabs_platform.dart';

void main() {
final mock = MockCustomTabsPlatform();
Expand Down
12 changes: 6 additions & 6 deletions flutter_custom_tabs/test/mocks/mock_custom_tabs_platform.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ class MockCustomTabsPlatform extends Fake
implements CustomTabsPlatform {
String? url;
bool? prefersDeepLink;
CustomTabsOptions? customTabsOptions;
SafariViewControllerOptions? safariVCOptions;
PlatformOptions? customTabsOptions;
PlatformOptions? safariVCOptions;

bool launchUrlCalled = false;
bool closeAllIfPossibleCalled = false;

void setLaunchExpectations({
required String url,
bool? prefersDeepLink,
CustomTabsOptions? customTabsOptions,
SafariViewControllerOptions? safariVCOptions,
PlatformOptions? customTabsOptions,
PlatformOptions? safariVCOptions,
}) {
this.url = url;
this.prefersDeepLink = prefersDeepLink;
Expand All @@ -29,8 +29,8 @@ class MockCustomTabsPlatform extends Fake
Future<void> launch(
String? urlString, {
bool? prefersDeepLink,
CustomTabsOptions? customTabsOptions,
SafariViewControllerOptions? safariVCOptions,
PlatformOptions? customTabsOptions,
PlatformOptions? safariVCOptions,
}) async {
expect(urlString, url);
expect(prefersDeepLink, this.prefersDeepLink);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:flutter/painting.dart';
import 'package:flutter_custom_tabs/src/launch_options.dart';
import 'package:flutter_custom_tabs_platform_interface/flutter_custom_tabs_platform_interface.dart';
import 'package:flutter_custom_tabs/flutter_custom_tabs_lite.dart';
import 'package:flutter_custom_tabs_ios/flutter_custom_tabs_ios.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
Expand Down

0 comments on commit 0e4334e

Please sign in to comment.