update
This commit is contained in:
@ -16,6 +16,8 @@ PODS:
|
|||||||
- sqflite (0.0.2):
|
- sqflite (0.0.2):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FMDB (>= 2.7.5)
|
- FMDB (>= 2.7.5)
|
||||||
|
- url_launcher_ios (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- Flutter (from `Flutter`)
|
- Flutter (from `Flutter`)
|
||||||
@ -25,6 +27,7 @@ DEPENDENCIES:
|
|||||||
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
|
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
|
||||||
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
|
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
|
||||||
- sqflite (from `.symlinks/plugins/sqflite/ios`)
|
- sqflite (from `.symlinks/plugins/sqflite/ios`)
|
||||||
|
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||||
|
|
||||||
SPEC REPOS:
|
SPEC REPOS:
|
||||||
trunk:
|
trunk:
|
||||||
@ -45,6 +48,8 @@ EXTERNAL SOURCES:
|
|||||||
:path: ".symlinks/plugins/permission_handler/ios"
|
:path: ".symlinks/plugins/permission_handler/ios"
|
||||||
sqflite:
|
sqflite:
|
||||||
:path: ".symlinks/plugins/sqflite/ios"
|
:path: ".symlinks/plugins/sqflite/ios"
|
||||||
|
url_launcher_ios:
|
||||||
|
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||||
@ -55,6 +60,7 @@ SPEC CHECKSUMS:
|
|||||||
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
|
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
|
||||||
permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
|
permission_handler: ccb20a9fad0ee9b1314a52b70b76b473c5f8dab0
|
||||||
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
||||||
|
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
|
||||||
|
|
||||||
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
|
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import 'package:rogapp/utils/string_values.dart';
|
|||||||
import 'package:rogapp/utils/util_controller.dart';
|
import 'package:rogapp/utils/util_controller.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
//WidgetsFlutterBinding.ensureInitialized();
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,23 +8,62 @@ class DrawerPage extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Drawer(
|
return SafeArea(
|
||||||
// Add a ListView to the drawer. This ensures the user can scroll
|
child: Drawer(
|
||||||
// through the options in the drawer if there isn't enough vertical
|
// Add a ListView to the drawer. This ensures the user can scroll
|
||||||
// space to fit everything.
|
// through the options in the drawer if there isn't enough vertical
|
||||||
child: ListView.builder(
|
// space to fit everything.
|
||||||
itemCount: 10,
|
child: Container(
|
||||||
itemBuilder: (context, i){
|
child: Column(
|
||||||
return Obx(() =>
|
children: [
|
||||||
CheckboxListTile(
|
Container(
|
||||||
value: true,
|
height: 100,
|
||||||
title: Text("Title"),
|
color: Colors.amber,
|
||||||
onChanged: (val){
|
),
|
||||||
}
|
ListTile(
|
||||||
|
leading: Icon(Icons.login),
|
||||||
|
title: Text("login".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: Icon(Icons.password),
|
||||||
|
title: Text("change_password".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: Icon(Icons.person),
|
||||||
|
title: Text("profile".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: Icon(Icons.route),
|
||||||
|
title: Text("recommended_route".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: Icon(Icons.favorite_rounded),
|
||||||
|
title: Text("point_rank".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: Icon(Icons.featured_video),
|
||||||
|
title: Text("game_rank".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: Icon(Icons.router),
|
||||||
|
title: Text("my_route".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
ListTile(
|
||||||
|
leading: Icon(Icons.history_sharp),
|
||||||
|
title: Text("visit_history".tr),
|
||||||
|
onTap: (){},
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
},
|
),
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,4 +51,28 @@ class HomeController extends GetxController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void makePrevious(GeoJsonFeature fs){
|
||||||
|
GeoJsonFeature<GeoJsonMultiPoint> pt = fs as GeoJsonFeature<GeoJsonMultiPoint>;
|
||||||
|
|
||||||
|
for(int i=0; i<= locations[0].collection.length - 1; i++){
|
||||||
|
GeoJsonMultiPoint p = locations[0].collection[i].geometry as GeoJsonMultiPoint;
|
||||||
|
|
||||||
|
if(p.geoSerie!.geoPoints[0].latitude == pt.geometry!.geoSerie!.geoPoints[0].latitude && p.geoSerie!.geoPoints[0].longitude == pt.geometry!.geoSerie!.geoPoints[0].longitude ){
|
||||||
|
|
||||||
|
if(currentFeature.length > 0){
|
||||||
|
currentFeature.clear();
|
||||||
|
}
|
||||||
|
if(i == 0 ){
|
||||||
|
currentFeature.add(locations[0].collection[locations[0].collection.length -1] as GeoJsonFeature);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
currentFeature.add(locations[0].collection[i - 1] as GeoJsonFeature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -7,10 +7,8 @@ import 'package:get/get.dart';
|
|||||||
import 'package:rogapp/pages/drawer/drawer_page.dart';
|
import 'package:rogapp/pages/drawer/drawer_page.dart';
|
||||||
import 'package:rogapp/pages/home/home_controller.dart';
|
import 'package:rogapp/pages/home/home_controller.dart';
|
||||||
import 'package:rogapp/routes/app_pages.dart';
|
import 'package:rogapp/routes/app_pages.dart';
|
||||||
import 'package:rogapp/services/location_line_service.dart';
|
|
||||||
import 'package:rogapp/services/location_polygon_service.dart';
|
|
||||||
import 'package:rogapp/services/location_service.dart';
|
|
||||||
import 'package:rogapp/widgets/bottom_sheet_widget.dart';
|
import 'package:rogapp/widgets/bottom_sheet_widget.dart';
|
||||||
|
import 'package:flutter_breadcrumb/flutter_breadcrumb.dart';
|
||||||
|
|
||||||
class HomePage extends GetView<HomeController> {
|
class HomePage extends GetView<HomeController> {
|
||||||
|
|
||||||
@ -61,9 +59,7 @@ class HomePage extends GetView<HomeController> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.camera_enhance), onPressed: (){},),),
|
Expanded(child: IconButton(icon: Icon(Icons.camera_enhance), onPressed: (){},),),
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.arrow_back_ios), onPressed: (){}),),
|
|
||||||
Expanded(child: new Text('')),
|
Expanded(child: new Text('')),
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.arrow_forward_ios), onPressed: (){}),),
|
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.travel_explore), onPressed: (){}),),
|
Expanded(child: IconButton(icon: Icon(Icons.travel_explore), onPressed: (){}),),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@ -71,9 +67,19 @@ class HomePage extends GetView<HomeController> {
|
|||||||
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
|
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
|
||||||
body:Column(
|
body:Column(
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Padding(
|
||||||
height: 50.0,
|
padding: const EdgeInsets.symmetric(horizontal: 8.0),
|
||||||
color: Colors.amber,
|
child: Container(
|
||||||
|
alignment: Alignment.centerLeft,
|
||||||
|
height: 50.0,
|
||||||
|
child: BreadCrumb(
|
||||||
|
items: <BreadCrumbItem>[
|
||||||
|
BreadCrumbItem(content: Text('Item1', style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),)),
|
||||||
|
BreadCrumbItem(content: Text('Item2', style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),)),
|
||||||
|
],
|
||||||
|
divider: Icon(Icons.chevron_right),
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Obx(() =>
|
child: Obx(() =>
|
||||||
|
|||||||
@ -42,9 +42,7 @@ class MapPage extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.camera_enhance), onPressed: (){},),),
|
Expanded(child: IconButton(icon: Icon(Icons.camera_enhance), onPressed: (){},),),
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.arrow_back_ios), onPressed: (){}),),
|
|
||||||
Expanded(child: new Text('')),
|
Expanded(child: new Text('')),
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.arrow_forward_ios), onPressed: (){}),),
|
|
||||||
Expanded(child: IconButton(icon: Icon(Icons.travel_explore), onPressed: (){}),),
|
Expanded(child: IconButton(icon: Icon(Icons.travel_explore), onPressed: (){}),),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@ -18,19 +18,7 @@ class LocationService{
|
|||||||
|
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
|
|
||||||
// geo.processedFeatures.listen((fst) {
|
|
||||||
// fs = fst;
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
return featuresFromGeoJson(utf8.decode(response.bodyBytes));
|
return featuresFromGeoJson(utf8.decode(response.bodyBytes));
|
||||||
// await geo.parse(response.body, verbose:true);
|
|
||||||
|
|
||||||
// return fs;
|
|
||||||
|
|
||||||
// } else {
|
|
||||||
// throw Exception('Failed to create album.');
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,10 +5,46 @@ class StringValues extends Translations{
|
|||||||
// TODO: implement keys
|
// TODO: implement keys
|
||||||
Map<String, Map<String, String>> get keys => {
|
Map<String, Map<String, String>> get keys => {
|
||||||
'en_US': {
|
'en_US': {
|
||||||
'app_title': '- Rogaining -'
|
'app_title': '- Rogaining -',
|
||||||
|
'address':'address',
|
||||||
|
'email':'Email',
|
||||||
|
'web':'Web',
|
||||||
|
'wikipedia':'Wikipedia',
|
||||||
|
'video':'video',
|
||||||
|
'description':'Description',
|
||||||
|
'telephone':'Tel',
|
||||||
|
'how_nice': 'How nice',
|
||||||
|
'want_to_go': "Want to Go",
|
||||||
|
'schedule_point': "Schedule point",
|
||||||
|
'login': 'Login',
|
||||||
|
'change_password': 'Change Password',
|
||||||
|
'profile': 'Profile',
|
||||||
|
'recommended_route': 'Recommended Route',
|
||||||
|
'point_rank': 'Point Rank',
|
||||||
|
'game_rank': 'Game Rank',
|
||||||
|
'my_route': 'My Route',
|
||||||
|
'visit_history': 'Visit History'
|
||||||
},
|
},
|
||||||
'ja_JP': {
|
'ja_JP': {
|
||||||
'app_title': '旅行工程表'
|
'app_title': '旅行工程表',
|
||||||
|
'address':'住所',
|
||||||
|
'email':'Eメール',
|
||||||
|
'web':'Eメール',
|
||||||
|
'wikipedia':'ウィキペディア',
|
||||||
|
'video':'ビデオ',
|
||||||
|
'description':'説明',
|
||||||
|
'telephone':'電話',
|
||||||
|
'how_nice':'いいね',
|
||||||
|
'want_to_go': '行きたい',
|
||||||
|
'schedule_point': '予定地点',
|
||||||
|
'login': 'ログインする',
|
||||||
|
'change_password': 'パスワード変更',
|
||||||
|
'profile': 'プロフィール',
|
||||||
|
'recommended_route': '推奨ルート',
|
||||||
|
'point_rank': '地点ランキング',
|
||||||
|
'game_rank': 'ゲームランキング',
|
||||||
|
'my_route': 'マイルート',
|
||||||
|
'visit_history': '訪問履歴'
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:geojson/geojson.dart';
|
import 'package:geojson/geojson.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:rogapp/pages/home/home_controller.dart';
|
import 'package:rogapp/pages/home/home_controller.dart';
|
||||||
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
|
|
||||||
class BottomSheetWidget extends StatelessWidget {
|
class BottomSheetWidget extends StatelessWidget {
|
||||||
//const BottomSheetWidget({ Key? key }, GeoJsonFeature? pt) : super(key: key);
|
//const BottomSheetWidget({ Key? key }, GeoJsonFeature? pt) : super(key: key);
|
||||||
@ -17,63 +18,163 @@ class BottomSheetWidget extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _launchURL(url) async {
|
||||||
|
if (!await launch(url)) throw 'Could not launch $url';
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SingleChildScrollView(
|
return SingleChildScrollView(
|
||||||
child: Padding(
|
child: Column(
|
||||||
padding: EdgeInsets.only(
|
children: [
|
||||||
bottom: MediaQuery.of(context).viewInsets.bottom,
|
SizedBox(height: 8.0,),
|
||||||
),
|
Row(
|
||||||
child: Container(
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
alignment: Alignment.topLeft,
|
children: [
|
||||||
decoration: BoxDecoration(
|
MaterialButton(
|
||||||
borderRadius: BorderRadius.circular(20.0),
|
onPressed: () {
|
||||||
),
|
homeController.makePrevious(homeController.currentFeature[0]);
|
||||||
child: Padding(
|
},
|
||||||
padding: const EdgeInsets.all(8.0),
|
color: Colors.blue,
|
||||||
child: Column(
|
textColor: Colors.white,
|
||||||
children: [
|
child: Icon(
|
||||||
Row(
|
Icons.arrow_back_ios,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
size: 10,
|
||||||
children: [
|
),
|
||||||
Expanded(
|
padding: EdgeInsets.all(16),
|
||||||
child: Container(
|
shape: CircleBorder(),
|
||||||
height: 35.0,
|
|
||||||
alignment: Alignment.center,
|
|
||||||
color: Colors.black12,
|
|
||||||
child: Obx(() =>
|
|
||||||
Text(homeController.currentFeature[0].properties!["location_name"], style: TextStyle(
|
|
||||||
fontSize: 18.0,
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
IconButton(
|
|
||||||
onPressed:(){
|
|
||||||
print("next");
|
|
||||||
homeController.makeNext(homeController.currentFeature[0]);
|
|
||||||
},
|
|
||||||
icon: Icon(Icons.delete_outlined)
|
|
||||||
)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Row(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding: EdgeInsets.all(8.0),
|
|
||||||
child: Obx(() => getImage(homeController.currentFeature[0])),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(width: 66.0,)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
)
|
Expanded(
|
||||||
),
|
child: Container(
|
||||||
|
alignment: Alignment.center,
|
||||||
|
child: Obx(() =>
|
||||||
|
Text(homeController.currentFeature[0].properties!["location_name"], style: TextStyle(
|
||||||
|
fontSize: 15.0,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
MaterialButton(
|
||||||
|
onPressed: () {
|
||||||
|
homeController.makeNext(homeController.currentFeature[0]);
|
||||||
|
},
|
||||||
|
color: Colors.blue,
|
||||||
|
textColor: Colors.white,
|
||||||
|
child: Icon(
|
||||||
|
Icons.arrow_forward_ios,
|
||||||
|
size: 10,
|
||||||
|
),
|
||||||
|
padding: EdgeInsets.all(16),
|
||||||
|
shape: CircleBorder(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: SizedBox(
|
||||||
|
height: 360.0,
|
||||||
|
child: Obx(() => getImage(homeController.currentFeature[0])),
|
||||||
|
)
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Expanded(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
homeController.currentFeature[0].properties!["address"] != null ?
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text("address".tr, style: TextStyle(fontWeight: FontWeight.bold),),
|
||||||
|
SizedBox(width: 12.0,),
|
||||||
|
Obx(() => Text(homeController.currentFeature[0].properties!["address"],
|
||||||
|
style: TextStyle(color: Colors.blue,),
|
||||||
|
))
|
||||||
|
],
|
||||||
|
): Container(width: 0.0, height: 0,),
|
||||||
|
homeController.currentFeature[0].properties!["phone"] != null ?
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text("telephone".tr, style: TextStyle(fontWeight: FontWeight.bold),),
|
||||||
|
SizedBox(width: 12.0,),
|
||||||
|
Obx(() => Text(homeController.currentFeature[0].properties!["phone"],
|
||||||
|
style: TextStyle(color: Colors.blue,),
|
||||||
|
))
|
||||||
|
],
|
||||||
|
): Container(width: 0, height: 0,),
|
||||||
|
homeController.currentFeature[0].properties!["email"] != null ?
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text("email".tr, style: TextStyle(fontWeight: FontWeight.bold),),
|
||||||
|
SizedBox(width: 12.0,),
|
||||||
|
Obx(() => Text(homeController.currentFeature[0].properties!["email"],
|
||||||
|
style: TextStyle(color: Colors.blue,),
|
||||||
|
))
|
||||||
|
],
|
||||||
|
): Container(width: 0, height: 0,),
|
||||||
|
homeController.currentFeature[0].properties!["webcontents"] != null ?
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text("web".tr, style: TextStyle(fontWeight: FontWeight.bold)),
|
||||||
|
SizedBox(width: 12.0,),
|
||||||
|
Obx(() => InkWell(
|
||||||
|
onTap: (){
|
||||||
|
_launchURL(homeController.currentFeature[0].properties!["webcontents"]);
|
||||||
|
},
|
||||||
|
child: Text(homeController.currentFeature[0].properties!["webcontents"],
|
||||||
|
style: TextStyle(color: Colors.blue,),
|
||||||
|
),
|
||||||
|
))
|
||||||
|
],
|
||||||
|
): Container(width: 0.0, height: 0.0,),
|
||||||
|
homeController.currentFeature[0].properties!["videos"] != null ?
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text("video".tr, style: TextStyle(fontWeight: FontWeight.bold)),
|
||||||
|
SizedBox(width: 12.0,),
|
||||||
|
Obx(() => Text(homeController.currentFeature[0].properties!["videos"],
|
||||||
|
style: TextStyle(color: Colors.blue,),
|
||||||
|
))
|
||||||
|
],
|
||||||
|
): Container(width: 0.0, height: 0.0,),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
SizedBox(height: 20.0,),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
|
children: [
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: (){},
|
||||||
|
child: Text("schedule_point".tr)
|
||||||
|
),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: (){},
|
||||||
|
child: Text("schedule_point".tr)
|
||||||
|
),
|
||||||
|
ElevatedButton(
|
||||||
|
onPressed: (){},
|
||||||
|
child: Text("schedule_point".tr)
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
SizedBox(height: 60.0,),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
65
pubspec.lock
65
pubspec.lock
@ -104,6 +104,13 @@ packages:
|
|||||||
description: flutter
|
description: flutter
|
||||||
source: sdk
|
source: sdk
|
||||||
version: "0.0.0"
|
version: "0.0.0"
|
||||||
|
flutter_breadcrumb:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: flutter_breadcrumb
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "1.0.1"
|
||||||
flutter_compass:
|
flutter_compass:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -595,6 +602,62 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.1"
|
version: "0.3.1"
|
||||||
|
url_launcher:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: url_launcher
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "6.0.20"
|
||||||
|
url_launcher_android:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_android
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "6.0.15"
|
||||||
|
url_launcher_ios:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_ios
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "6.0.15"
|
||||||
|
url_launcher_linux:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_linux
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.0"
|
||||||
|
url_launcher_macos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_macos
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.0"
|
||||||
|
url_launcher_platform_interface:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_platform_interface
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.5"
|
||||||
|
url_launcher_web:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_web
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.9"
|
||||||
|
url_launcher_windows:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: url_launcher_windows
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.0"
|
||||||
vector_math:
|
vector_math:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -625,4 +688,4 @@ packages:
|
|||||||
version: "0.2.0+1"
|
version: "0.2.0+1"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.16.0 <3.0.0"
|
dart: ">=2.16.0 <3.0.0"
|
||||||
flutter: ">=2.10.0-0"
|
flutter: ">=2.10.0"
|
||||||
|
|||||||
@ -56,7 +56,10 @@ dependencies:
|
|||||||
material_design_icons_flutter: ^5.0.6595
|
material_design_icons_flutter: ^5.0.6595
|
||||||
google_fonts: any
|
google_fonts: any
|
||||||
image_picker: ^0.8.4+4
|
image_picker: ^0.8.4+4
|
||||||
|
#geojson_vi: ^2.0.7
|
||||||
geojson: ^1.0.0
|
geojson: ^1.0.0
|
||||||
|
url_launcher: ^6.0.20
|
||||||
|
flutter_breadcrumb: ^1.0.1
|
||||||
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|||||||
@ -7,8 +7,11 @@
|
|||||||
#include "generated_plugin_registrant.h"
|
#include "generated_plugin_registrant.h"
|
||||||
|
|
||||||
#include <geolocator_windows/geolocator_windows.h>
|
#include <geolocator_windows/geolocator_windows.h>
|
||||||
|
#include <url_launcher_windows/url_launcher_windows.h>
|
||||||
|
|
||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
void RegisterPlugins(flutter::PluginRegistry* registry) {
|
||||||
GeolocatorWindowsRegisterWithRegistrar(
|
GeolocatorWindowsRegisterWithRegistrar(
|
||||||
registry->GetRegistrarForPlugin("GeolocatorWindows"));
|
registry->GetRegistrarForPlugin("GeolocatorWindows"));
|
||||||
|
UrlLauncherWindowsRegisterWithRegistrar(
|
||||||
|
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
list(APPEND FLUTTER_PLUGIN_LIST
|
list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
geolocator_windows
|
geolocator_windows
|
||||||
|
url_launcher_windows
|
||||||
)
|
)
|
||||||
|
|
||||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
|
|||||||
Reference in New Issue
Block a user