Files
feeddeck/app/lib/widgets/home/home.dart
dependabot[bot] 318aeb4187 Bump the pub group across 1 directory with 17 updates (#167)
* Bump the pub group across 1 directory with 17 updates

Bumps the pub group with 16 updates in the /app directory:

| Package | From | To |
| --- | --- | --- |
| [app_links](https://github.com/llfbandit/app_links) | `3.5.1` | `6.1.1` |
| [cupertino_icons](https://github.com/flutter/packages/tree/main/third_party/packages) | `1.0.6` | `1.0.8` |
| [flutter_cache_manager](https://github.com/Baseflow/flutter_cache_manager) | `3.3.1` | `3.3.2` |
| [flutter_lints](https://github.com/flutter/packages/tree/main/packages) | `3.0.2` | `4.0.0` |
| [flutter_markdown](https://github.com/flutter/packages/tree/main/packages) | `0.6.22` | `0.7.1` |
| [html2md](https://github.com/jarontai/html2md) | `1.3.1` | `1.3.2` |
| [just_audio](https://github.com/ryanheise/just_audio) | `0.9.37` | `0.9.38` |
| [just_audio_background](https://github.com/ryanheise/just_audio) | `0.0.1-beta.11` | `0.0.1-beta.12` |
| [just_audio_media_kit](https://github.com/Pato05/just_audio_media_kit) | `2.0.2` | `2.0.4` |
| [package_info_plus](https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus) | `6.0.0` | `8.0.0` |
| [purchases_flutter](https://github.com/RevenueCat/purchases-flutter) | `6.24.0` | `6.29.2` |
| [shared_preferences](https://github.com/flutter/packages/tree/main/packages/shared_preferences) | `2.2.2` | `2.2.3` |
| [sign_in_with_apple](https://github.com/aboutyou/dart_packages) | `6.0.0` | `6.1.0` |
| [url_launcher](https://github.com/flutter/packages/tree/main/packages/url_launcher) | `6.2.5` | `6.2.6` |
| [window_manager](https://github.com/leanflutter/window_manager) | `0.3.8` | `0.3.9` |
| [youtube_explode_dart](https://github.com/Hexer10/youtube_explode_dart) | `2.1.0` | `2.2.1` |



Updates `app_links` from 3.5.1 to 6.1.1
- [Release notes](https://github.com/llfbandit/app_links/releases)
- [Changelog](https://github.com/llfbandit/app_links/blob/master/CHANGELOG.md)
- [Commits](https://github.com/llfbandit/app_links/compare/3.5.1...6.1.1)

Updates `cupertino_icons` from 1.0.6 to 1.0.8
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/cupertino_icons-v1.0.8/third_party/packages)

Updates `flutter_cache_manager` from 3.3.1 to 3.3.2
- [Commits](https://github.com/Baseflow/flutter_cache_manager/commits/flutter_cache_manager_v3.3.2)

Updates `flutter_lints` from 3.0.2 to 4.0.0
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/flutter_lints-v4.0.0/packages)

Updates `flutter_markdown` from 0.6.22 to 0.7.1
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/flutter_markdown-v0.7.1/packages)

Updates `html2md` from 1.3.1 to 1.3.2
- [Changelog](https://github.com/jarontai/html2md/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jarontai/html2md/commits)

Updates `just_audio` from 0.9.37 to 0.9.38
- [Release notes](https://github.com/ryanheise/just_audio/releases)
- [Commits](https://github.com/ryanheise/just_audio/compare/just_audio-v0.9.37...just_audio-v0.9.38)

Updates `just_audio_background` from 0.0.1-beta.11 to 0.0.1-beta.12
- [Release notes](https://github.com/ryanheise/just_audio/releases)
- [Commits](https://github.com/ryanheise/just_audio/compare/just_audio_background-v0.0.1-beta.11...just_audio_background-v0.0.1-beta.12)

Updates `just_audio_media_kit` from 2.0.2 to 2.0.4
- [Changelog](https://github.com/Pato05/just_audio_media_kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Pato05/just_audio_media_kit/compare/v2.0.2...v2.0.4)

Updates `package_info_plus` from 6.0.0 to 8.0.0
- [Release notes](https://github.com/fluttercommunity/plus_plugins/releases)
- [Commits](https://github.com/fluttercommunity/plus_plugins/commits/package_info_plus-v8.0.0/packages/package_info_plus)

Updates `purchases_flutter` from 6.24.0 to 6.29.2
- [Release notes](https://github.com/RevenueCat/purchases-flutter/releases)
- [Changelog](https://github.com/RevenueCat/purchases-flutter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/RevenueCat/purchases-flutter/compare/6.24.0...6.29.2)

Updates `shared_preferences` from 2.2.2 to 2.2.3
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/shared_preferences-v2.2.3/packages/shared_preferences)

Updates `sign_in_with_apple` from 6.0.0 to 6.1.0
- [Release notes](https://github.com/aboutyou/dart_packages/releases)
- [Commits](https://github.com/aboutyou/dart_packages/commits)

Updates `supabase_flutter` from 2.3.4 to 2.5.4
- [Changelog](https://github.com/supabase/supabase-flutter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-flutter/commits/supabase_flutter-v2.5.4/packages)

Updates `url_launcher` from 6.2.5 to 6.2.6
- [Release notes](https://github.com/flutter/packages/releases)
- [Commits](https://github.com/flutter/packages/commits/url_launcher-v6.2.6/packages/url_launcher)

Updates `window_manager` from 0.3.8 to 0.3.9
- [Release notes](https://github.com/leanflutter/window_manager/releases)
- [Changelog](https://github.com/leanflutter/window_manager/blob/main/CHANGELOG.md)
- [Commits](https://github.com/leanflutter/window_manager/commits/v0.3.9)

Updates `youtube_explode_dart` from 2.1.0 to 2.2.1
- [Release notes](https://github.com/Hexer10/youtube_explode_dart/releases)
- [Changelog](https://github.com/Hexer10/youtube_explode_dart/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Hexer10/youtube_explode_dart/compare/v2.1.0...v2.2.1)

---
updated-dependencies:
- dependency-name: app_links
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: pub
- dependency-name: cupertino_icons
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: flutter_cache_manager
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: flutter_lints
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: pub
- dependency-name: flutter_markdown
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pub
- dependency-name: html2md
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: just_audio
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: just_audio_background
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: just_audio_media_kit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: package_info_plus
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: pub
- dependency-name: purchases_flutter
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pub
- dependency-name: shared_preferences
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: sign_in_with_apple
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pub
- dependency-name: supabase_flutter
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pub
- dependency-name: url_launcher
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: window_manager
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pub
- dependency-name: youtube_explode_dart
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pub
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update Flutter Version and Podfile

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ricoberger <mail@ricoberger.de>
2024-06-08 17:59:59 +02:00

92 lines
2.6 KiB
Dart

import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:app_links/app_links.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:provider/provider.dart';
import 'package:feeddeck/repositories/app_repository.dart';
import 'package:feeddeck/widgets/deck/deck_layout.dart';
import 'package:feeddeck/widgets/signin/signin.dart';
/// [Home] is the central widget of our app. If the user is already
/// authenticated is shows the [DeckLayout] widget otherwise the [SignIn]
/// widget. To check if the user is authenticated we have to call the `init`
/// method from the [AppRepository].
///
/// While the method is running we show a [CircularProgressIndicator]. On iOS,
/// Android and Web we do not really display the [CircularProgressIndicator]
/// instead we show the native splash screen until the method is finished.
class Home extends StatefulWidget {
const Home({super.key});
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
final _appLinks = AppLinks();
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
Provider.of<AppRepository>(context, listen: false)
.init()
.then((_) => FlutterNativeSplash.remove());
});
if (!kIsWeb && (Platform.isIOS || Platform.isAndroid)) {
_appLinks.uriLinkStream.listen((uri) {
if (uri
.toString()
.startsWith('app.feeddeck.feeddeck://signin-callback/')) {
Provider.of<AppRepository>(context, listen: false)
.signInWithCallback(uri)
.then((_) {
WidgetsBinding.instance.addPostFrameCallback((_) {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (BuildContext context) => const DeckLayout(),
),
(route) => false,
);
});
}).catchError((_) {});
}
});
}
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
AppRepository app = Provider.of<AppRepository>(
context,
listen: true,
);
switch (app.status) {
case FDAppStatus.unauthenticated:
return const SignIn();
case FDAppStatus.authenticated:
return const DeckLayout();
default:
return const Scaffold(
body: Center(
child: SingleChildScrollView(
child: CircularProgressIndicator(),
),
),
);
}
}
}