Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI/connectivity warning #1412

Open
wants to merge 14 commits into
base: develop
Choose a base branch
from
9 changes: 5 additions & 4 deletions packages/uni_app/lib/generated/intl/messages_all.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ MessageLookupByLibrary? _findExact(String localeName) {
/// User programs should call this before using [localeName] for messages.
Future<bool> initializeMessages(String localeName) async {
var availableLocale = Intl.verifiedLocale(
localeName, (locale) => _deferredLibraries[locale] != null,
onFailure: (_) => null);
localeName,
(locale) => _deferredLibraries[locale] != null,
onFailure: (_) => null);
if (availableLocale == null) {
return new Future.value(false);
}
Expand All @@ -59,8 +60,8 @@ bool _messagesExistFor(String locale) {
}

MessageLookupByLibrary? _findGeneratedMessagesFor(String locale) {
var actualLocale =
Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null);
var actualLocale = Intl.verifiedLocale(locale, _messagesExistFor,
onFailure: (_) => null);
if (actualLocale == null) return null;
return _findExact(actualLocale);
}
445 changes: 167 additions & 278 deletions packages/uni_app/lib/generated/intl/messages_en.dart

Large diffs are not rendered by default.

446 changes: 167 additions & 279 deletions packages/uni_app/lib/generated/intl/messages_pt_PT.dart

Large diffs are not rendered by default.

25 changes: 11 additions & 14 deletions packages/uni_app/lib/generated/l10n.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/uni_app/lib/l10n/intl_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,6 @@
"@fail_to_authenticate": {},
"wrong_credentials_exception": "Invalid credentials",
"@wrong_credentials_exception": {},
"internet_status_exception": "Check your internet connection",
"internet_status_exception": "Attention: No internet connection",
"@internet_status_exception": {}
}
2 changes: 1 addition & 1 deletion packages/uni_app/lib/l10n/intl_pt_PT.arb
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,6 @@
"@fail_to_authenticate": {},
"wrong_credentials_exception": "Credenciais inválidas",
"@wrong_credentials_exception": {},
"internet_status_exception": "Verifique sua conexão com a internet",
"internet_status_exception": "Atenção: Sem conexão à internet",
"@internet_status_exception": {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import 'dart:async';

import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';

import '../../generated/l10n.dart';

class ConnectivityWarning extends StatefulWidget {
const ConnectivityWarning({super.key});

@override
State<ConnectivityWarning> createState() => _ConnectivityWarningState();
}

class _ConnectivityWarningState extends State<ConnectivityWarning> {
bool isOffline = false;

StreamSubscription<ConnectivityResult>? connectivitySubscription;

@override
void initState() {
super.initState();
checkInitialConnection();

connectivitySubscription = Connectivity()
.onConnectivityChanged
.listen((result) {
setState(() {
isOffline = result == ConnectivityResult.none;
});
});
}

Future<void> checkInitialConnection() async {
final result = await Connectivity().checkConnectivity();
setState(() {
isOffline = result == ConnectivityResult.none;
});
}

@override
void dispose() {
connectivitySubscription?.cancel();
super.dispose();
}

@override
Widget build(BuildContext context) {
return Visibility(
visible: isOffline,
child: Container(
padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 18),
child: Row(
children: [
Icon(
Icons.info_outline,
color: Theme.of(context).primaryColor,
size: 21,
),
const SizedBox(width: 8),
Text(
S.of(context).internet_status_exception,
style: Theme.of(context).textTheme.bodyMedium,
),
],
),
),
);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:uni/view/common_widgets/connectivity_warning_card.dart';
import 'package:uni/view/common_widgets/page_title.dart';

class AppTopNavbar extends StatelessWidget implements PreferredSizeWidget {
Expand All @@ -16,29 +17,34 @@ class AppTopNavbar extends StatelessWidget implements PreferredSizeWidget {
final Widget? leftButton;

Widget _createTopWidgets(BuildContext context) {
return Padding(
padding: EdgeInsets.fromLTRB(leftButton == null ? 20 : 12, 0, 20, 0),
child: Row(
children: [
if (leftButton != null)
Padding(
padding: const EdgeInsets.only(right: 8),
child: leftButton,
),
Expanded(
child: PageTitle(
name: title ?? '',
pad: false,
center: false,
return Column(
children: [
Padding(
padding: EdgeInsets.fromLTRB(leftButton == null ? 20 : 12, 0, 20, 0),
child: Row(
children: [
if (leftButton != null)
Padding(
padding: const EdgeInsets.only(right: 8),
child: leftButton,
),
Expanded(
child: PageTitle(
name: title ?? '',
pad: false,
center: false,
),
),
if (rightButton != null)
Padding(
padding: const EdgeInsets.only(left: 8),
child: rightButton,
),
],
),
),
if (rightButton != null)
Padding(
padding: const EdgeInsets.only(left: 8),
child: rightButton,
),
],
),
const ConnectivityWarning(),
],
);
}

Expand Down