utilities feature
This commit is contained in:
85
Gallery.Share/App.cs
Normal file
85
Gallery.Share/App.cs
Normal file
@@ -0,0 +1,85 @@
|
||||
using Xamarin.Forms;
|
||||
using Gallery.Services;
|
||||
using Xamarin.Essentials;
|
||||
using Gallery.Resources;
|
||||
using Gallery.Util;
|
||||
using Gallery.Resources.Theme;
|
||||
|
||||
namespace Gallery
|
||||
{
|
||||
public partial class App : Application
|
||||
{
|
||||
public static AppTheme CurrentTheme { get; private set; }
|
||||
public static PlatformCulture CurrentCulture { get; private set; }
|
||||
|
||||
public App()
|
||||
{
|
||||
DependencyService.Register<MockDataStore>();
|
||||
}
|
||||
|
||||
private void InitResource()
|
||||
{
|
||||
var theme = AppInfo.RequestedTheme;
|
||||
SetTheme(theme, true);
|
||||
}
|
||||
|
||||
private void InitPreference()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void InitLanguage()
|
||||
{
|
||||
var ci = Environment.GetCurrentCultureInfo();
|
||||
Environment.SetCultureInfo(ci);
|
||||
CurrentCulture = new PlatformCulture(ci.Name.ToLower());
|
||||
}
|
||||
|
||||
private void SetTheme(AppTheme theme, bool force = false)
|
||||
{
|
||||
if (force || theme != CurrentTheme)
|
||||
{
|
||||
CurrentTheme = theme;
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
#if DEBUG
|
||||
Log.Print($"application theme: {theme}");
|
||||
#endif
|
||||
Theme themeInstance = theme switch
|
||||
{
|
||||
AppTheme.Dark => DarkTheme.Instance,
|
||||
_ => LightTheme.Instance
|
||||
};
|
||||
#if __IOS__
|
||||
var style = (StatusBarStyles)themeInstance[Theme.StatusBarStyle];
|
||||
Environment.SetStatusBarStyle(style);
|
||||
#elif __ANDROID__
|
||||
var color = (Color)themeInstance[Theme.NavigationColor];
|
||||
Environment.SetStatusBarColor(color);
|
||||
#endif
|
||||
Resources = themeInstance;
|
||||
}
|
||||
|
||||
protected override void OnStart()
|
||||
{
|
||||
InitLanguage();
|
||||
MainPage = new AppShell();
|
||||
|
||||
InitResource();
|
||||
InitPreference();
|
||||
}
|
||||
|
||||
protected override void OnSleep()
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnResume()
|
||||
{
|
||||
var theme = AppInfo.RequestedTheme;
|
||||
SetTheme(theme);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user