update dio to dio: ^5.5.0+1

update  dio to  dio: ^5.5.0+1
This commit is contained in:
Zeus
2024-07-24 11:12:17 +08:00
parent 22ff62e567
commit 876d355b18
64 changed files with 596 additions and 299 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
import 'package:flutter/services.dart';
import 'package:sail/channels/Platform.dart';
import 'package:sail/utils/common_util.dart';
import 'package:uuvpn/channels/Platform.dart';
import 'package:uuvpn/utils/common_util.dart';
enum VpnStatus {
connected(code: 2),
+1 -1
View File
@@ -1,5 +1,5 @@
/*后台接口api*/
import 'package:sail/common/public.dart';
import 'package:uuvpn/common/public.dart';
class Apis {
static String appid = "IPOSih2134KHJKLDIO";
+5 -5
View File
@@ -1,6 +1,6 @@
import 'dart:async';
import 'package:dio/dio.dart';
import 'package:sail/common/public.dart';
import 'package:uuvpn/common/public.dart';
import 'error_interceptor.dart';
class Http {
@@ -19,9 +19,9 @@ class Http {
if (dio == null) {
// BaseOptions、Options、RequestOptions 都可以配置参数,优先级别依次递增,且可以根据优先级别覆盖参数
BaseOptions options = new BaseOptions(
connectTimeout: CONNECT_TIMEOUT,
connectTimeout: Duration(seconds: CONNECT_TIMEOUT),
// 响应流上前后两次接受到数据的间隔,单位为毫秒。
receiveTimeout: RECEIVE_TIMEOUT,
receiveTimeout: Duration(seconds: RECEIVE_TIMEOUT),
headers: {},
);
if (options.contentType != null &&
@@ -64,8 +64,8 @@ class Http {
List<Interceptor>? interceptors}) {
dio!.options = dio!.options.copyWith(
baseUrl: baseUrl,
connectTimeout: connectTimeout,
receiveTimeout: receiveTimeout,
connectTimeout: Duration(seconds: connectTimeout ?? 0),
receiveTimeout: Duration(seconds: receiveTimeout ?? 0),
);
if (interceptors != null && interceptors.isNotEmpty) {
dio!.interceptors.addAll(interceptors);
+4 -4
View File
@@ -14,9 +14,9 @@ class DioHttpException implements Exception {
return "$code$message";
}
factory DioHttpException.create(DioError error) {
factory DioHttpException.create(DioException error) {
switch (error.type) {
case DioErrorType.other:
case DioExceptionType.unknown:
{
// 网络异常
return BadRequestException(-2, "无网络");
@@ -27,7 +27,7 @@ class DioHttpException implements Exception {
return BadRequestException(-1, "请求取消");
}
case DioErrorType.connectTimeout:
case DioErrorType.connectionTimeout:
{
return BadRequestException(-1, "连接超时");
}
@@ -42,7 +42,7 @@ class DioHttpException implements Exception {
return BadRequestException(-1, "响应超时");
}
case DioErrorType.response:
case DioErrorType.badResponse:
{
try {
int? errCode = error.response!.statusCode;
+9 -9
View File
@@ -3,16 +3,16 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart' as services;
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:provider/provider.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/plan_model.dart';
import 'package:sail/models/server_model.dart';
import 'package:sail/models/user_subscribe_model.dart';
import 'package:sail/router/application.dart';
import 'package:sail/router/routers.dart';
import 'package:sail/models/user_model.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/plan_model.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:uuvpn/models/user_subscribe_model.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/router/routers.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'model/UserPreference.dart';
+1 -1
View File
@@ -1,6 +1,6 @@
// ignore_for_file: file_names
import 'package:flutter/material.dart';
import 'package:sail/resources/app_theme.dart';
import 'package:uuvpn/resources/app_theme.dart';
class ThemeCollection extends ChangeNotifier {
/// _colorSwatch method or function take RGB color as argument and after processing
+13 -13
View File
@@ -1,14 +1,14 @@
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:sail/adapters/leaf_ffi/config.dart';
import 'package:sail/channels/Platform.dart';
import 'package:sail/channels/vpn_manager.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:sail/models/base_model.dart';
import 'package:sail/models/server_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/utils/common_util.dart';
import 'package:uuvpn/adapters/leaf_ffi/config.dart';
import 'package:uuvpn/channels/Platform.dart';
import 'package:uuvpn/channels/vpn_manager.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:uuvpn/models/base_model.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/utils/common_util.dart';
class AppModel extends BaseModel {
VpnManager vpnManager = VpnManager();
@@ -174,17 +174,17 @@ class AppModel extends BaseModel {
void setConfigRule(String tag) async {
var proxy = config.proxies?.where((proxies) => proxies.tag == tag);
if (proxy == null || proxy.isEmpty) {
return;
}
config.rules?.last.target = tag;
print("-----------------config-----------------");
print(config);
print("-----------------config-----------------");
vpnManager.setTunnelConfiguration(config.toString());
}
}
+2 -2
View File
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:sail/models/page_state.dart';
import 'package:sail/utils/common_util.dart';
import 'package:uuvpn/models/page_state.dart';
import 'package:uuvpn/utils/common_util.dart';
class BaseModel extends ChangeNotifier {
PageState pageState = PageState.loading;
+3 -3
View File
@@ -1,6 +1,6 @@
import 'package:sail/models/base_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/service/user_service.dart';
import 'package:uuvpn/models/base_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/service/user_service.dart';
class LoginModel extends BaseModel {
final UserService _userService = UserService();
+3 -3
View File
@@ -1,6 +1,6 @@
import 'package:sail/entity/plan_entity.dart';
import 'package:sail/models/base_model.dart';
import 'package:sail/service/plan_service.dart';
import 'package:uuvpn/entity/plan_entity.dart';
import 'package:uuvpn/models/base_model.dart';
import 'package:uuvpn/service/plan_service.dart';
class PlanModel extends BaseModel {
final PlanService _planService = PlanService();
+6 -6
View File
@@ -2,12 +2,12 @@ import 'dart:convert';
import 'dart:io';
import 'package:flutter_icmp_ping/flutter_icmp_ping.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:sail/entity/server_entity.dart';
import 'package:sail/models/base_model.dart';
import 'package:sail/service/server_service.dart';
import 'package:sail/utils/shared_preferences_util.dart';
import 'package:sail/utils/common_util.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:uuvpn/entity/server_entity.dart';
import 'package:uuvpn/models/base_model.dart';
import 'package:uuvpn/service/server_service.dart';
import 'package:uuvpn/utils/shared_preferences_util.dart';
import 'package:uuvpn/utils/common_util.dart';
enum PingType { ping, tcp }
+6 -6
View File
@@ -1,9 +1,9 @@
import 'package:sail/constant/app_strings.dart';
import 'package:sail/entity/login_entity.dart';
import 'package:sail/entity/user_entity.dart';
import 'package:sail/models/base_model.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:sail/utils/shared_preferences_util.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:uuvpn/entity/login_entity.dart';
import 'package:uuvpn/entity/user_entity.dart';
import 'package:uuvpn/models/base_model.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:uuvpn/utils/shared_preferences_util.dart';
import 'package:shared_preferences/shared_preferences.dart';
class UserModel extends BaseModel {
+5 -5
View File
@@ -1,8 +1,8 @@
import 'package:sail/constant/app_strings.dart';
import 'package:sail/entity/user_subscribe_entity.dart';
import 'package:sail/models/base_model.dart';
import 'package:sail/service/user_service.dart';
import 'package:sail/utils/shared_preferences_util.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:uuvpn/entity/user_subscribe_entity.dart';
import 'package:uuvpn/models/base_model.dart';
import 'package:uuvpn/service/user_service.dart';
import 'package:uuvpn/utils/shared_preferences_util.dart';
class UserSubscribeModel extends BaseModel {
UserSubscribeEntity? _userSubscribeEntity;
+2 -3
View File
@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:sail/constant/app_images.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:uuvpn/constant/app_images.dart';
import 'package:uuvpn/constant/app_strings.dart';
class NotFindPage extends StatelessWidget {
const NotFindPage({Key? key}) : super(key: key);
+3 -3
View File
@@ -1,8 +1,8 @@
//ProOnecePage.dart
//ignore_for_file: file_names
import 'package:sail/constant/app_colors.dart';
import 'package:sail/router/application.dart';
import 'package:sail/utils/l10n.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/utils/l10n.dart';
import '/model/themeCollection.dart';
import 'package:flutter/material.dart';
+10 -10
View File
@@ -1,16 +1,16 @@
//ignore_for_file: file_names
import 'package:flutter/cupertino.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/plan_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/models/user_subscribe_model.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:sail/widgets/logo_bar.dart';
import 'package:sail/widgets/my_subscribe.dart';
import 'package:sail/widgets/plan_list.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/plan_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/models/user_subscribe_model.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:uuvpn/widgets/logo_bar.dart';
import 'package:uuvpn/widgets/my_subscribe.dart';
import 'package:uuvpn/widgets/plan_list.dart';
import '/routes/proRoute.dart';
import '/routes/settingsRoute.dart';
+1 -1
View File
@@ -1,6 +1,6 @@
import 'package:crisp/crisp.dart';
import 'package:flutter/widgets.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:uuvpn/constant/app_strings.dart';
class CrispPage extends StatefulWidget {
const CrispPage({Key? key}) : super(key: key);
+25 -25
View File
@@ -5,31 +5,31 @@ import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/constant/app_dimens.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/plan_model.dart';
import 'package:sail/models/server_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/models/user_subscribe_model.dart';
import 'package:sail/pages/accountPage.dart';
import 'package:sail/pages/homePage.dart';
import 'package:sail/pages/my_profile.dart';
import 'package:sail/pages/plan/plan_page.dart';
import 'package:sail/pages/proPage.dart';
import 'package:sail/pages/server_list.dart';
import 'package:sail/router/application.dart';
import 'package:sail/routes/OnceNotice.dart';
import 'package:sail/routes/proRoute.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/message_util.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:sail/widgets/ProgressView.dart';
import 'package:sail/widgets/home_widget.dart';
import 'package:sail/widgets/power_btn.dart';
import 'package:sail/widgets/sail_app_bar.dart';
import 'package:sail/utils/common_util.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/constant/app_dimens.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/plan_model.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/models/user_subscribe_model.dart';
import 'package:uuvpn/pages/accountPage.dart';
import 'package:uuvpn/pages/homePage.dart';
import 'package:uuvpn/pages/my_profile.dart';
import 'package:uuvpn/pages/plan/plan_page.dart';
import 'package:uuvpn/pages/proPage.dart';
import 'package:uuvpn/pages/server_list.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/routes/OnceNotice.dart';
import 'package:uuvpn/routes/proRoute.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/message_util.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:uuvpn/widgets/ProgressView.dart';
import 'package:uuvpn/widgets/home_widget.dart';
import 'package:uuvpn/widgets/power_btn.dart';
import 'package:uuvpn/widgets/sail_app_bar.dart';
import 'package:uuvpn/utils/common_util.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:url_launcher/url_launcher.dart';
+8 -8
View File
@@ -2,14 +2,14 @@ import 'package:flutter/material.dart';
import 'package:flutter_login/flutter_login.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/login_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/router/application.dart';
import 'package:sail/service/user_service.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/login_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/service/user_service.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:uuvpn/constant/app_strings.dart';
class LoginPage extends StatefulWidget {
const LoginPage({Key? key}) : super(key: key);
+6 -6
View File
@@ -2,12 +2,12 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/service/user_service.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:sail/widgets/bottom_block.dart';
import 'package:sail/widgets/profile_widget.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/service/user_service.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:uuvpn/widgets/bottom_block.dart';
import 'package:uuvpn/widgets/profile_widget.dart';
class MyProfile extends StatefulWidget {
const MyProfile({Key? key}) : super(key: key);
+1 -1
View File
@@ -1,4 +1,4 @@
import 'package:sail/widgets/sliding_cards.dart';
import 'package:uuvpn/widgets/sliding_cards.dart';
import 'package:flutter/material.dart';
class PlanPage extends StatelessWidget {
+3 -3
View File
@@ -1,8 +1,8 @@
//ignore_for_file: file_names
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/router/application.dart';
import 'package:sail/utils/l10n.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/utils/l10n.dart';
import '/model/themeCollection.dart';
import 'package:flutter/material.dart';
+6 -6
View File
@@ -2,13 +2,13 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:modal_bottom_sheet/modal_bottom_sheet.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/server_model.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:flutter/material.dart';
import 'package:sail/utils/common_util.dart';
import 'package:sail/utils/l10n.dart';
import 'package:uuvpn/utils/common_util.dart';
import 'package:uuvpn/utils/l10n.dart';
class ServerListPage extends StatefulWidget {
const ServerListPage({Key? key}) : super(key: key);
+3 -2
View File
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebViewWidget extends StatefulWidget {
@@ -37,7 +37,8 @@ class WebViewWidgetState extends State<WebViewWidget> {
centerTitle: true,
),
body: WebView(
initialUrl: widget.url?.isEmpty == true ? AppStrings.appName : widget.url,
initialUrl:
widget.url?.isEmpty == true ? AppStrings.appName : widget.url,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller) => this.controller = controller,
onPageFinished: (url) {
+2 -2
View File
@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:sail/resources/app_colors.dart';
import 'package:sail/resources/app_typography.dart';
import 'package:uuvpn/resources/app_colors.dart';
import 'package:uuvpn/resources/app_typography.dart';
ThemeData getApplicationTheme() {
return ThemeData(
+1 -1
View File
@@ -1,7 +1,7 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:sail/utils/l10n.dart';
import 'package:uuvpn/utils/l10n.dart';
class Application {
static FluroRouter? router;
+7 -7
View File
@@ -1,12 +1,12 @@
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:sail/pages/accountPage.dart';
import 'package:sail/pages/home/home_page.dart';
import 'package:sail/pages/404/not_find_page.dart';
import 'package:sail/pages/login/login_page.dart';
import 'package:sail/pages/plan/plan_page.dart';
import 'package:sail/pages/server_list.dart';
import 'package:sail/pages/webview_widget.dart';
import 'package:uuvpn/pages/accountPage.dart';
import 'package:uuvpn/pages/home/home_page.dart';
import 'package:uuvpn/pages/404/not_find_page.dart';
import 'package:uuvpn/pages/login/login_page.dart';
import 'package:uuvpn/pages/plan/plan_page.dart';
import 'package:uuvpn/pages/server_list.dart';
import 'package:uuvpn/pages/webview_widget.dart';
import 'dart:convert';
/// 入口
+1 -1
View File
@@ -1,5 +1,5 @@
import 'package:fluro/fluro.dart';
import 'package:sail/router/router_handlers.dart';
import 'package:uuvpn/router/router_handlers.dart';
class Routers {
static String home = "/";
+1 -1
View File
@@ -1,6 +1,6 @@
// OnceNotice.dart
//ignore_for_file: file_names
import 'package:sail/pages/ProOnecePage.dart';
import 'package:uuvpn/pages/ProOnecePage.dart';
import '/pages/proPage.dart';
import 'package:flutter/material.dart';
+4 -4
View File
@@ -1,8 +1,8 @@
//ignore_for_file: file_names
import 'package:sail/constant/app_colors.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/routes/proRoute.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/routes/proRoute.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:url_launcher/url_launcher.dart';
import '../model/themeCollection.dart';
+5 -4
View File
@@ -1,6 +1,6 @@
import 'package:sail/constant/app_urls.dart';
import 'package:sail/entity/plan_entity.dart';
import 'package:sail/utils/http_util.dart';
import 'package:uuvpn/constant/app_urls.dart';
import 'package:uuvpn/entity/plan_entity.dart';
import 'package:uuvpn/utils/http_util.dart';
class PlanService {
Future<List<PlanEntity>>? plan() {
@@ -10,7 +10,8 @@ class PlanService {
}
Future<PlanEntity>? planDetail(int id) {
return HttpUtil.instance?.get(AppUrls.plan, parameters: {'id': id}).then((result) {
return HttpUtil.instance
?.get(AppUrls.plan, parameters: {'id': id}).then((result) {
return PlanEntity.fromMap(result['data']);
});
}
+3 -3
View File
@@ -1,6 +1,6 @@
import 'package:sail/constant/app_urls.dart';
import 'package:sail/entity/server_entity.dart';
import 'package:sail/utils/http_util.dart';
import 'package:uuvpn/constant/app_urls.dart';
import 'package:uuvpn/entity/server_entity.dart';
import 'package:uuvpn/utils/http_util.dart';
class ServerService {
Future<List<ServerEntity>> server() {
+5 -5
View File
@@ -1,8 +1,8 @@
import 'package:sail/constant/app_urls.dart';
import 'package:sail/entity/login_entity.dart';
import 'package:sail/entity/user_entity.dart';
import 'package:sail/entity/user_subscribe_entity.dart';
import 'package:sail/utils/http_util.dart';
import 'package:uuvpn/constant/app_urls.dart';
import 'package:uuvpn/entity/login_entity.dart';
import 'package:uuvpn/entity/user_entity.dart';
import 'package:uuvpn/entity/user_subscribe_entity.dart';
import 'package:uuvpn/utils/http_util.dart';
class UserService {
Future<LoginEntity>? login(Map<String, dynamic> parameters) {
+9 -9
View File
@@ -1,9 +1,9 @@
import 'package:dio/dio.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:sail/router/application.dart';
import 'package:sail/router/routers.dart';
import 'package:sail/utils/common_util.dart';
import 'package:sail/utils/shared_preferences_util.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/router/routers.dart';
import 'package:uuvpn/utils/common_util.dart';
import 'package:uuvpn/utils/shared_preferences_util.dart';
class HttpUtil {
static HttpUtil get instance => _httpUtil;
@@ -12,8 +12,8 @@ class HttpUtil {
HttpUtil() {
BaseOptions options = BaseOptions(
connectTimeout: 10000,
receiveTimeout: 10000,
connectTimeout: Duration(seconds: 10000),
receiveTimeout: Duration(seconds: 10000),
);
dio = Dio(options);
dio.interceptors
@@ -53,10 +53,10 @@ class HttpUtil {
Application.navigatorKey.currentState?.pushNamed(Routers.login);
}
return handler.reject(DioError(
return handler.reject(DioException(
requestOptions: response.requestOptions,
response: response,
type: DioErrorType.response));
type: DioExceptionType.badResponse));
}
return handler.next(response);
+6 -6
View File
@@ -4,12 +4,12 @@ import 'package:fluro/fluro.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:modal_bottom_sheet/modal_bottom_sheet.dart';
import 'package:sail/pages/accountPage.dart';
import 'package:sail/pages/crisp_page.dart';
import 'package:sail/pages/plan/plan_page.dart';
import 'package:sail/pages/server_list.dart';
import 'package:sail/router/application.dart';
import 'package:sail/router/routers.dart';
import 'package:uuvpn/pages/accountPage.dart';
import 'package:uuvpn/pages/crisp_page.dart';
import 'package:uuvpn/pages/plan/plan_page.dart';
import 'package:uuvpn/pages/server_list.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/router/routers.dart';
class NavigatorUtil {
static goHomePage(BuildContext context) {
+4 -4
View File
@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
// import 'package:sail/go_router.dart';
// import 'package:uuvpn/go_router.dart';
import 'package:intl/intl.dart';
import 'package:sail/resources/app_colors.dart';
import 'package:sail/resources/app_routes.dart';
import 'package:sail/resources/app_values.dart';
import 'package:uuvpn/resources/app_colors.dart';
import 'package:uuvpn/resources/app_routes.dart';
import 'package:uuvpn/resources/app_values.dart';
String getDate(String? date) {
if (date == null || date.isEmpty) {
+1 -1
View File
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:uuvpn/constant/app_colors.dart';
class ProgressView extends StatelessWidget {
const ProgressView({Key? key}) : super(key: key);
+8 -8
View File
@@ -1,14 +1,14 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:sail/channels/Platform.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/server_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:uuvpn/channels/Platform.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
class ConnectionStats extends StatefulWidget {
const ConnectionStats({Key? key}) : super(key: key);
+18 -18
View File
@@ -2,24 +2,24 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/plan_model.dart';
import 'package:sail/models/server_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/models/user_subscribe_model.dart';
import 'package:sail/resources/app_colors.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/widgets/bottom_block.dart';
import 'package:sail/widgets/connection_stats.dart';
import 'package:sail/widgets/logo_bar.dart';
import 'package:sail/widgets/my_subscribe.dart';
import 'package:sail/widgets/plan_list.dart';
import 'package:sail/widgets/power_btn.dart';
import 'package:sail/widgets/select_location.dart';
import 'package:sail/utils/common_util.dart';
import 'package:sail/widgets/watermuticicel.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/plan_model.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/models/user_subscribe_model.dart';
import 'package:uuvpn/resources/app_colors.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/widgets/bottom_block.dart';
import 'package:uuvpn/widgets/connection_stats.dart';
import 'package:uuvpn/widgets/logo_bar.dart';
import 'package:uuvpn/widgets/my_subscribe.dart';
import 'package:uuvpn/widgets/plan_list.dart';
import 'package:uuvpn/widgets/power_btn.dart';
import 'package:uuvpn/widgets/select_location.dart';
import 'package:uuvpn/utils/common_util.dart';
import 'package:uuvpn/widgets/watermuticicel.dart';
class HomeWidget extends StatefulWidget {
const HomeWidget({Key? key}) : super(key: key);
+7 -7
View File
@@ -2,13 +2,13 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/constant/app_strings.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/models/user_subscribe_model.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/constant/app_strings.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/models/user_subscribe_model.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
class LogoBar extends StatelessWidget {
const LogoBar({
+10 -10
View File
@@ -3,16 +3,16 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/entity/user_subscribe_entity.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/router/application.dart';
import 'package:sail/routes/OnceNotice.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:sail/utils/transfer_util.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/entity/user_subscribe_entity.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/router/application.dart';
import 'package:uuvpn/routes/OnceNotice.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:uuvpn/utils/transfer_util.dart';
class MySubscribe extends StatefulWidget {
const MySubscribe(
+6 -6
View File
@@ -1,12 +1,12 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/entity/plan_entity.dart';
import 'package:sail/entity/user_subscribe_entity.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/entity/plan_entity.dart';
import 'package:uuvpn/entity/user_subscribe_entity.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
class PlanList extends StatefulWidget {
const PlanList(
+10 -10
View File
@@ -2,16 +2,16 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/app_model.dart';
import 'package:sail/models/server_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/message_util.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:sail/widgets/watermuticicel.dart';
import 'package:sail/widgets/waterrepper.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/app_model.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/message_util.dart';
import 'package:uuvpn/utils/navigator_util.dart';
import 'package:uuvpn/widgets/watermuticicel.dart';
import 'package:uuvpn/widgets/waterrepper.dart';
class PowerButton extends StatefulWidget {
const PowerButton({Key? key}) : super(key: key);
@@ -3,7 +3,7 @@ import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:uuvpn/constant/app_colors.dart';
double minHeight = ScreenUtil().setHeight(260);
const double iconStartSize = 44;
@@ -17,15 +17,19 @@ class RecentConnectionBottomSheet extends StatefulWidget {
const RecentConnectionBottomSheet({Key? key}) : super(key: key);
@override
RecentConnectionBottomSheetState createState() => RecentConnectionBottomSheetState();
RecentConnectionBottomSheetState createState() =>
RecentConnectionBottomSheetState();
}
class RecentConnectionBottomSheetState extends State<RecentConnectionBottomSheet> with SingleTickerProviderStateMixin {
class RecentConnectionBottomSheetState
extends State<RecentConnectionBottomSheet>
with SingleTickerProviderStateMixin {
late AnimationController _controller;
double get maxHeight => MediaQuery.of(context).size.height;
double? get headerTopMargin => lerp(20, 20 + MediaQuery.of(context).padding.top);
double? get headerTopMargin =>
lerp(20, 20 + MediaQuery.of(context).padding.top);
double? get headerFontSize => lerp(14, 24);
@@ -38,9 +42,12 @@ class RecentConnectionBottomSheetState extends State<RecentConnectionBottomSheet
double? get iconSize => lerp(iconStartSize, iconEndSize);
double? iconTopMargin(int index) =>
lerp(iconStartMarginTop, iconEndMarginTop + index * (iconsVerticalSpacing + iconEndSize))! + headerTopMargin!;
lerp(iconStartMarginTop,
iconEndMarginTop + index * (iconsVerticalSpacing + iconEndSize))! +
headerTopMargin!;
double? iconLeftMargin(int index) => lerp(index * (iconsHorizontalSpacing + iconStartSize), 0);
double? iconLeftMargin(int index) =>
lerp(index * (iconsHorizontalSpacing + iconStartSize), 0);
@override
void initState() {
@@ -57,7 +64,8 @@ class RecentConnectionBottomSheetState extends State<RecentConnectionBottomSheet
super.dispose();
}
double? lerp(double min, double max) => lerpDouble(min, max, _controller.value);
double? lerp(double min, double max) =>
lerpDouble(min, max, _controller.value);
@override
Widget build(BuildContext context) {
@@ -77,7 +85,9 @@ class RecentConnectionBottomSheetState extends State<RecentConnectionBottomSheet
padding: const EdgeInsets.symmetric(horizontal: 32),
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [AppColors.themeColor, Colors.pink], begin: Alignment.topLeft, end: Alignment.bottomRight),
colors: [AppColors.themeColor, Colors.pink],
begin: Alignment.topLeft,
end: Alignment.bottomRight),
borderRadius: BorderRadius.vertical(top: Radius.circular(32)),
),
child: Stack(
@@ -142,9 +152,11 @@ class RecentConnectionBottomSheetState extends State<RecentConnectionBottomSheet
}
void _handleDragEnd(DragEndDetails details) {
if (_controller.isAnimating || _controller.status == AnimationStatus.completed) return;
if (_controller.isAnimating ||
_controller.status == AnimationStatus.completed) return;
final double flingVelocity = details.velocity.pixelsPerSecond.dy / maxHeight;
final double flingVelocity =
details.velocity.pixelsPerSecond.dy / maxHeight;
if (flingVelocity < 0.0) {
_controller.fling(velocity: math.max(2.0, -flingVelocity));
} else if (flingVelocity > 0.0) {
@@ -256,7 +268,8 @@ class SheetHeader extends StatelessWidget {
final double? fontSize;
final double? topMargin;
const SheetHeader({Key? key, required this.fontSize, required this.topMargin}) : super(key: key);
const SheetHeader({Key? key, required this.fontSize, required this.topMargin})
: super(key: key);
@override
Widget build(BuildContext context) {
+8 -7
View File
@@ -1,11 +1,10 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/models/app_model.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/models/app_model.dart';
class SailAppBar extends AppBar {
SailAppBar({Key? key, required this.appTitle})
: super(key: key);
SailAppBar({Key? key, required this.appTitle}) : super(key: key);
final String appTitle;
@@ -27,10 +26,12 @@ class SailAppBarState extends State<SailAppBar> {
return AppBar(
title: Text(
widget.appTitle,
style: TextStyle(color: _appModel.isOn ? Colors.black : Colors.white, fontWeight: FontWeight.w900),
style: TextStyle(
color: _appModel.isOn ? Colors.black : Colors.white,
fontWeight: FontWeight.w900),
),
elevation: 0,
backgroundColor: _appModel.isOn ? AppColors.yellowColor : AppColors.grayColor
);
backgroundColor:
_appModel.isOn ? AppColors.yellowColor : AppColors.grayColor);
}
}
+6 -6
View File
@@ -1,12 +1,12 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:sail/constant/app_colors.dart';
import 'package:sail/model/themeCollection.dart';
import 'package:sail/models/server_model.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/utils/l10n.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:uuvpn/constant/app_colors.dart';
import 'package:uuvpn/model/themeCollection.dart';
import 'package:uuvpn/models/server_model.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/utils/l10n.dart';
import 'package:uuvpn/utils/navigator_util.dart';
class SelectLocation extends StatefulWidget {
const SelectLocation({
+5 -5
View File
@@ -3,11 +3,11 @@ import 'dart:math' as math;
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
import 'package:sail/entity/plan_entity.dart';
import 'package:sail/models/user_model.dart';
import 'package:sail/service/plan_service.dart';
import 'package:sail/service/user_service.dart';
import 'package:sail/utils/navigator_util.dart';
import 'package:uuvpn/entity/plan_entity.dart';
import 'package:uuvpn/models/user_model.dart';
import 'package:uuvpn/service/plan_service.dart';
import 'package:uuvpn/service/user_service.dart';
import 'package:uuvpn/utils/navigator_util.dart';
class SlidingCardsView extends StatefulWidget {
const SlidingCardsView({Key? key}) : super(key: key);