|
@@ -1,5 +1,3 @@
|
|
|
-import 'dart:io';
|
|
|
|
|
-
|
|
|
|
|
import 'package:get/get.dart';
|
|
import 'package:get/get.dart';
|
|
|
import 'package:get/get_rx/src/rx_types/rx_types.dart';
|
|
import 'package:get/get_rx/src/rx_types/rx_types.dart';
|
|
|
import 'package:injectable/injectable.dart';
|
|
import 'package:injectable/injectable.dart';
|
|
@@ -8,13 +6,12 @@ import 'package:location/data/bean/location_info.dart';
|
|
|
import 'package:location/data/bean/user_info.dart';
|
|
import 'package:location/data/bean/user_info.dart';
|
|
|
import 'package:location/data/repositories/account_repository.dart';
|
|
import 'package:location/data/repositories/account_repository.dart';
|
|
|
import 'package:location/data/repositories/friends_repository.dart';
|
|
import 'package:location/data/repositories/friends_repository.dart';
|
|
|
-import 'package:location/utils/atmob_log.dart';
|
|
|
|
|
-import 'package:map/flutter_map.dart';
|
|
|
|
|
-import 'package:map_platform_interface/map_interface.dart';
|
|
|
|
|
-
|
|
|
|
|
|
|
+import 'package:flutter_map/flutter_map.dart';
|
|
|
|
|
+import '../../dialog/add_friend_dialog.dart';
|
|
|
|
|
+import '../../dialog/check_loation_permission_dialog.dart';
|
|
|
import '../../dialog/location_permission_dialog.dart';
|
|
import '../../dialog/location_permission_dialog.dart';
|
|
|
import '../../utils/location_permission_util.dart';
|
|
import '../../utils/location_permission_util.dart';
|
|
|
-import '../add_friend/add_friend_view.dart';
|
|
|
|
|
|
|
+import '../add_friend/add_friend_page.dart';
|
|
|
import '../mine/mine_page.dart';
|
|
import '../mine/mine_page.dart';
|
|
|
|
|
|
|
|
@injectable
|
|
@injectable
|
|
@@ -40,16 +37,30 @@ class MainController extends BaseController {
|
|
|
friendsList.listen((list) {
|
|
friendsList.listen((list) {
|
|
|
mapController.addMarkers(_convertToMarker(list));
|
|
mapController.addMarkers(_convertToMarker(list));
|
|
|
});
|
|
});
|
|
|
|
|
+ AddFriendDialog.show(
|
|
|
|
|
+ onAddClick: () async {
|
|
|
|
|
+ await onAddFriendClick();
|
|
|
|
|
+ checkLocationPermissionCallback();
|
|
|
|
|
+ },
|
|
|
|
|
+ onNotAddDismiss: checkLocationPermissionCallback);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void onAddFriendClick() {
|
|
|
|
|
- AddFriendView.show();
|
|
|
|
|
|
|
+ Future<void> onAddFriendClick() {
|
|
|
|
|
+ return AddFriendPage.show();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void onMineClick() {
|
|
void onMineClick() {
|
|
|
MinePage.start();
|
|
MinePage.start();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ void checkLocationPermissionCallback() async {
|
|
|
|
|
+ bool isGranted = await LocationPermissionUtil.checkLocationPermission();
|
|
|
|
|
+ if (!isGranted) {
|
|
|
|
|
+ CheckLocationPermissionDialog.show(
|
|
|
|
|
+ onRequestPermissionClick: _requestLocationPermission);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
void onSelectClick(UserInfo mineLocation) {
|
|
void onSelectClick(UserInfo mineLocation) {
|
|
|
UserInfo? oldInfo = _selectedFriend.value;
|
|
UserInfo? oldInfo = _selectedFriend.value;
|
|
|
_selectedFriend.value = mineLocation;
|
|
_selectedFriend.value = mineLocation;
|
|
@@ -108,18 +119,20 @@ class MainController extends BaseController {
|
|
|
//权限检查
|
|
//权限检查
|
|
|
bool isGranted = await LocationPermissionUtil.checkLocationPermission();
|
|
bool isGranted = await LocationPermissionUtil.checkLocationPermission();
|
|
|
if (!isGranted) {
|
|
if (!isGranted) {
|
|
|
- LocationPermissionDialog.show(onNextStep: () async {
|
|
|
|
|
- isGranted = await LocationPermissionUtil.requestLocationPermission();
|
|
|
|
|
- _showLocationAlways();
|
|
|
|
|
- if (isGranted) {
|
|
|
|
|
- _updateCurrentLocation();
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ LocationPermissionDialog.show(onNextStep: _requestLocationPermission);
|
|
|
} else {
|
|
} else {
|
|
|
_updateCurrentLocation();
|
|
_updateCurrentLocation();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ void _requestLocationPermission() async {
|
|
|
|
|
+ bool isGranted = await LocationPermissionUtil.requestLocationPermission();
|
|
|
|
|
+ _showLocationAlways();
|
|
|
|
|
+ if (isGranted) {
|
|
|
|
|
+ _updateCurrentLocation();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
void _showLocationAlways() async {
|
|
void _showLocationAlways() async {
|
|
|
bool isGranted = await LocationPermissionUtil.checkShowLocationAlways();
|
|
bool isGranted = await LocationPermissionUtil.checkShowLocationAlways();
|
|
|
if (!isGranted) {
|
|
if (!isGranted) {
|