feature: save location

This commit is contained in:
2022-03-17 16:19:18 +08:00
parent b46b150f6a
commit 60f7824cb5
16 changed files with 216 additions and 60 deletions

View File

@@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Billing.Languages;
@@ -14,15 +13,19 @@ namespace Billing
{
public class App : Application
{
private const string SaveLocationKey = nameof(SaveLocationKey);
public static AppTheme CurrentTheme { get; private set; }
public static PlatformCulture CurrentCulture { get; private set; }
public static List<Bill> Bills => bills ??= new List<Bill>();
public static List<Account> Accounts => accounts ??= new List<Account>();
public static List<Category> Categories => categories ??= new List<Category>();
public static bool SaveLocation => saveLocation;
private static List<Bill> bills;
private static List<Account> accounts;
private static List<Category> categories;
private static bool saveLocation;
private string initialUrl;
@@ -48,15 +51,6 @@ namespace Billing
}
}
public static async Task InitializeData()
{
var instance = await StoreHelper.Instance;
await Task.WhenAll(
Task.Run(async () => accounts = await instance.GetListAsync<Account>()),
Task.Run(async () => categories = await instance.GetListAsync<Category>()),
Task.Run(async () => bills = await instance.GetListAsync<Bill>()));
}
protected override void OnResume()
{
SetTheme(AppInfo.RequestedTheme);
@@ -93,6 +87,21 @@ namespace Billing
Resources = instance;
}
public static void SetSaveLocation(bool flag)
{
saveLocation = flag;
Preferences.Set(SaveLocationKey, flag);
}
public static async Task InitializeData()
{
var instance = await StoreHelper.Instance;
await Task.WhenAll(
Task.Run(async () => accounts = await instance.GetListAsync<Account>()),
Task.Run(async () => categories = await instance.GetListAsync<Category>()),
Task.Run(async () => bills = await instance.GetListAsync<Bill>()));
}
public static async Task<bool> OpenUrl(string url)
{
if (string.IsNullOrEmpty(url))
@@ -101,12 +110,7 @@ namespace Billing
}
if (File.Exists(url))
{
var status = await Permissions.CheckStatusAsync<Permissions.StorageRead>();
if (status != PermissionStatus.Disabled &&
status != PermissionStatus.Granted)
{
status = await Permissions.RequestAsync<Permissions.StorageRead>();
}
var status = await Helper.CheckAndRequestPermissionAsync<Permissions.StorageRead>();
if (status != PermissionStatus.Granted)
{
return false;