tivio_sdk 1.7.0-beta2 tivio_sdk: ^1.7.0-beta2 copied to clipboard
Tivio Flutter SDK
import 'package:flutter/material.dart';
import 'package:nav_router/nav_router.dart';
import 'package:tivio_sdk/tivio.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'pages/player_ui/player_ui_index.dart';
import 'pages/player_with_tivio_integration/player_with_tivio_integration_index.dart';
import 'pages/content_page/tivio_channels_widget.dart';
import 'pages/__internal/better_player_fullscreen_issue.dart';
import 'pages/__internal/screens_page.dart';
Future<void> main() async {
await DotEnv().load('local.env');
runApp(ExampleApp());
}
class ExampleApp extends StatefulWidget {
@override
_ExampleAppState createState() => _ExampleAppState();
}
class _ExampleAppState extends State<ExampleApp> {
bool _isTivioInitialized = false;
Tivio _tivio;
@override
void initState() {
super.initState();
initializeTivio();
}
initializeTivio() async {
if (DotEnv().env['TIVIO_SECRET'] == null || DotEnv().env['TIVIO_SECRET'].isEmpty) {
throw Exception('Copy .env to local.env and add your TIVIO_SECRET to it');
}
_tivio = await initTivio(
secret: DotEnv().env['TIVIO_SECRET'],
language: TivioLanguages.cs,
logLevel: TivioLogLevels.verbose,
development: (DotEnv().env['INTERNAL_DEVELOPMENT'] == 'true'),
);
setState(() {
_isTivioInitialized = true;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Tivio SDK examples',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: Scaffold(
appBar: AppBar(
title: Text('Tivio SDK examples'),
),
body: (_isTivioInitialized)
? Flex(
direction: Axis.vertical,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextButton(
onPressed: () => _navigateToPage(PlayerUiIndex()),
child: Text('Player Ui'),
),
TextButton(
onPressed: () => _navigateToPage(PlayerWithTivioIntegrationIndex(
tivio: _tivio,
)),
child: Text('Player with tivio integration'),
),
TextButton(
onPressed: () => _navigateToPage(TivioChannelsWidget(_tivio, DotEnv().env['TIVIO_DEMO_WIDGET_ID'])),
child: Text('Content page'),
),
TextButton(
onPressed: () => _navigateToPage(ScreensPage(_tivio)),
child: Text('Screens test page'),
),
...(DotEnv().env['INTERNAL_DEVELOPMENT'] == 'true')
? [
TextButton(
onPressed: () => _navigateToPage(BetterPlayerFullscreenIssue()),
child: Text('BetterPlayer fullscreen issue'),
),
]
: [],
],
)
: Text('initializing tivio'),
),
navigatorKey: navGK,
);
}
_navigateToPage(Widget page) {
return routePush(page, RouterType.material);
}
}