app-starlock/lib/app_settings/app_settings.dart

134 lines
3.0 KiB
Dart
Raw Permalink Normal View History

2023-07-10 17:50:31 +08:00
import 'dart:io';
2024-08-20 09:53:39 +08:00
import 'package:flutter/foundation.dart';
import 'package:get/get.dart';
import 'package:star_lock/mine/about/debug/debug_console.dart';
2023-07-10 17:50:31 +08:00
class AppLog {
static bool _printLog = false;
static bool _onlyError = false;
2024-05-18 14:57:02 +08:00
static void showLog({required bool printLog, bool? onlyError}) {
2024-04-28 09:45:16 +08:00
_printLog = printLog;
2023-07-10 17:50:31 +08:00
_onlyError = onlyError ?? false;
}
2024-05-18 14:57:02 +08:00
static void log(String msg, {StackTrace? stackTrace, bool? error}) {
msg = '${DateTime.now().toIso8601String()} : $msg';
2024-05-18 14:57:02 +08:00
DebugConsole.info(msg, stackTrace: stackTrace, isErr: error ?? false);
if (!kDebugMode) {
return;
}
2023-07-10 17:50:31 +08:00
error = error ?? false;
2024-04-26 15:38:59 +08:00
// if(!_printLog)return;
// if(_onlyError && !error) return;
2024-05-18 14:57:02 +08:00
if (error) {
2024-05-18 18:25:39 +08:00
final bool stackTraceIsNull = stackTrace != null;
msg = '----->>> $msg ${stackTraceIsNull ? '\n$stackTrace' : ''}';
2023-07-10 17:50:31 +08:00
}
2024-04-30 16:16:06 +08:00
Get.log(msg);
2023-07-10 17:50:31 +08:00
}
}
class AppPlatform {
2024-05-18 14:57:02 +08:00
static bool isIOS = Platform.isIOS;
static bool isAndroid = Platform.isAndroid;
static String platformString() {
2023-07-10 17:50:31 +08:00
String name = 'unknown';
2024-05-18 14:57:02 +08:00
if (isIOS) {
2023-07-10 17:50:31 +08:00
name = 'iOS';
}
2024-05-18 14:57:02 +08:00
if (isAndroid) {
2023-07-10 17:50:31 +08:00
name = 'Android';
}
return name;
}
static String _brand = 'unknown';
static int _sdkInt = 23;
2024-05-18 14:57:02 +08:00
static void setBrandString(String brand) {
2023-07-10 17:50:31 +08:00
_brand = brand;
}
2024-05-18 14:57:02 +08:00
static String getBrandString() => _brand;
static void setSDKInt(int sdkInt) {
2023-07-10 17:50:31 +08:00
_sdkInt = sdkInt;
}
2024-05-18 14:57:02 +08:00
static bool isSamsung() => _brand.toLowerCase().contains('samsung');
static int getSdkIntValue() => _sdkInt;
static bool onlyCanNetUpgrade() => isSamsung() && (getSdkIntValue() >= 29);
2023-07-10 17:50:31 +08:00
}
class AppMowerCodes {
2024-05-18 14:57:02 +08:00
static int idCodeLength() {
2023-07-10 17:50:31 +08:00
int len = 19;
return len;
}
2024-05-18 14:57:02 +08:00
2023-07-10 17:50:31 +08:00
static int fenceNameLength = 8;
static int registerCodeLength = 4;
}
class AppDate {
static String dateString() {
2024-05-18 14:57:02 +08:00
return '${year()}-${month().toString().padLeft(2, '0')}-${day().toString().padLeft(2, '0')}';
2023-07-10 17:50:31 +08:00
}
static String calendarString() {
2024-05-18 14:57:02 +08:00
String temp =
'${year()}${month().toString().padLeft(2, '0')}${day().toString().padLeft(2, '0')}${hour().toString().padLeft(2, '0')}${second().toString().padLeft(2, '0')}';
2023-07-10 17:50:31 +08:00
return temp;
}
2024-05-18 14:57:02 +08:00
static int year() => DateTime.now().year;
static int month() => DateTime.now().month;
2023-07-10 17:50:31 +08:00
2024-05-18 14:57:02 +08:00
static int day() => DateTime.now().day;
static int hour() => DateTime.now().hour;
static int minute() => DateTime.now().minute;
static int second() => DateTime.now().second;
static int weekDay() => DateTime.now().weekday;
static int timeZeroOffset() => DateTime.now().timeZoneOffset.inHours;
2023-07-10 17:50:31 +08:00
}
2024-08-20 09:53:39 +08:00
// 错误类型
2023-07-10 17:50:31 +08:00
enum ErrorType {
modeNotMatch,
notConnected,
mqttNotConnect,
timeOut,
}
class AppErrorCode {
2024-05-18 14:57:02 +08:00
static int errorCode(ErrorType type) {
2023-07-10 17:50:31 +08:00
int code = 0;
2024-05-18 14:57:02 +08:00
switch (type) {
2023-07-10 17:50:31 +08:00
case ErrorType.modeNotMatch:
code = 1;
break;
case ErrorType.notConnected:
code = 2;
break;
case ErrorType.mqttNotConnect:
code = 3;
break;
case ErrorType.timeOut:
code = 4;
break;
}
return code;
}
}