diff --git a/MauiProgram.cs b/MauiProgram.cs index fd0b4d3..e174d3f 100644 --- a/MauiProgram.cs +++ b/MauiProgram.cs @@ -10,7 +10,7 @@ global using CommunityToolkit.Mvvm.Input; global using CommunityToolkit.Mvvm.ComponentModel; global using Microsoft.Maui.Controls; - +global using app.Services; namespace app; @@ -29,6 +29,9 @@ public static class MauiProgram { #endif builder.Services.AddTransient(); builder.Services.AddTransient(); + + builder.Services.AddSingleton(); + return builder.Build(); } } diff --git a/Models/AuthResult.cs b/Models/AuthResult.cs new file mode 100644 index 0000000..754ec90 --- /dev/null +++ b/Models/AuthResult.cs @@ -0,0 +1,13 @@ +using System; +using System.Text.Json.Serialization; + +namespace app.Models; + +public record AuthResult { + + [JsonPropertyName("access_token")] + public string AccessToken { get; set; } + [JsonPropertyName("refresh_token")] + public string RefreshToken { get; set; } + +} diff --git a/Services/ISpotifyService.cs b/Services/ISpotifyService.cs new file mode 100644 index 0000000..ff31cdb --- /dev/null +++ b/Services/ISpotifyService.cs @@ -0,0 +1,9 @@ +using System; +namespace app.Services; + +public interface ISpotifyService { + + Task Initialize(string authCode); + +} + diff --git a/Services/SpotifyService.cs b/Services/SpotifyService.cs new file mode 100644 index 0000000..4dcfc35 --- /dev/null +++ b/Services/SpotifyService.cs @@ -0,0 +1,38 @@ +using System.Text; +using System.Text.Json; +using app.Models; + +namespace app.Services; + +public class SpotifyService : ISpotifyService { + private string accessToken; + + public SpotifyService() { + } + + public async Task Initialize(string authCode) { + + var bytes = Encoding.UTF8.GetBytes($"{Constants.SpotifyClientId}:{Constants.SpotifyClientSecret}"); + var authHeader = Convert.ToBase64String(bytes); + + var client = new HttpClient(); + client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authHeader); + + var content = new FormUrlEncodedContent(new List>() { + new("code", authCode), + new("redirect_uri", Constants.RedirectUrl), + new("grant_type", "authorization_code") + }); + + var response = await client.PostAsync("https://accounts.spotify.com/api/token", content); + + var json = await response.Content.ReadAsStringAsync(); + + //deserializing token + var result = JsonSerializer.Deserialize(json); + + accessToken = result.AccessToken; + return response.IsSuccessStatusCode; + } +} + diff --git a/ViewModels/LoginViewModel.cs b/ViewModels/LoginViewModel.cs index 82bd929..7ea1cc2 100644 --- a/ViewModels/LoginViewModel.cs +++ b/ViewModels/LoginViewModel.cs @@ -2,15 +2,24 @@ //partial class in order to be able to use source generators public partial class LoginViewModel : ViewModel { - public LoginViewModel() { + + private readonly ISpotifyService spotifyService; + + public LoginViewModel(ISpotifyService spotifyService) { + this.spotifyService = spotifyService; } [ObservableProperty] private bool showLogin; + [RelayCommand] private void OpenLogin() { ShowLogin = true; } + public async Task HandleAuthCode(string authCode) { + await spotifyService.Initialize(authCode); + } + } diff --git a/Views/LoginView.xaml.cs b/Views/LoginView.xaml.cs index c9f4c9f..15cd37b 100644 --- a/Views/LoginView.xaml.cs +++ b/Views/LoginView.xaml.cs @@ -50,8 +50,26 @@ public partial class LoginView { } } - private void LoginWeb_Navigating(object sender, WebNavigatingEventArgs e) { - throw new NotImplementedException(); + private async void LoginWeb_Navigating(object sender, WebNavigatingEventArgs e) { + //check if the URL is the redirect URL set up within the Spotify application online + //in order to avoid catching the login URL + if (!e.Url.Contains("redirect_uri") && e.Url.Contains("https://app/login")) { + var queryString = e.Url.Split("?").Last(); + var parts = queryString.Split("&"); + + var parameters = parts.Select(x => x.Split("=")).ToDictionary(x => x.First(), x => x.Last()); + + var code = parameters["code"]; + var returnState = parameters["state"]; + + //animating the login portal + if (returnState == state && !string.IsNullOrWhiteSpace(code)) { + _ = Task.Run(async () => await loginViewModel.HandleAuthCode(code)); + + await Login.TranslateTo(Login.X, this.Height, easing: Easing.Linear); + Login.IsVisible = false; + } + } } } diff --git a/app.csproj b/app.csproj index 7bf4e03..d42898b 100644 --- a/app.csproj +++ b/app.csproj @@ -61,9 +61,13 @@ + + + + diff --git a/app.sln b/app.sln new file mode 100644 index 0000000..a83afec --- /dev/null +++ b/app.sln @@ -0,0 +1,27 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 17.0.31611.283 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app", "app\app.csproj", "{E40CBDBA-2A17-477A-B283-EB69BD81D28E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E40CBDBA-2A17-477A-B283-EB69BD81D28E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E40CBDBA-2A17-477A-B283-EB69BD81D28E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E40CBDBA-2A17-477A-B283-EB69BD81D28E}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {E40CBDBA-2A17-477A-B283-EB69BD81D28E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E40CBDBA-2A17-477A-B283-EB69BD81D28E}.Release|Any CPU.Build.0 = Release|Any CPU + {E40CBDBA-2A17-477A-B283-EB69BD81D28E}.Release|Any CPU.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {61F7FB11-1E47-470C-91E2-47F8143E1572} + EndGlobalSection +EndGlobal diff --git a/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.dll b/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.dll index a27f87f..45d0971 100644 Binary files a/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.dll and b/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.dll differ diff --git a/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.pdb b/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.pdb index 5074d2b..f6192fd 100644 Binary files a/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.pdb and b/bin/Debug/net7.0-ios/iossimulator-x64/app.app/app.pdb differ diff --git a/bin/Debug/net7.0-ios/iossimulator-x64/app.dll b/bin/Debug/net7.0-ios/iossimulator-x64/app.dll index a27f87f..45d0971 100644 Binary files a/bin/Debug/net7.0-ios/iossimulator-x64/app.dll and b/bin/Debug/net7.0-ios/iossimulator-x64/app.dll differ diff --git a/bin/Debug/net7.0-ios/iossimulator-x64/app.pdb b/bin/Debug/net7.0-ios/iossimulator-x64/app.pdb index 5074d2b..f6192fd 100644 Binary files a/bin/Debug/net7.0-ios/iossimulator-x64/app.pdb and b/bin/Debug/net7.0-ios/iossimulator-x64/app.pdb differ diff --git a/bin/Debug/net7.0-ios/iossimulator-x64/err.log b/bin/Debug/net7.0-ios/iossimulator-x64/err.log index c5a6cb7..80b9cbc 100644 --- a/bin/Debug/net7.0-ios/iossimulator-x64/err.log +++ b/bin/Debug/net7.0-ios/iossimulator-x64/err.log @@ -1,2 +1,2 @@ -objc[61091]: Class CDPCAReporter is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDPInternal.framework/CoreCDPInternal (0x15abd51d8) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDP.framework/CoreCDP (0x15376aeb0). One of the two will be used. Which one is undefined. -objc[61091]: Class CDPCABackupRecoveryReporter is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDPInternal.framework/CoreCDPInternal (0x15abd5ef8) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDP.framework/CoreCDP (0x15376b0e0). One of the two will be used. Which one is undefined. +objc[93152]: Class CDPCAReporter is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDPInternal.framework/CoreCDPInternal (0x15a5131d8) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDP.framework/CoreCDP (0x1530a8eb0). One of the two will be used. Which one is undefined. +objc[93152]: Class CDPCABackupRecoveryReporter is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDPInternal.framework/CoreCDPInternal (0x15a513ef8) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/CoreCDP.framework/CoreCDP (0x1530a90e0). One of the two will be used. Which one is undefined. diff --git a/obj/Debug/net7.0-android/libraryprojectimports.cache b/obj/Debug/net7.0-android/libraryprojectimports.cache index df4637f..5f9c8e3 100644 --- a/obj/Debug/net7.0-android/libraryprojectimports.cache +++ b/obj/Debug/net7.0-android/libraryprojectimports.cache @@ -1 +1 @@ -/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/88/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/89/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/90/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/91/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/92/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/93/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/94/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/95/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/96/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/97/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/98/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/99/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/100/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/101/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/102/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/103/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/104/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/105/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/106/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/107/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/108/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/109/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/110/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/111/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/112/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/113/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/114/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/115/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116/jl/libs/repackaged.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/117/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/118/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/119/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/120/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/121/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/122/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/123/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/124/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/125/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/126/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/127/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/128/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/129/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/130/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/131/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/132/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/133/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/134/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/135/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/136/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/137/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/138/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/139/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/140/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/141/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/142/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/143/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/144/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/145/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/146/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/147/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/148/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/149/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/150/jl/libs/ED64959F88B22E6D.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/153/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/156/jl/libs/F975D0960055A5E3.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/90/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/91/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/92/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/95/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/96/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/97/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/98/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/99/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/101/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/102/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/103/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/104/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/105/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/109/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/110/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/112/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/113/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/117/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/119/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/121/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/122/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/123/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/124/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/125/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/126/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/127/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/128/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/129/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/131/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/132/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/133/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/134/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/135/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/136/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/137/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/138/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/139/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/140/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/141/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/142/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/147/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/149/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/151/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/152/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/153/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/154/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/155/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/90.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/91.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/92.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/95.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/96.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/97.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/98.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/99.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/101.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/102.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/103.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/104.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/105.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/109.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/110.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/112.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/113.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/117.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/119.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/121.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/122.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/123.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/124.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/125.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/126.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/127.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/128.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/129.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/131.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/132.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/133.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/134.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/135.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/136.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/137.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/138.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/139.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/140.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/141.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/142.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/147.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/149.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/151.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/152.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/153.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/154.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/155.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/88/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/90/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/92/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/96/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/97/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/98/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/102/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/104/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/108/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/109/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/110/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/113/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/121/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/123/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/126/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/127/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/134/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/137/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/141/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/149/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/151/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/152/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/154/jl/proguard.txt/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/155/jl/proguard.txt \ No newline at end of file +/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/88/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/89/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/90/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/91/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/92/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/93/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/94/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/95/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/96/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/97/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/98/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/99/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/100/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/101/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/102/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/103/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/104/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/105/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/106/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/107/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/108/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/109/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/110/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/111/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/112/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/113/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/114/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/115/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116/jl/libs/repackaged.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/117/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/118/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/119/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/120/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/121/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/122/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/123/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/124/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/125/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/126/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/127/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/128/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/129/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/130/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/131/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/132/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/133/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/134/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/135/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/136/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/137/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/138/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/139/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/140/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/141/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/142/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/143/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/144/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/145/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/146/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/147/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/148/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/149/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/150/jl/libs/ED64959F88B22E6D.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/153/jl/classes.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/156/jl/libs/F975D0960055A5E3.jar/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/90/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/91/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/92/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/95/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/96/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/97/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/98/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/99/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/101/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/102/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/103/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/104/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/105/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/109/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/110/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/112/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/113/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/117/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/119/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/121/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/122/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/123/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/124/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/125/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/126/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/127/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/128/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/129/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/131/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/132/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/133/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/134/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/135/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/136/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/137/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/138/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/139/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/140/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/141/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/142/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/147/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/149/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/151/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/152/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/153/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/154/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/155/jl/res/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/90.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/91.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/92.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/95.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/96.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/97.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/98.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/99.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/101.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/102.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/103.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/104.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/105.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/109.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/110.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/112.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/113.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/116.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/117.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/119.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/121.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/122.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/123.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/124.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/125.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/126.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/127.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/128.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/129.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/131.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/132.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/133.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/134.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/135.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/136.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/137.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/138.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/139.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/140.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/141.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/142.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/147.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/149.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/151.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/152.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/153.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/154.stamp/Users/chronos/Projects/app/app/obj/Debug/net7.0-android/lp/155.stamp \ No newline at end of file diff --git a/obj/Debug/net7.0-ios/iossimulator-x64/app.csproj.CoreCompileInputs.cache b/obj/Debug/net7.0-ios/iossimulator-x64/app.csproj.CoreCompileInputs.cache index 127ee12..4761ef5 100644 --- a/obj/Debug/net7.0-ios/iossimulator-x64/app.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net7.0-ios/iossimulator-x64/app.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -98378c31f6eaabff58f5bba47fe4fafa9dbcc3d9 +634e2a0b790f7685ed393364c3f302be7651311d diff --git a/obj/Debug/net7.0-ios/iossimulator-x64/app.dll b/obj/Debug/net7.0-ios/iossimulator-x64/app.dll index a27f87f..45d0971 100644 Binary files a/obj/Debug/net7.0-ios/iossimulator-x64/app.dll and b/obj/Debug/net7.0-ios/iossimulator-x64/app.dll differ diff --git a/obj/Debug/net7.0-ios/iossimulator-x64/app.pdb b/obj/Debug/net7.0-ios/iossimulator-x64/app.pdb index 5074d2b..f6192fd 100644 Binary files a/obj/Debug/net7.0-ios/iossimulator-x64/app.pdb and b/obj/Debug/net7.0-ios/iossimulator-x64/app.pdb differ diff --git a/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.dll b/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.dll index a27f87f..45d0971 100644 Binary files a/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.dll and b/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.dll differ diff --git a/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.pdb b/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.pdb index 5074d2b..f6192fd 100644 Binary files a/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.pdb and b/obj/Debug/net7.0-ios/iossimulator-x64/linked/app.pdb differ diff --git a/obj/Debug/net7.0-ios/iossimulator-x64/ref/app.dll b/obj/Debug/net7.0-ios/iossimulator-x64/ref/app.dll index a0c8a7c..d990e96 100644 Binary files a/obj/Debug/net7.0-ios/iossimulator-x64/ref/app.dll and b/obj/Debug/net7.0-ios/iossimulator-x64/ref/app.dll differ diff --git a/obj/Debug/net7.0-ios/iossimulator-x64/refint/app.dll b/obj/Debug/net7.0-ios/iossimulator-x64/refint/app.dll index a0c8a7c..d990e96 100644 Binary files a/obj/Debug/net7.0-ios/iossimulator-x64/refint/app.dll and b/obj/Debug/net7.0-ios/iossimulator-x64/refint/app.dll differ