* fixed naming.

* add local notification when there is new reply.

* updated fastlane.

* removed debug flag.

* bumped version.

* add local push notification.

* removed mock.

* fix notification.

* updated notification msg.

* fixed fetcher.

* not using work manager anymore.

* revert interval.

* not sending notification on launch.

* bumped version.

* added logger.

* bumped inappwebview version.

* updated background task info.

* updated fastlane
This commit is contained in:
Jiaqi Feng
2022-05-05 23:48:41 -07:00
committed by GitHub
parent 8e5438e8ea
commit bfbc80b56b
31 changed files with 587 additions and 177 deletions

View File

@ -1,20 +1,61 @@
import 'dart:async';
import 'dart:io';
import 'package:adaptive_theme/adaptive_theme.dart';
import 'package:feature_discovery/feature_discovery.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:hacki/blocs/blocs.dart';
import 'package:hacki/config/custom_router.dart';
import 'package:hacki/config/locator.dart';
import 'package:hacki/cubits/cubits.dart';
import 'package:hacki/screens/screens.dart';
import 'package:hacki/services/fetcher.dart';
import 'package:hive/hive.dart';
import 'package:path_provider/path_provider.dart';
import 'package:rxdart/rxdart.dart' show BehaviorSubject;
import 'package:workmanager/workmanager.dart';
// For receiving payload event from local notifications.
final BehaviorSubject<String?> selectNotificationSubject =
BehaviorSubject<String?>();
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isIOS) {
unawaited(
Workmanager().initialize(
fetcherCallbackDispatcher,
),
);
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
const AndroidInitializationSettings initializationSettingsAndroid =
AndroidInitializationSettings('@mipmap/ic_launcher');
const IOSInitializationSettings initializationSettingsIOS =
IOSInitializationSettings();
const InitializationSettings initializationSettings =
InitializationSettings(
android: initializationSettingsAndroid,
iOS: initializationSettingsIOS,
);
await flutterLocalNotificationsPlugin.initialize(
initializationSettings,
onSelectNotification: selectNotificationSubject.add,
);
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<
IOSFlutterLocalNotificationsPlugin>()
?.requestPermissions(
alert: true,
badge: true,
sound: true,
);
}
final Directory tempDir = await getTemporaryDirectory();
final String tempPath = tempDir.path;
Hive.init(tempPath);