├── SECURITY.md ├── ScreenShots ├── Android │ ├── login.png │ ├── logind.png │ ├── stats.png │ ├── statsd.png │ ├── flowhold.png │ ├── flowoutd.png │ ├── flowouts.png │ ├── homepage.png │ ├── homepaged.png │ ├── register.png │ ├── registerd.png │ ├── setting1d.png │ ├── settings1.png │ ├── settings2.png │ ├── settings2d.png │ ├── flowholddetail.png │ └── flowholddetaild.png └── Windows │ ├── login.png │ ├── logind.png │ ├── flowouts.png │ ├── flowoutsd.png │ ├── homepage.png │ ├── homepaged.png │ ├── register.png │ ├── registerd.png │ ├── settings.png │ ├── settingsd.png │ ├── flowinsights.png │ └── flowinsightsd.png ├── FlowHub-MAUI ├── Resources │ ├── Images │ │ └── dotnet_bot.png │ ├── Fonts │ │ ├── OpenSans-Regular.ttf │ │ └── OpenSans-Semibold.ttf │ ├── AppIcon │ │ ├── appicon.svg │ │ └── appiconfg.svg │ ├── Raw │ │ └── AboutAssets.txt │ ├── Splash │ │ └── splash.svg │ └── Styles │ │ ├── Colors.xaml │ │ └── Styles.xaml ├── Utilities │ ├── TypeConverters │ │ ├── BoolToInverse.cs │ │ ├── CountToVisibilityConverter.cs │ │ ├── PathToImageConverter.cs │ │ ├── EmptyStringToMessageConverter.cs │ │ ├── BytesArrayToImageSource.cs │ │ ├── CollectionSizeToVisibility.cs │ │ ├── BoolToImageConverter.cs │ │ ├── DurationConverterFromMsToTimeSpan.cs │ │ ├── BoolToInverseConverter.cs │ │ ├── BytesToMegabytesConverter.cs │ │ ├── DateTimeOffsetToLocalDateConverter.cs │ │ └── IndexToVisibilityConverter.cs │ ├── OtherUtils │ │ ├── GeneralStaticUtilities.cs │ │ └── CustomAdmin.cs │ └── Models │ │ ├── UserModel.cs │ │ └── FlowModel.cs ├── FodyWeavers.xml ├── Properties │ └── launchSettings.json ├── DataAccess │ ├── IServices │ │ ├── IDataBaseService.cs │ │ └── IFlowsService.cs │ └── Services │ │ ├── DataBaseService.cs │ │ └── FlowService.cs ├── Platforms │ ├── Android │ │ ├── Resources │ │ │ └── values │ │ │ │ └── colors.xml │ │ ├── AndroidManifest.xml │ │ ├── MainApplication.cs │ │ └── MainActivity.cs │ ├── iOS │ │ ├── AppDelegate.cs │ │ ├── Program.cs │ │ ├── Info.plist │ │ └── Resources │ │ │ └── PrivacyInfo.xcprivacy │ ├── MacCatalyst │ │ ├── AppDelegate.cs │ │ ├── Program.cs │ │ ├── Entitlements.plist │ │ └── Info.plist │ ├── Windows │ │ ├── App.xaml │ │ ├── app.manifest │ │ ├── App.xaml.cs │ │ └── Package.appxmanifest │ └── Tizen │ │ ├── Main.cs │ │ └── tizen-manifest.xml ├── AppShellMobile.xaml.cs ├── AppShell.xaml.cs ├── Views │ ├── Desktop │ │ ├── SettingsD.xaml.cs │ │ ├── HomeD.xaml.cs │ │ ├── CustomViews │ │ │ ├── FlowHubWindow.xaml │ │ │ └── FlowHubWindow.xaml.cs │ │ ├── SettingsD.xaml │ │ └── HomeD.xaml │ └── Mobile │ │ ├── SettingsM.xaml.cs │ │ ├── HomeM.xaml.cs │ │ ├── SettingsM.xaml │ │ └── HomeM.xaml ├── MainPage.xaml.cs ├── App.xaml ├── AppShell.xaml ├── AppShellMobile.xaml ├── MainPage.xaml ├── GlobalUsings.cs ├── FlowHub-MAUI.sln ├── MauiProgram.cs ├── FlowHub-MAUI.csproj ├── App.xaml.cs └── ViewModel │ └── HomePageVM.cs ├── .gitattributes ├── .editorconfig ├── README.md └── .gitignore /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ScreenShots/Android/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/login.png -------------------------------------------------------------------------------- /ScreenShots/Android/logind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/logind.png -------------------------------------------------------------------------------- /ScreenShots/Android/stats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/stats.png -------------------------------------------------------------------------------- /ScreenShots/Android/statsd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/statsd.png -------------------------------------------------------------------------------- /ScreenShots/Windows/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/login.png -------------------------------------------------------------------------------- /ScreenShots/Windows/logind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/logind.png -------------------------------------------------------------------------------- /ScreenShots/Android/flowhold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/flowhold.png -------------------------------------------------------------------------------- /ScreenShots/Android/flowoutd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/flowoutd.png -------------------------------------------------------------------------------- /ScreenShots/Android/flowouts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/flowouts.png -------------------------------------------------------------------------------- /ScreenShots/Android/homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/homepage.png -------------------------------------------------------------------------------- /ScreenShots/Android/homepaged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/homepaged.png -------------------------------------------------------------------------------- /ScreenShots/Android/register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/register.png -------------------------------------------------------------------------------- /ScreenShots/Android/registerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/registerd.png -------------------------------------------------------------------------------- /ScreenShots/Android/setting1d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/setting1d.png -------------------------------------------------------------------------------- /ScreenShots/Android/settings1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/settings1.png -------------------------------------------------------------------------------- /ScreenShots/Android/settings2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/settings2.png -------------------------------------------------------------------------------- /ScreenShots/Windows/flowouts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/flowouts.png -------------------------------------------------------------------------------- /ScreenShots/Windows/flowoutsd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/flowoutsd.png -------------------------------------------------------------------------------- /ScreenShots/Windows/homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/homepage.png -------------------------------------------------------------------------------- /ScreenShots/Windows/homepaged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/homepaged.png -------------------------------------------------------------------------------- /ScreenShots/Windows/register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/register.png -------------------------------------------------------------------------------- /ScreenShots/Windows/registerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/registerd.png -------------------------------------------------------------------------------- /ScreenShots/Windows/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/settings.png -------------------------------------------------------------------------------- /ScreenShots/Windows/settingsd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/settingsd.png -------------------------------------------------------------------------------- /ScreenShots/Android/settings2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/settings2d.png -------------------------------------------------------------------------------- /ScreenShots/Android/flowholddetail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/flowholddetail.png -------------------------------------------------------------------------------- /ScreenShots/Windows/flowinsights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/flowinsights.png -------------------------------------------------------------------------------- /ScreenShots/Windows/flowinsightsd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Windows/flowinsightsd.png -------------------------------------------------------------------------------- /ScreenShots/Android/flowholddetaild.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/ScreenShots/Android/flowholddetaild.png -------------------------------------------------------------------------------- /FlowHub-MAUI/Resources/Images/dotnet_bot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/FlowHub-MAUI/Resources/Images/dotnet_bot.png -------------------------------------------------------------------------------- /FlowHub-MAUI/Resources/Fonts/OpenSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/FlowHub-MAUI/Resources/Fonts/OpenSans-Regular.ttf -------------------------------------------------------------------------------- /FlowHub-MAUI/Resources/Fonts/OpenSans-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YBTopaz8/FlowHub-MAUI/HEAD/FlowHub-MAUI/Resources/Fonts/OpenSans-Semibold.ttf -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/BoolToInverse.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | 3 | internal class BoolToInverse 4 | { 5 | } 6 | -------------------------------------------------------------------------------- /FlowHub-MAUI/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Windows Machine": { 4 | "commandName": "MsixPackage", 5 | "nativeDebugging": false 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /FlowHub-MAUI/DataAccess/IServices/IDataBaseService.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.DataAccess.IServices; 2 | 3 | public interface IDataBaseService 4 | { 5 | RealmConfiguration GetRealm(); 6 | void DeleteDB(); 7 | } 8 | 9 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Resources/AppIcon/appicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Android/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #512BD4 4 | #2B0B98 5 | #2B0B98 6 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/iOS/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using Foundation; 2 | 3 | namespace FlowHub_MAUI 4 | { 5 | [Register("AppDelegate")] 6 | public class AppDelegate : MauiUIApplicationDelegate 7 | { 8 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/MacCatalyst/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using Foundation; 2 | 3 | namespace FlowHub_MAUI 4 | { 5 | [Register("AppDelegate")] 6 | public class AppDelegate : MauiUIApplicationDelegate 7 | { 8 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Windows/App.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /FlowHub-MAUI/AppShellMobile.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI; 2 | 3 | public partial class AppShellMobile : Shell 4 | { 5 | public AppShellMobile() 6 | { 7 | InitializeComponent(); 8 | Routing.RegisterRoute(nameof(HomeM), typeof(HomeM)); 9 | Routing.RegisterRoute(nameof(SettingsM), typeof(SettingsM)); 10 | } 11 | public HomePageVM? Vm { get; } 12 | } -------------------------------------------------------------------------------- /FlowHub-MAUI/AppShell.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI 2 | { 3 | public partial class AppShell : Shell 4 | { 5 | public AppShell(HomePageVM vm) 6 | { 7 | InitializeComponent(); 8 | Routing.RegisterRoute(nameof(HomeD), typeof(HomeD)); 9 | Routing.RegisterRoute(nameof(SettingsD), typeof(SettingsD)); 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Views/Desktop/SettingsD.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Views.Desktop; 2 | 3 | public partial class SettingsD : ContentPage 4 | { 5 | public SettingsD(HomePageVM ViewModel) 6 | { 7 | InitializeComponent(); 8 | BindingContext = ViewModel; 9 | this.ViewModel = ViewModel; 10 | } 11 | public bool ToLogin { get; } 12 | public HomePageVM ViewModel { get; } 13 | } -------------------------------------------------------------------------------- /FlowHub-MAUI/Views/Mobile/SettingsM.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Views.Mobile; 2 | 3 | public partial class SettingsM : ContentPage 4 | { 5 | public SettingsM(HomePageVM ViewModel) 6 | { 7 | InitializeComponent(); 8 | BindingContext = ViewModel; 9 | this.ViewModel = ViewModel; 10 | } 11 | public bool ToLogin { get; } 12 | public HomePageVM ViewModel { get; } 13 | } -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Tizen/Main.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Maui; 2 | using Microsoft.Maui.Hosting; 3 | using System; 4 | 5 | namespace FlowHub_MAUI 6 | { 7 | internal class Program : MauiApplication 8 | { 9 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 10 | 11 | static void Main(string[] args) 12 | { 13 | var app = new Program(); 14 | app.Run(args); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Android/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Views/Mobile/HomeM.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Views.Mobile; 2 | 3 | public partial class HomeM : ContentPage 4 | { 5 | public HomeM(HomePageVM viewModel) 6 | { 7 | InitializeComponent(); 8 | ViewModel = viewModel; 9 | BindingContext = ViewModel; 10 | } 11 | 12 | public HomePageVM ViewModel { get; } 13 | 14 | private void Button_Clicked(object sender, EventArgs e) 15 | { 16 | ViewModel.AddCommentUI(); 17 | } 18 | } -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Android/MainApplication.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Runtime; 3 | 4 | namespace FlowHub_MAUI 5 | { 6 | [Application] 7 | public class MainApplication : MauiApplication 8 | { 9 | public MainApplication(IntPtr handle, JniHandleOwnership ownership) 10 | : base(handle, ownership) 11 | { 12 | } 13 | 14 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/iOS/Program.cs: -------------------------------------------------------------------------------- 1 | using UIKit; 2 | 3 | namespace FlowHub_MAUI 4 | { 5 | public class Program 6 | { 7 | // This is the main entry point of the application. 8 | static void Main(string[] args) 9 | { 10 | // if you want to use a different Application Delegate class from "AppDelegate" 11 | // you can specify it here. 12 | UIApplication.Main(args, null, typeof(AppDelegate)); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/MacCatalyst/Program.cs: -------------------------------------------------------------------------------- 1 | using UIKit; 2 | 3 | namespace FlowHub_MAUI 4 | { 5 | public class Program 6 | { 7 | // This is the main entry point of the application. 8 | static void Main(string[] args) 9 | { 10 | // if you want to use a different Application Delegate class from "AppDelegate" 11 | // you can specify it here. 12 | UIApplication.Main(args, null, typeof(AppDelegate)); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Views/Desktop/HomeD.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Views.Desktop; 2 | 3 | public partial class HomeD : ContentPage 4 | { 5 | public HomeD(HomePageVM viewModel) 6 | { 7 | InitializeComponent(); 8 | ViewModel = viewModel; 9 | BindingContext = ViewModel; 10 | } 11 | 12 | public HomePageVM ViewModel { get; } 13 | 14 | private void Button_Clicked(object sender, EventArgs e) 15 | { 16 | ViewModel.AddCommentUI(); 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Android/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Content.PM; 3 | 4 | namespace FlowHub_MAUI 5 | { 6 | [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)] 7 | public class MainActivity : MauiAppCompatActivity 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/CountToVisibilityConverter.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | public class CountToVisibilityConverter : IValueConverter 3 | { 4 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 5 | { 6 | return false; 7 | } 8 | 9 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 10 | { 11 | throw new NotImplementedException(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/PathToImageConverter.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | public class PathToImageConverter : IValueConverter 3 | { 4 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 5 | { 6 | return string.Empty; 7 | 8 | 9 | } 10 | 11 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 12 | { 13 | throw new NotImplementedException(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/EmptyStringToMessageConverter.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | public class EmptyStringToMessageConverter : IValueConverter // TODO: RENAME THIS 3 | { 4 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 5 | { 6 | 7 | 8 | return false; 9 | } 10 | 11 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 12 | { 13 | throw new NotImplementedException(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /FlowHub-MAUI/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI 2 | { 3 | public partial class MainPage : ContentPage 4 | { 5 | int count = 0; 6 | 7 | public MainPage() 8 | { 9 | InitializeComponent(); 10 | } 11 | 12 | private void OnCounterClicked(object sender, EventArgs e) 13 | { 14 | count++; 15 | 16 | if (count == 1) 17 | CounterBtn.Text = $"Clicked {count} time"; 18 | else 19 | CounterBtn.Text = $"Clicked {count} times"; 20 | 21 | SemanticScreenReader.Announce(CounterBtn.Text); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/BytesArrayToImageSource.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | public class BytesArrayToImageSource : IValueConverter 3 | { 4 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 5 | { 6 | if (value is byte[] bytes && bytes.Length > 0) 7 | { 8 | return ImageSource.FromStream(() => new MemoryStream(bytes)); 9 | } 10 | return null; 11 | } 12 | 13 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 14 | { 15 | throw new NotSupportedException(); 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /FlowHub-MAUI/App.xaml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Resources/Raw/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories). Deployment of the asset to your application 3 | is automatically handled by the following `MauiAsset` Build Action within your `.csproj`. 4 | 5 | 6 | 7 | These files will be deployed with your package and will be accessible using Essentials: 8 | 9 | async Task LoadMauiAsset() 10 | { 11 | using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt"); 12 | using var reader = new StreamReader(stream); 13 | 14 | var contents = reader.ReadToEnd(); 15 | } 16 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/MacCatalyst/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | com.apple.security.app-sandbox 8 | 9 | 10 | com.apple.security.network.client 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Views/Desktop/CustomViews/FlowHubWindow.xaml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/CollectionSizeToVisibility.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | 3 | public class CollectionSizeToVisibility : IValueConverter 4 | { 5 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 6 | { 7 | #pragma warning disable CS8605 // Unboxing a possibly null value. 8 | var val = (int)value; 9 | #pragma warning restore CS8605 // Unboxing a possibly null value. 10 | if (val < 1) 11 | { 12 | return false; 13 | } 14 | return true; 15 | } 16 | 17 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 18 | { 19 | throw new NotImplementedException(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Windows/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | true/PM 12 | PerMonitorV2, PerMonitor 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Tizen/tizen-manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | maui-appicon-placeholder 7 | 8 | 9 | 10 | 11 | http://tizen.org/privilege/internet 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Views/Desktop/CustomViews/FlowHubWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Views.Desktop.CustomViews; 2 | 3 | public partial class FlowHubWindow : Window 4 | { 5 | public FlowHubWindow(Lazy viewModel) 6 | { 7 | InitializeComponent(); 8 | ViewModel = viewModel.Value; 9 | BindingContext = viewModel.Value; 10 | } 11 | 12 | public HomePageVM ViewModel { get; } 13 | 14 | protected override void OnCreated() 15 | { 16 | base.OnCreated(); 17 | this.MinimumHeight = 950; 18 | this.MinimumWidth = 1200; 19 | this.Height = 950; 20 | this.Width = 1200; 21 | 22 | #if DEBUG 23 | FlowHubTitleBar.Subtitle = "v0.0.1-debug"; 24 | #endif 25 | 26 | #if RELEASE 27 | FlowHubTitleBar.Subtitle = "v0.0.1-release"; 28 | #endif 29 | } 30 | } -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/BoolToImageConverter.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | public class BoolToImageConverter : IValueConverter 3 | { 4 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 5 | { 6 | var vm = IPlatformApplication.Current!.Services.GetService(); 7 | 8 | 9 | if (value is bool MyBoolValue && MyBoolValue is true) 10 | { 11 | return FontAw.Solid.HeartCircleMinus; 12 | 13 | } 14 | else 15 | { 16 | 17 | return Regular.Heart; 18 | } 19 | } 20 | 21 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 22 | { 23 | throw new NotImplementedException(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/DurationConverterFromMsToTimeSpan.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | public class DurationConverterFromMsToTimeSpan : IValueConverter 3 | { 4 | public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 5 | { 6 | if (value is double duration) 7 | { 8 | TimeSpan time = TimeSpan.FromSeconds(duration); 9 | string timeString = time.ToString(@"mm\:ss"); 10 | return timeString; 11 | } 12 | return "00:00"; 13 | } 14 | 15 | public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 16 | { 17 | if (value is TimeSpan timeSpan) 18 | { 19 | return timeSpan.TotalMilliseconds; 20 | } 21 | return 0; 22 | } 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/OtherUtils/GeneralStaticUtilities.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.OtherUtils; 2 | 3 | public static class GeneralStaticUtilities 4 | { 5 | public static string GenerateRandomString(string CallerClass, int length = 12) 6 | { 7 | if (string.IsNullOrEmpty(CallerClass)) 8 | { 9 | throw new ArgumentNullException(nameof(CallerClass)); 10 | } 11 | 12 | Random random = Random.Shared; 13 | const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 14 | char[] stringChars = new char[length]; 15 | stringChars[0] = CallerClass[0]; 16 | stringChars[1] = CallerClass[1]; 17 | 18 | for (int i = 2; i < length; i++) 19 | { 20 | stringChars[i] = chars[random.Next(chars.Length)]; 21 | } 22 | 23 | return new string(stringChars); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/Windows/App.xaml.cs: -------------------------------------------------------------------------------- 1 | // To learn more about WinUI, the WinUI project structure, 2 | // and more about our project templates, see: http://aka.ms/winui-project-info. 3 | 4 | namespace FlowHub_MAUI.WinUI 5 | { 6 | /// 7 | /// Provides application-specific behavior to supplement the default Application class. 8 | /// 9 | public partial class App : MauiWinUIApplication 10 | { 11 | /// 12 | /// Initializes the singleton application object. This is the first line of authored code 13 | /// executed, and as such is the logical equivalent of main() or WinMain(). 14 | /// 15 | public App() 16 | { 17 | this.InitializeComponent(); 18 | } 19 | 20 | protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp(); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /FlowHub-MAUI/AppShell.xaml: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /FlowHub-MAUI/DataAccess/Services/DataBaseService.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.DataAccess.Services; 2 | 3 | public class DataBaseService : IDataBaseService 4 | { 5 | public void DeleteDB() => throw new NotImplementedException(); 6 | 7 | public RealmConfiguration GetRealm() 8 | { 9 | string dbPath=string.Empty; 10 | #if ANDROID 11 | dbPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\FlowHub"; 12 | #elif WINDOWS 13 | dbPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\FlowHub"; 14 | #endif 15 | 16 | if (!Directory.Exists(dbPath)) 17 | { 18 | Directory.CreateDirectory(dbPath); 19 | } 20 | 21 | string filePath = Path.Combine(dbPath, "FlowHub.realm"); 22 | //File.Delete(filePath); 23 | var config = new RealmConfiguration(filePath) 24 | { 25 | SchemaVersion = 0 26 | }; 27 | 28 | return config; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /FlowHub-MAUI/DataAccess/IServices/IFlowsService.cs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | namespace FlowHub_MAUI.DataAccess.IServices; 5 | 6 | public interface IFlowsService 7 | { 8 | void GetFlows(); 9 | Task LoadFlowsToDBFromOnline(); 10 | UserModelView? GetUserAccount(ParseUser? usr = null); 11 | string UpdateFlow(FlowsModelView flow); 12 | bool SyncAllDataToDatabaseAsync(IEnumerable flows, IEnumerable flowComments); 13 | Task LogUserIn(ParseUser user, string password); 14 | Task SignUpUser(ParseUser user); 15 | void UpdateUser(UserModelView user); 16 | string AddFlowComment(FlowCommentsView comment); 17 | void SaveBoth(FlowsModelView flow, FlowCommentsView comment); 18 | Task LoadFlowAndCommentsLinksToDBFromOnline(); 19 | Task LoadFlowCommentsToDBFromOnline(); 20 | Task SyncAllData(); 21 | 22 | IList? AllFlows { get; internal set; } 23 | IList? AllFlowAndCommentsLink { get; set; } 24 | IList? AllFlowComments { get; set; } 25 | } 26 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Utilities/TypeConverters/BoolToInverseConverter.cs: -------------------------------------------------------------------------------- 1 | namespace FlowHub_MAUI.Utilities.TypeConverters; 2 | public class BoolToInverseConverter : IValueConverter 3 | { 4 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 5 | { 6 | 7 | return null; 8 | 9 | } 10 | 11 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 12 | { 13 | 14 | Debug.WriteLine(message: "None"); 15 | return null; 16 | } 17 | } 18 | 19 | public class BoolToYesNoConverter : IValueConverter 20 | { 21 | public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) 22 | { 23 | var val = (bool)value!; 24 | if (val) 25 | { 26 | return "Yes"; 27 | } 28 | else 29 | { 30 | return "No"; 31 | } 32 | } 33 | 34 | public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) 35 | { 36 | Debug.WriteLine(message: "None"); 37 | return null; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /FlowHub-MAUI/Platforms/iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LSRequiresIPhoneOS 6 | 7 | UIDeviceFamily 8 | 9 | 1 10 | 2 11 | 12 | UIRequiredDeviceCapabilities 13 | 14 | arm64 15 | 16 | UISupportedInterfaceOrientations 17 | 18 | UIInterfaceOrientationPortrait 19 | UIInterfaceOrientationLandscapeLeft 20 | UIInterfaceOrientationLandscapeRight 21 | 22 | UISupportedInterfaceOrientations~ipad 23 | 24 | UIInterfaceOrientationPortrait 25 | UIInterfaceOrientationPortraitUpsideDown 26 | UIInterfaceOrientationLandscapeLeft 27 | UIInterfaceOrientationLandscapeRight 28 | 29 | XSAppIconAssets 30 | Assets.xcassets/appicon.appiconset 31 | 32 | 33 | -------------------------------------------------------------------------------- /FlowHub-MAUI/AppShellMobile.xaml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /FlowHub-MAUI/MainPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 10 | 15 | 16 |