WIP
This commit is contained in:
parent
c2d54b6b3f
commit
f59293da80
|
@ -23,6 +23,8 @@ import 'package:hub/shared/helpers/storage_helper.dart';
|
|||
import 'package:hub/shared/services/localization/localization_service.dart';
|
||||
import 'package:hub/shared/utils/device_util.dart';
|
||||
import 'package:hub/shared/utils/dialog_util.dart';
|
||||
import 'package:hub/shared/utils/log_util.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:responsive_framework/responsive_framework.dart';
|
||||
|
||||
import 'backend/notifications/firebase_messaging_service.dart';
|
||||
|
@ -37,6 +39,7 @@ void main() async {
|
|||
|
||||
Future<void> initializeApp() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
LogUtil.setupLogging();
|
||||
await _initializeTracking();
|
||||
await StorageHelper().init();
|
||||
|
||||
|
@ -182,33 +185,37 @@ class _AppState extends State<App> with WidgetsBindingObserver {
|
|||
};
|
||||
|
||||
Future<void> initDeepLinks() async {
|
||||
final Logger logger = Logger('initDeepLinks');
|
||||
try {
|
||||
_appLinks = AppLinks();
|
||||
logger.severe('initDeepLinks');
|
||||
_linkSubscription = _appLinks.uriLinkStream.listen((uri) async {
|
||||
final bool isRecovered = StorageHelper().isRecovered;
|
||||
await DialogUtil.error(context, 'isRecovered: $isRecovered');
|
||||
logger.severe('isRecovered: $isRecovered');
|
||||
if (!isRecovered) await openAppLink(uri);
|
||||
});
|
||||
} catch (e) {
|
||||
await DialogUtil.error(context, 'Erro ao tentar abrir o link');
|
||||
logger.severe('initDeepLinks error: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> openAppLink(Uri uri) async {
|
||||
final Logger logger = Logger('openAppLink');
|
||||
logger.severe('open app link: $uri');
|
||||
final bool isRecovered = StorageHelper().isRecovered;
|
||||
log('isRecovered: $isRecovered');
|
||||
await DialogUtil.warning(context, 'isRecovered: $isRecovered');
|
||||
logger.severe('isRecovered: $isRecovered');
|
||||
if (isRecovered) return;
|
||||
StorageHelper().isRecovered = true;
|
||||
final String email = uri.queryParameters['email'] ?? '';
|
||||
final String token = uri.queryParameters['token'] ?? '';
|
||||
logger.severe('email: $email, token: $token');
|
||||
final bool isNotEmpty = email.isNotEmpty && token.isNotEmpty;
|
||||
if (isNotEmpty) {
|
||||
final BuildContext context = StorageHelper().context!;
|
||||
final FlutterFlowTheme theme = FlutterFlowTheme.of(context);
|
||||
final Widget screen = ForgotPasswordScreen(email: email, token: token);
|
||||
builder(context) => screen;
|
||||
await DialogUtil.warning(context, 'Builder: $builder');
|
||||
logger.severe('showModalBottomSheet');
|
||||
await showModalBottomSheet(
|
||||
context: context,
|
||||
builder: (context) => Padding(padding: MediaQuery.viewInsetsOf(context), child: builder(context)),
|
||||
|
@ -219,9 +226,9 @@ class _AppState extends State<App> with WidgetsBindingObserver {
|
|||
useSafeArea: true,
|
||||
enableDrag: true,
|
||||
// isDismissible: true,
|
||||
).whenComplete(() async {
|
||||
).whenComplete(() {
|
||||
StorageHelper().isRecovered = false;
|
||||
await DialogUtil.success(context, 'isRecovered: ${StorageHelper().isRecovered}');
|
||||
logger.severe('showModalBottomSheet completed');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -277,7 +284,8 @@ class _AppState extends State<App> with WidgetsBindingObserver {
|
|||
const Duration(milliseconds: 1000), () => setState(() => _appStateNotifier.stopShowingSplashImage()));
|
||||
|
||||
_setupFirebaseMessaging();
|
||||
WidgetsBinding.instance.addPersistentFrameCallback((_) async => await initDeepLinks());
|
||||
// WidgetsBinding.instance.addPersistentFrameCallback((_) async => await initDeepLinks());
|
||||
initDeepLinks();
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -1,19 +1,39 @@
|
|||
import 'dart:developer';
|
||||
|
||||
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:hub/backend/api_requests/api_calls.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
class LogUtil {
|
||||
static void requestAPIFailed(String url, String body, String reason, dynamic error, StackTrace stack) async {
|
||||
log("URL: ${PhpGroup.getBaseUrl()}/$url");
|
||||
final fullUrl = "${PhpGroup.getBaseUrl()}/$url";
|
||||
log("URL: $fullUrl");
|
||||
log("Body: $body");
|
||||
log("Motivo: $reason");
|
||||
log("Reason: $reason");
|
||||
log("Error: ${error.toString()}");
|
||||
log("Stack: ${stack.toString()}");
|
||||
|
||||
FirebaseCrashlytics.instance.setCustomKey('URL', "${PhpGroup.getBaseUrl()}/$url");
|
||||
FirebaseCrashlytics.instance.setCustomKey('URL', fullUrl);
|
||||
FirebaseCrashlytics.instance.setCustomKey('Body', body);
|
||||
|
||||
await FirebaseCrashlytics.instance.recordError(error, stack, reason: reason);
|
||||
}
|
||||
|
||||
static void setupLogging() {
|
||||
Logger.root.level = Level.ALL;
|
||||
Logger.root.onRecord.listen((record) {
|
||||
final logMessage = '${record.level.name}: ${record.time}: ${record.message}';
|
||||
if (kReleaseMode) {
|
||||
log(
|
||||
logMessage,
|
||||
name: record.loggerName,
|
||||
error: record.error,
|
||||
stackTrace: record.stackTrace,
|
||||
);
|
||||
} else {
|
||||
print(logMessage);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@ dependencies:
|
|||
flutter_svg: 2.0.10+1
|
||||
font_awesome_flutter: 10.7.0
|
||||
from_css_color: 2.0.0
|
||||
logging: ^1.3.0
|
||||
go_router: ^14.3.0
|
||||
google_fonts: 6.2.1
|
||||
http: 1.2.1
|
||||
|
|
Loading…
Reference in New Issue