feat: mobile-like window size and always-visible stats
- Changed window size to mobile phone format (400x800) - Removed width condition for ActiveProxyFooter - now always visible - Added run-umbrix.sh launch script with icon copying - Stats cards now display on all screen sizes
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:hiddify/utils/text_utils.dart';
|
||||
import 'package:umbrix/utils/text_utils.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
|
||||
class CustomTextFormField extends HookConsumerWidget {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:dartx/dartx.dart';
|
||||
import 'package:hiddify/features/profile/data/profile_parser.dart';
|
||||
import 'package:hiddify/features/profile/data/profile_repository.dart';
|
||||
import 'package:hiddify/singbox/model/singbox_proxy_type.dart';
|
||||
import 'package:hiddify/utils/validators.dart';
|
||||
import 'package:umbrix/features/profile/data/profile_parser.dart';
|
||||
import 'package:umbrix/features/profile/data/profile_repository.dart';
|
||||
import 'package:umbrix/singbox/model/singbox_proxy_type.dart';
|
||||
import 'package:umbrix/utils/validators.dart';
|
||||
|
||||
typedef ProfileLink = ({String url, String name});
|
||||
|
||||
@@ -20,12 +20,12 @@ abstract class LinkParser {
|
||||
query: uri.query,
|
||||
fragment: name ?? uri.fragment,
|
||||
);
|
||||
// return 'hiddify://import/$modifiedUri';
|
||||
// return 'umbrix://import/$modifiedUri';
|
||||
return '$modifiedUri';
|
||||
}
|
||||
|
||||
// protocols schemas
|
||||
static const protocols = {'clash', 'clashmeta', 'sing-box', 'hiddify'};
|
||||
static const protocols = {'clash', 'clashmeta', 'sing-box', 'umbrix'};
|
||||
|
||||
static ProfileLink? parse(String link) {
|
||||
return simple(link) ?? deep(link);
|
||||
@@ -84,7 +84,7 @@ abstract class LinkParser {
|
||||
case 'sing-box':
|
||||
if (uri.authority != 'import-remote-profile' || !queryParams.containsKey('url')) return null;
|
||||
return (url: queryParams['url']!, name: queryParams['name'] ?? '');
|
||||
case 'hiddify':
|
||||
case 'umbrix':
|
||||
if (uri.authority == "import") {
|
||||
return (url: uri.path.substring(1) + (uri.hasQuery ? "?${uri.query}" : ""), name: uri.fragment);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:hiddify/core/model/failures.dart';
|
||||
import 'package:umbrix/core/model/failures.dart';
|
||||
|
||||
part 'mutation_state.freezed.dart';
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:hiddify/core/model/failures.dart';
|
||||
import 'package:hiddify/features/proxy/model/proxy_failure.dart';
|
||||
import 'package:umbrix/core/model/failures.dart';
|
||||
import 'package:umbrix/features/proxy/model/proxy_failure.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:hiddify/utils/custom_loggers.dart';
|
||||
import 'package:umbrix/utils/custom_loggers.dart';
|
||||
import 'package:loggy/loggy.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
Reference in New Issue
Block a user