Merge pull request #33 from B3ni15/master

IOS Fixes, cleanup
This commit is contained in:
Armand
2026-03-03 10:42:21 +01:00
committed by GitHub
17 changed files with 267 additions and 167 deletions

View File

@@ -21,6 +21,6 @@
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>12.0</string>
<string>13.0</string>
</dict>
</plist>

View File

@@ -1,2 +1,3 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"
#include "Generated.xcconfig"

View File

@@ -28,7 +28,7 @@ require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelpe
flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
use_frameworks! :linkage => :static
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))

View File

@@ -500,7 +500,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -513,27 +513,31 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 283;
DEVELOPMENT_TEAM = 4J97JVC2FG;
DEVELOPMENT_TEAM = R9PZGUCNJ3;
ENABLE_BITCODE = NO;
FLUTTER_BUILD_NAME = 5.1.1;
FLUTTER_BUILD_NUMBER = 283;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Firka;
INFOPLIST_KEY_CFBundleDisplayName = "Firka Legacy";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 5.1.1;
PRODUCT_BUNDLE_IDENTIFIER = app.firka.legacy;
PRODUCT_BUNDLE_IDENTIFIER = app.firkaa.legacy;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
@@ -552,7 +556,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 283;
DEVELOPMENT_TEAM = 4J97JVC2FG;
DEVELOPMENT_TEAM = R9PZGUCNJ3;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = livecard/Info.plist;
@@ -568,15 +572,18 @@
MARKETING_VERSION = 5.1.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = app.firka.legacy.livecard;
PRODUCT_BUNDLE_IDENTIFIER = app.firkaa.legacy.livecard;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TARGETED_DEVICE_FAMILY = 1;
};
name = Debug;
};
@@ -594,7 +601,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 283;
DEVELOPMENT_TEAM = 4J97JVC2FG;
DEVELOPMENT_TEAM = R9PZGUCNJ3;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = livecard/Info.plist;
@@ -609,14 +616,17 @@
);
MARKETING_VERSION = 5.1.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = app.firka.legacy.livecard;
PRODUCT_BUNDLE_IDENTIFIER = app.firkaa.legacy.livecard;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TARGETED_DEVICE_FAMILY = 1;
};
name = Release;
};
@@ -634,7 +644,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 283;
DEVELOPMENT_TEAM = 4J97JVC2FG;
DEVELOPMENT_TEAM = R9PZGUCNJ3;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = livecard/Info.plist;
@@ -649,14 +659,17 @@
);
MARKETING_VERSION = 5.1.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = app.firka.legacy.livecard;
PRODUCT_BUNDLE_IDENTIFIER = app.firkaa.legacy.livecard;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TARGETED_DEVICE_FAMILY = 1;
};
name = Profile;
};
@@ -708,7 +721,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -758,7 +771,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -773,28 +786,32 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 283;
DEVELOPMENT_TEAM = 4J97JVC2FG;
DEVELOPMENT_TEAM = R9PZGUCNJ3;
ENABLE_BITCODE = NO;
FLUTTER_BUILD_NAME = 5.1.1;
FLUTTER_BUILD_NUMBER = 283;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Firka;
INFOPLIST_KEY_CFBundleDisplayName = "Firka Legacy";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 5.1.1;
PRODUCT_BUNDLE_IDENTIFIER = app.firka.legacy;
PRODUCT_BUNDLE_IDENTIFIER = app.firkaa.legacy;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
@@ -803,27 +820,31 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 283;
DEVELOPMENT_TEAM = 4J97JVC2FG;
DEVELOPMENT_TEAM = R9PZGUCNJ3;
ENABLE_BITCODE = NO;
FLUTTER_BUILD_NAME = 5.1.1;
FLUTTER_BUILD_NUMBER = 283;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Firka;
INFOPLIST_KEY_CFBundleDisplayName = "Firka Legacy";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 5.1.1;
PRODUCT_BUNDLE_IDENTIFIER = app.firka.legacy;
PRODUCT_BUNDLE_IDENTIFIER = app.firkaa.legacy;
PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;

View File

@@ -26,6 +26,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion>
<BuildableReference
@@ -43,11 +44,13 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
enableGPUValidationMode = "1"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">

View File

@@ -1,138 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>com.transistorsoft.firkanotification</string>
<string>com.transistorsoft.firkaliveactivity</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleAlternateIcons</key>
<dict>
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>com.transistorsoft.firkanotification</string>
<string>com.transistorsoft.firkaliveactivity</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleAlternateIcons</key>
<key>firka_concept</key>
<dict>
<key>firka_concept</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_concept</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>firka_default</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_default</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>firka_overcomplicated</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_overcomplicated</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>firka_pride</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_pride</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_concept</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIcons</key>
<key>firka_default</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>CFBundleIconName</key>
<string></string>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_default</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>firka_overcomplicated</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_overcomplicated</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>firka_pride</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>firka_pride</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Firka</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>firkaapp</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>https</string>
<string>http</string>
</array>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>The app requires the camera access to set a custom profile picture.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>The app requires the photo library to set a custom profile picture.</string>
<key>NSSupportsLiveActivities</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>processing</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIStatusBarHidden</key>
<false/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIcons</key>
<dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string></string>
</array>
<key>CFBundleIconName</key>
<string></string>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
</dict>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Firka Legacy</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>firkaapp</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>https</string>
<string>http</string>
</array>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>The app requires the camera access to set a custom profile picture.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>The app requires the photo library to set a custom profile picture.</string>
<key>NSSupportsLiveActivities</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>processing</string>
</array>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIStatusBarHidden</key>
<false/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>

View File

@@ -5,6 +5,8 @@
<key>aps-environment</key>
<string>development</string>
<key>com.apple.security.application-groups</key>
<array/>
<array>
<string>group.firkaa.legacy</string>
</array>
</dict>
</plist>

View File

@@ -5,6 +5,8 @@
<key>aps-environment</key>
<string>development</string>
<key>com.apple.security.application-groups</key>
<array/>
<array>
<string>group.firkaa.legacy</string>
</array>
</dict>
</plist>

View File

@@ -4,18 +4,23 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
class PlatformChannel {
static const MethodChannel _channel = MethodChannel('hu.refilc/liveactivity');
static const MethodChannel _channel = MethodChannel('app.firka/liveactivity');
static Future<void> createLiveActivity(
/// Létrehozza a Live Activity-t és visszaadja az APNs push tokent (ha elérhető).
static Future<String?> createLiveActivity(
Map<String, dynamic> activityData) async {
if (Platform.isIOS) {
try {
debugPrint("creating...");
await _channel.invokeMethod('createLiveActivity', activityData);
final String? pushToken = await _channel.invokeMethod<String>(
'createLiveActivity', activityData);
debugPrint("Live Activity push token: $pushToken");
return pushToken;
} on PlatformException catch (e) {
debugPrint("Hiba történt a Live Activity létrehozásakor: ${e.message}");
}
}
return null;
}
static Future<void> updateLiveActivity(

View File

@@ -38,6 +38,12 @@ Future<void> syncAll(BuildContext context) async {
print("INFO Syncing all");
UserProvider user = Provider.of<UserProvider>(context, listen: false);
// Demo mode: skip all API calls
if (user.isDemo) {
lock = false;
return Future.value();
}
StatusProvider statusProvider =
Provider.of<StatusProvider>(context, listen: false);

View File

@@ -24,6 +24,7 @@ class UserProvider with ChangeNotifier {
String get picture => user?.picture ?? "";
String? get displayName => user?.displayName;
int? get gradeStreak => user?.gradeStreak;
bool get isDemo => user?.isDemo ?? false;
final SettingsProvider _settings;

View File

@@ -4,6 +4,8 @@ import 'package:refilc_kreta_api/models/school.dart';
import 'package:refilc_kreta_api/models/student.dart';
import 'package:uuid/uuid.dart';
const String demoUserId = 'demo-user-00000000-0000-0000-0000-000000000000';
enum Role { student, parent }
class User {
@@ -115,6 +117,36 @@ class User {
@override
String toString() => jsonEncode(toMap());
static User demo() {
return User(
id: demoUserId,
name: 'Demo Diák',
username: 'demo',
password: '',
instituteCode: 'demo',
student: Student(
id: demoUserId,
name: 'Demo Diák',
school: School(
instituteCode: 'demo',
name: 'Demo Iskola',
city: 'Budapest',
),
birth: DateTime(2005, 9, 1),
yearId: '1',
parents: [],
gradeDelay: 0,
),
role: Role.student,
nickname: 'Demo',
accessToken: 'demo',
accessTokenExpire: DateTime.now().add(const Duration(days: 365)),
refreshToken: 'demo',
);
}
bool get isDemo => id == demoUserId;
static Map<String, Object?> loginBody({
required String username,
required String password,

View File

@@ -27,7 +27,7 @@ dependencies:
sdk: flutter
i18n_extension: ^12.0.1
sqflite: ^2.4.1
intl: ^0.19.0
intl: ^0.20.2
provider: ^6.1.2
http: ^1.3.0
uuid: ^4.5.1
@@ -41,7 +41,7 @@ dependencies:
quick_actions: ^1.1.0
animated_list_plus: ^0.5.2
dynamic_color: 1.7.0
material_color_utilities: ^0.11.1
material_color_utilities: ^0.13.0
crypto: ^3.0.6
elegant_notification: ^2.4.1
flutter_feather_icons: ^2.0.0+1
@@ -70,6 +70,7 @@ dependencies:
dependency_overrides:
webview_flutter_wkwebview: 3.17.0
intl: 0.20.2
dev_dependencies:
flutter_launcher_icons: ^0.14.3
@@ -127,4 +128,4 @@ flutter_native_splash:
ios: true
ios_content_mode: center
web: false
compress: true
compress: true

View File

@@ -12,12 +12,13 @@ dependencies:
http: ^1.3.0
provider: ^6.1.2
file_picker: ^8.3.7
intl: ^0.19.0
intl: ^0.20.2
i18n_extension: ^12.0.1
uuid: ^4.5.1
dependency_overrides:
webview_flutter_wkwebview: 3.17.0
intl: 0.20.2
dev_dependencies:
flutter_lints: ^5.0.0

View File

@@ -20,6 +20,8 @@
import 'dart:io' show Platform;
import 'package:refilc/api/login.dart';
import 'package:refilc/api/providers/user_provider.dart';
import 'package:refilc/models/user.dart';
import 'package:refilc/theme/colors/colors.dart';
import 'package:refilc_mobile_ui/common/custom_snack_bar.dart';
import 'package:refilc_mobile_ui/common/system_chrome.dart';
@@ -30,6 +32,7 @@ import 'package:flutter/services.dart';
import 'login_screen.i18n.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:refilc_mobile_ui/screens/login/kreten_login.dart'; //new library for new web login
import 'package:provider/provider.dart';
class LoginScreen extends StatefulWidget {
const LoginScreen({super.key, this.back = false});
@@ -49,6 +52,7 @@ class LoginScreenState extends State<LoginScreen> {
LoginState _loginState = LoginState.normal;
bool showBack = false;
int _demoTapCount = 0;
// Scaffold Gradient background
// final LinearGradient _backgroundGradient = const LinearGradient(
@@ -68,6 +72,11 @@ class LoginScreenState extends State<LoginScreen> {
void initState() {
super.initState();
showBack = widget.back;
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
@@ -124,9 +133,23 @@ class LoginScreenState extends State<LoginScreen> {
padding: EdgeInsets.only(left: 24, top: paddingTop),
child: Row(
children: [
Image.asset(
'assets/icons/ic_rounded.png',
width: 30.0,
GestureDetector(
onTap: () {
setState(() => _demoTapCount++);
if (_demoTapCount >= 10) {
_demoTapCount = 0;
final userProvider = Provider.of<UserProvider>(context, listen: false);
final demoUser = User.demo();
userProvider.addUser(demoUser);
userProvider.setUser(demoUser.id);
setSystemChrome(context);
Navigator.of(context).pushReplacementNamed('login_to_navigation');
}
},
child: Image.asset(
'assets/icons/ic_rounded.png',
width: 30.0,
),
),
const SizedBox(width: 8),
Text(

View File

@@ -45,7 +45,7 @@ dependencies:
image_gallery_saver_plus: ^4.0.0
rounded_expansion_tile: ^0.0.13
flutter_expandable_fab: ^2.3.0
intl: ^0.19.0
intl: ^0.20.2
i18n_extension: ^12.0.1
auto_size_text: ^3.0.0
connectivity_plus: ^6.1.3
@@ -70,6 +70,7 @@ dependencies:
dependency_overrides:
webview_flutter_wkwebview: 3.17.0
intl: 0.20.2
dev_dependencies:
flutter_lints: ^5.0.0

View File

@@ -40,6 +40,7 @@ dependencies:
dependency_overrides:
webview_flutter_wkwebview: 3.17.0
intl: 0.20.2
dev_dependencies:
flutter_lints: ^5.0.0