import 'dart:convert';
import 'dart:developer' as developer;
import 'dart:io';
import 'dart:math';
import 'package:ai_save_account/ai_save_account.dart';
import 'package:camera/camera.dart';
import 'package:convert/convert.dart';
import 'package:crypto/crypto.dart' as crypto;
import 'package:device_info/device_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
//import '../my_wechat_assets_picker_fix/my_asset_picker_1.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:hyzp_ybqx/provider/player_region.dart';
import 'UserInfo.dart';
////////////////////////////////////////////
// begin hyzp_ybqx-Commit022-区县切换新方法-OK
// 1、修改手机桌面的App图标文本
// R:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\AndroidManifest.xml
// android:label="宜宾黑烟抓拍"
// android:label="宜宾市翠屏黑烟抓拍"
// android:label="宜宾三江新区黑烟抓拍"
// android:label="宜宾市长宁黑烟抓拍"
// android:label="宜宾市筠连黑烟抓拍"
// android:label="宜宾市兴文黑烟抓拍"
// 2、修改App的android和Flutter启动图片,制作并运行 hyzp_ybqx.images_copy.cmd,自动完成两项拷贝任务
// (1)、拷贝不同分辨率的图片文件hyzp_ybqx_launche.png到下面目录,作为App的android启动图片
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-hdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-mdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-xhdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-xxhdpi\
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\android\app\src\main\res\mipmap-xxxhdpi\
// (2)、拷贝 750 * 1334 的图片文件到下面目录,作为App的Flutter启动图片
// r:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\assets\images\hyzp_ybqx01_cuiping_launche.png
// 3、修改文本变量
// 位于文件 R:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\lib\components\commonFun.dart 中
// 511501、宜宾市
// String APPkey = 'ijddvzgEGaxbzsbmCtpdohxHyrAArwJB'; // 宜宾市APPkey
// String service_tel = '\n服务热线:187-8467-8300';
// String yibin_QuXian = '宜宾';
// String copyright_info = '© ' + yibin_QuXian + '市生态环境局 四川省踏石科技有限公司 版权所有' + service_tel;
// String copyright_info_PinYin = 'YIBIN BLACK SMOKE CAR CAPTURE SYSTEM';
// const serviceUrl_ybqx = 'http://125.64.218.67:9904'; // 宜宾市
// const serviceUrl_ybqx_media = 'http://125.64.218.67:9908/'; // 宜宾市
// 区县APPkey
String APPkey = 'pdohxHyr79ddvzgE8ArwGaxb01bmCtJB';
// 区县后台地址
const serviceUrl_ybqx = 'http://125.64.218.67:9909';
// 区县违章图片和视频地址前缀
const serviceUrl_ybqx_media = 'http://125.64.218.67:9912/';
// 区县球机方向控制地址
const String setSphericalCameraUrl = 'http://125.64.218.67:9914/';
// {
// "ret": 200,
// "data": {
// "is_login": true,
// "user_id": 152,
// "token": "959091E2A5E362E22F22F8DBE05737A95545A43AF28B19AB3DAD5F8557EE2E29",
// "qx_code": "511528",
// "qx_name": "兴文县"
// },
// "msg": ""
// }
// 一套APP适应多个区县,等用户登录后,会返回 qx_code、qx_name
int qx_code = -1;
String qx_name = '';
String qx_name_long = '';
int qx_trial_tag = 0;
String service_tel = '';
String copyright_info = '';
String copyright_info_PinYin = '';
// 区县中心地址
double center_latitude = -1; // 区县中心纬度
double center_longitude = -1; // 区县中心经度
clear_user_info() {
qx_code = -1;
qx_name = '';
qx_name_long = '';
qx_trial_tag = 1;
service_tel = '';
copyright_info = '';
copyright_info_PinYin = '';
// 区县中心地址
center_latitude = -1; // 区县中心纬度
center_longitude = -1; // 区县中心经度
}
// 511528、兴文县
// int qx_code = 511528;
// String qx_name = '宜宾市兴文';
// String service_tel = '\n服务热线:187-8467-8300';
// String copyright_info = '© ' + qx_name + '生态环境局 四川省踏石科技 版权所有' + service_tel;
// String copyright_info_PinYin = 'YIBIN XINGWEN BLACK SMOKE CAR CAPTURE SYSTEM';
// // 兴文县中心地址:天泉商城
// double center_latitude = 28.29678023715008; // 区县中心纬度
// double center_longitude = 105.24189826141459; // 区县中心经度
// 注意:百度官方发布的城市中心点坐标是经度在前、纬度在后,必须对调才行,否则无法正确显示指定城市的地图
// BMFCoordinate BMFCoordinate(double latitude (纬度), double longitude (经度)) //中国领域一般经度大些
// center: BMFCoordinate(28.77914, 104.644079), //宜宾市翠屏白塔山
// 在点位地图中点击某个标注,在控制台会显示该标注的纬度和经度
// 兴文县中心位置:I/flutter (12538): mapPoi = {text: 半岛和居, pt: {latitude: 28.29678023715008, longitude: 105.24189826141459}, uid: b9e39ee2e8304f872fe67bcf}
// 兴文县5个点位坐标
// 序号 选址位置 车道数量 经纬度 用途
// 1 古高路骨科医院附近 双向6车道 105.19762 28.334613 抓拍自长宁、江安、珙县方向和古宜高速入城黑烟车辆
// 2 高铁站附近 双向4车道 105.239899 28.337284 抓拍自泸州纳溪区方向入城黑烟车辆
// 3 大礼村附近 双向2车道 105.270567 28.285734 抓拍自泸州叙永县方向入城黑烟车辆
// 4 石海收费站附近 双向4车道 105.251038 28.287758 抓拍自古宜高速入城黑烟车辆
// 5 温水溪加油站附近 双向2车道 105.246259 28.286645 抓拍自云南威信县方向入城黑烟车辆
// 4、全局替换,将 ”hyzp_ybqx“全部替换为 ”hyzp_ybqx“,自动完成以下修改
// (1)、修改 R:\FlutterProject\FlutterProject51-hyzp_ybqx\hyzp_ybqx\pubspec.yaml 文件中的AppID,但存放目錄不變
// name: hyzp_ybqx
// (2)、全局替换:
// A、将 “com.flutter.hyzp_ybqx00_yibin” 全部替换为 “com.flutter.hyzp_ybqx”
// B、将 “package:hyzp_ybqx00_yibin/” 全部替换为 “package:hyzp_ybqx/”
// C、将 “# hyzp_ybqx00_yibin” 全部替换为 “# hyzp_ybqx”
// D、将 “hyzp_ybqx00_yibin” 全部替换为 “hyzp_ybqx”
// 5、完成以上修改后,打开 Android Studio 的终端窗口,切换到项目的 lib 目录下,运行 flutter clean
// 6、重新编译运行App
// end hyzp_ybqx-Commit022-区县切换新方法-OK
////////////////////////////////////////////
//LED字幕信息
//String g_ledMessage = '绿水青山就是金山银山 宜宾市翠屏生态环境局宣。';
// 是否已经调用 FlutterDownloader.initialize(debug: true)
bool bFlutterDownloader_initialize = false;
bool bNewVer = false; //是否发现新版本
//处理延时登录,判断从网络获取三种统计数据是否完成
bool bMayLogin = true;
//处理延时登录,判断是否已经点击登录按钮
bool bPreLoading = false;
//处理延时登录,判断用户名登录是否验证通过
bool bLoginVerify = false;
bool bHasMore = true;
//part library
//dart中,通过使用part、part of、library来实现拆分库,这样,就可以将一个庞大的库拆分成各种小库,只要引用主库即可
//点位总数
int dwSum = -1;
Size sizeWindowPhysicalSize;
//String dateAppCompile = '2020.12.30'; //1.0.1+1
//String dateAppCompile = '2021.02.20'; //1.2.5+1
//String dateAppCompile = '2021.03.18'; //1.2.6+1
//String dateAppCompile = '2021.05.18'; //1.2.7
List g_list = [];
//正在获取点位视频标志,禁止重入
bool getingDwVideo = false;
int getCount = 1; //获取点位视频地址尝试次数
int getSumTime = 0; //获取点位视频地址耗时(秒)
int getingIndex = -1; //正在获取视频的点位的索引号
String getingDwmc = ''; //正在获取视频的点位名称
String urlnew =
"http://www.yibinu.edu.cn/__local/5/35/DF/264049B7E978EEE2F5849688986_05D4A6FE_152CDB8C.mp4?e=.mp4";
bool isVideoUrl(String url, {bool showToast = false}) {
print('url = $url');
if (0 == url.length) {
return false;
}
String prefix = url.substring(0, 4);
List list = ['http', 'rtmp', 'rstp'];
for (String item in list) {
if (prefix == item) {
return true;
}
}
if (showToast) {
Fluttertoast.showToast(
msg: '获取视频地址失败',
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.CENTER,
);
}
return false;
}
final TextEditingController myController = TextEditingController();
bool Playing = false; //禁止同时启动两次播放器
//final FijkPlayer player = FijkPlayer();
int g_iIndex = 0;
PlayerRegionProvide playerRegionProvide;
Future sysPop() async {
// currentPos = player.currentPos.inMilliseconds; //seekto方法的参数是毫秒
// await writeCurrentPosFile();
// await player.stop();
await SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
//人脸注册和人脸识别登录成功标志
int faceReg = -1; //1 成功,0 失败,-1 处理中
int faceLogin = -1; //1 成功,0 失败,-1 处理中
//人脸注册时所需用户ID
int faceRegUserID = -1; //人脸注册时所需用户ID,-1 非法
List cameras;
List g_users = new List(); //历史账号
bool g_can_expand_ListView = false; //是否能够打开历史账号
UserInfo g_userInfo = UserInfo(mapUserInfoRet: {
"ret": 200,
"data": {
"is_login": true,
"user_id": 152,
"token": "959091E2A5E362E22F22F8DBE05737A95545A43AF28B19AB3DAD5F8557EE2E29",
"qx_code": "511528",
"qx_name": "兴文县",
"sfsy": 0, //区县用户登录接口增加返回字段“sfsy”,0表示正式账号,1表示试用账号
},
"msg": ""
});
// 去除末尾的区县
String trim_county(String _name) {
return _name.substring(0, _name.length - 1);
}
Future