diff --git a/Mail.sln b/Mail.sln index a2befa2..e6b652f 100644 --- a/Mail.sln +++ b/Mail.sln @@ -22,8 +22,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repo", "repo", "{0D036B62-A EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MicaApps.Mail.UWP", "src\MicaApps.Mail.UWP\MicaApps.Mail.UWP.csproj", "{2601D787-59C4-4C96-9608-E7C7DA16DA39}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MicaApps.Mail", "src\MicaApps.Mail\MicaApps.Mail.csproj", "{A910A7C5-9F5C-457C-88B6-4CED1725398A}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -68,26 +66,6 @@ Global {2601D787-59C4-4C96-9608-E7C7DA16DA39}.Release|x86.ActiveCfg = Release|x86 {2601D787-59C4-4C96-9608-E7C7DA16DA39}.Release|x86.Build.0 = Release|x86 {2601D787-59C4-4C96-9608-E7C7DA16DA39}.Release|x86.Deploy.0 = Release|x86 - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|ARM.ActiveCfg = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|ARM.Build.0 = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|ARM64.Build.0 = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|x64.ActiveCfg = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|x64.Build.0 = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|x86.ActiveCfg = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Debug|x86.Build.0 = Debug|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|Any CPU.Build.0 = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|ARM.ActiveCfg = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|ARM.Build.0 = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|ARM64.ActiveCfg = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|ARM64.Build.0 = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|x64.ActiveCfg = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|x64.Build.0 = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|x86.ActiveCfg = Release|Any CPU - {A910A7C5-9F5C-457C-88B6-4CED1725398A}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-100.png b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-100.png index a3e8d99..aa974bc 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-100.png and b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-100.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-125.png b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-125.png index 42ebff2..34f2b41 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-125.png and b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-125.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-150.png b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-150.png index ee1d496..ef8feef 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-150.png and b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-150.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-200.png b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-200.png index c6a0ddd..415984d 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-200.png and b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-200.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-400.png b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-400.png index 36a7508..1b8444c 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-400.png and b/src/MicaApps.Mail.UWP/Assets/LargeTile.scale-400.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-100.png b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-100.png index 47ddd2a..353137c 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-100.png and b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-100.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-125.png b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-125.png index 9f4b4f8..e89ff17 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-125.png and b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-125.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-150.png b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-150.png index 0bf86cd..0dc9135 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-150.png and b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-150.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-200.png b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-200.png index 9d591b3..6c1158a 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-200.png and b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-200.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-400.png b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-400.png index 9e71bea..4f1a4ff 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-400.png and b/src/MicaApps.Mail.UWP/Assets/SmallTile.scale-400.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-100.png b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-100.png index 719a590..52d98ae 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-100.png and b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-100.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-125.png b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-125.png index c45aa6e..955ef13 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-125.png and b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-125.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-150.png b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-150.png index d231397..487abb9 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-150.png and b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-150.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-200.png b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-200.png index a289c41..ba8ce72 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-200.png and b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-200.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-400.png b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-400.png index 8f4ed59..1675a42 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-400.png and b/src/MicaApps.Mail.UWP/Assets/SplashScreen.scale-400.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-100.png b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-100.png index c9eed65..fdbd33b 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-100.png and b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-100.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-125.png b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-125.png index a783681..708622e 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-125.png and b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-125.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-150.png b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-150.png index c2069e0..68128a9 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-150.png and b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-150.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-200.png b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-200.png index 790e474..0d04594 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-200.png and b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-200.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-400.png b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-400.png index 02cb83f..94784a3 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-400.png and b/src/MicaApps.Mail.UWP/Assets/Square150x150Logo.scale-400.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png index 4071383..be58d83 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-16.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png index 0e13ba4..3b0dc7e 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-24.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png index ddb5343..02a1004 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-256.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png index 5619298..2be1b0d 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-32.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png index 23a585d..3a66267 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-lightunplated_targetsize-48.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png index 4071383..be58d83 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png index ddb5343..02a1004 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-32.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-32.png index 5619298..2be1b0d 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-32.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-32.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png index 23a585d..3a66267 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-100.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-100.png index 86f8586..2aa56d9 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-100.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-100.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-125.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-125.png index f50cf3c..3b5f0c6 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-125.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-125.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-150.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-150.png index 122f01e..26e5876 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-150.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-150.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-200.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-200.png index ca031d4..ceb5f8d 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-200.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-200.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-400.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-400.png index 363f2ca..bbc5b02 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-400.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.scale-400.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-16.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-16.png index ae416d0..955fcce 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-16.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-16.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24.png index 793f759..58f51f4 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png index 0e13ba4..3b0dc7e 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-256.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-256.png index c00c5f9..d187e1c 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-256.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-256.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-32.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-32.png index 86c5a8e..e827cf9 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-32.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-32.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-48.png b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-48.png index a1caaca..abe89fd 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-48.png and b/src/MicaApps.Mail.UWP/Assets/Square44x44Logo.targetsize-48.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-100.png b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-100.png index 4cba635..baa75af 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-100.png and b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-100.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-125.png b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-125.png index af7c629..42dae15 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-125.png and b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-125.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-150.png b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-150.png index eec03cc..bbd50f2 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-150.png and b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-150.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-200.png b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-200.png index a380df8..3a97398 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-200.png and b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-200.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-400.png b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-400.png index 7b63053..b0fda4d 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-400.png and b/src/MicaApps.Mail.UWP/Assets/StoreLogo.scale-400.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-100.png b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-100.png index e0ec18e..0fbb4ea 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-100.png and b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-100.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-125.png b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-125.png index d7ede4c..0982e6e 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-125.png and b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-125.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-150.png b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-150.png index a86f5ad..56ab244 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-150.png and b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-150.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-200.png b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-200.png index 719a590..52d98ae 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-200.png and b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-200.png differ diff --git a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-400.png b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-400.png index a289c41..ba8ce72 100644 Binary files a/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-400.png and b/src/MicaApps.Mail.UWP/Assets/Wide310x150Logo.scale-400.png differ diff --git a/src/MicaApps.Mail.UWP/Converters/ContactToAvatarConverter.cs b/src/MicaApps.Mail.UWP/Converters/ContactToAvatarConverter.cs index ea7a77b..e3753a4 100644 --- a/src/MicaApps.Mail.UWP/Converters/ContactToAvatarConverter.cs +++ b/src/MicaApps.Mail.UWP/Converters/ContactToAvatarConverter.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Buffers.Text; using System.Collections.Generic; using System.IO; @@ -12,12 +13,17 @@ using Mail.Services.Data; using Microsoft.Extensions.DependencyInjection; using Microsoft.Toolkit.Uwp.Helpers; +using System.Net.Mail; +using System.Net.Http; +using System.Diagnostics; namespace Mail.Converters; public class ContactToAvatarConverter : IValueConverter { private ICacheService? CacheService; + private Dictionary _instantCache = new(); + private readonly HttpClient httpClient =new HttpClient(); public ContactToAvatarConverter() { @@ -26,21 +32,95 @@ public ContactToAvatarConverter() public object Convert(object value, Type targetType, object parameter, string language) { - var contacts = CacheService?.GetCache>(); - if (value is string recipient && contacts is not null) + try { - if (contacts.FirstOrDefault(t => t.Address == recipient) is { } contact) + var contacts = CacheService?.GetCache>(); + if (value is string recipient) { - contact.Avatar.Seek(0, SeekOrigin.Begin); - var ret = new StreamReader(contact.Avatar).ReadToEnd(); - byte[] bytes = System.Convert.FromBase64String(ret); - var bitmap = new BitmapImage(); - MemoryStream ms = new MemoryStream(bytes); - bitmap.SetSourceAsync(ms.AsRandomAccessStream()); - - return bitmap; + byte[]? resultByte = null; + + if (contacts is not null && contacts.FirstOrDefault(t => t.Address == recipient) is { } contact) + { + contact.Avatar.Seek(0, SeekOrigin.Begin); + var ret = new StreamReader(contact.Avatar).ReadToEnd(); + resultByte = System.Convert.FromBase64String(ret); + } + else + { + if (true) + { + if (_instantCache.ContainsKey(recipient)) + return _instantCache[recipient]; + var domainSplit = new MailAddress(recipient).Host.Split('.'); + if (domainSplit.Length > 3 && (domainSplit[domainSplit.Length - 2] == "co" || + domainSplit[domainSplit.Length - 2] == "com")) + { + recipient = domainSplit[domainSplit.Length - 3] + "." + + domainSplit[domainSplit.Length - 2] + "." + + domainSplit[domainSplit.Length - 1]; + } + else + { + recipient = domainSplit[domainSplit.Length - 2] + "." + + domainSplit[domainSplit.Length - 1]; + } + if (_instantCache.ContainsKey(recipient)) + return _instantCache[recipient]; + + if (false) + { + // I'M EVIL + try + { + // BAD PRACTICE! + resultByte = httpClient.GetByteArrayAsync($"https://{recipient}/favicon.ico").GetAwaiter().GetResult(); + if (resultByte[0] == 0x00 && resultByte[1] == 0x00 && resultByte[2] == 0x01 && resultByte[3] == 0x00) + { + // noting + } + else + { + + throw new BadImageFormatException(); + } + + } + catch (Exception ex) + { + resultByte = null; + } + } + else + { + var bitmap = new BitmapImage(); + bitmap.UriSource = new Uri("https://" + recipient + "/favicon.ico"); + _instantCache[recipient] = bitmap; + return bitmap; + } + + + + } + } + if (resultByte != null) + { + var bitmap = new BitmapImage(); + MemoryStream ms = new MemoryStream(resultByte); + bitmap.SetSourceAsync(ms.AsRandomAccessStream()); + _instantCache[recipient] = bitmap; + } + else + { + _instantCache[recipient] = null; + } + + return _instantCache[recipient]!; } } + catch + { + // ignore + } return null!; } diff --git a/src/MicaApps.Mail.UWP/Extensions/CustomDbContext.cs b/src/MicaApps.Mail.UWP/Extensions/CustomDbContext.cs index f44bb72..9ebd87a 100644 --- a/src/MicaApps.Mail.UWP/Extensions/CustomDbContext.cs +++ b/src/MicaApps.Mail.UWP/Extensions/CustomDbContext.cs @@ -20,21 +20,12 @@ public CustomDbContext(IDbConnectionFactory dbConnectionFactory) : base(dbConnec } - public CustomDbContext(IDbConnectionFactory dbConnectionFactory, bool concurrencyMode) : base(dbConnectionFactory, concurrencyMode) - { - - } public CustomDbContext(Func dbConnectionFactory) : base(dbConnectionFactory) { } - public CustomDbContext(Func dbConnectionFactory, bool concurrencyMode) : base(dbConnectionFactory, concurrencyMode) - { - - } - protected override Task Delete(TEntity entity, string table, bool async) { this.GetDbOperationEvent().OnExecEvent(entity, OperationType.Delete); diff --git a/src/MicaApps.Mail.UWP/Extensions/DependencyObjectExtension.cs b/src/MicaApps.Mail.UWP/Extensions/DependencyObjectExtension.cs index 63deece..77cdcac 100644 --- a/src/MicaApps.Mail.UWP/Extensions/DependencyObjectExtension.cs +++ b/src/MicaApps.Mail.UWP/Extensions/DependencyObjectExtension.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using Windows.UI.Xaml.Media; using Windows.UI.Xaml; +using Windows.UI.Popups; namespace Mail.Extensions { @@ -39,32 +40,40 @@ public static T FindChildOfType(this DependencyObject root) where T : Depende public static T FindChildOfName(this DependencyObject Parent, string Name) where T : DependencyObject { - Queue ObjectQueue = new Queue(); - - ObjectQueue.Enqueue(Parent); - - while (ObjectQueue.Count > 0) + try { - DependencyObject Current = ObjectQueue.Dequeue(); + Queue ObjectQueue = new Queue(); - if (Current != null) + ObjectQueue.Enqueue(Parent); + + while (ObjectQueue.Count > 0) { - for (int i = 0; i < VisualTreeHelper.GetChildrenCount(Current); i++) - { - DependencyObject ChildObject = VisualTreeHelper.GetChild(Current, i); + DependencyObject Current = ObjectQueue.Dequeue(); - if (ChildObject is T TypedChild && (TypedChild as FrameworkElement)?.Name == Name) - { - return TypedChild; - } - else + if (Current != null) + { + for (int i = 0; i < VisualTreeHelper.GetChildrenCount(Current); i++) { - ObjectQueue.Enqueue(ChildObject); + DependencyObject ChildObject = VisualTreeHelper.GetChild(Current, i); + + if (ChildObject is T TypedChild && (TypedChild as FrameworkElement)?.Name == Name) + { + return TypedChild; + } + else + { + ObjectQueue.Enqueue(ChildObject); + } } } } - } + + } + catch (System.Exception ex) + { + string b = ex.Message; + } return null; } diff --git a/src/MicaApps.Mail.UWP/MicaApps.Mail.UWP.csproj b/src/MicaApps.Mail.UWP/MicaApps.Mail.UWP.csproj index 25b1a41..52497eb 100644 --- a/src/MicaApps.Mail.UWP/MicaApps.Mail.UWP.csproj +++ b/src/MicaApps.Mail.UWP/MicaApps.Mail.UWP.csproj @@ -21,6 +21,15 @@ true true true + False + SHA256 + True + False + False + Always + x64 + True + 0 true @@ -135,6 +144,9 @@ + + + BlankPage.xaml @@ -165,7 +177,7 @@ - + MainPage.xaml @@ -243,6 +255,7 @@ + @@ -258,7 +271,7 @@ MSBuild:Compile Designer - + MSBuild:Compile Designer @@ -301,10 +314,10 @@ - 5.10.0 + 5.19.0 - 5.10.0 + 5.19.0 7.1.4 @@ -312,32 +325,38 @@ 0.0.13 + + 8.2.2 + 0.1.10 - 7.0.12 + 8.0.2 - 8.0.0-preview.4.23259.5 + 8.0.0 - 7.0.0 + 8.0.0 - 5.12.0 + 5.44.0 - 4.56.0 + 4.59.0 6.2.14 + + 7.1.3 + 7.1.3 - 2.8.5 + 2.8.6 13.0.3 @@ -350,10 +369,8 @@ - - {a910a7c5-9f5c-457c-88b6-4ced1725398a} - MicaApps.Mail - + + 14.0 diff --git a/src/MicaApps.Mail.UWP/Models/LoadMailMessageOption.cs b/src/MicaApps.Mail.UWP/Models/LoadMailMessageOption.cs index 3f474a0..6b0803a 100644 --- a/src/MicaApps.Mail.UWP/Models/LoadMailMessageOption.cs +++ b/src/MicaApps.Mail.UWP/Models/LoadMailMessageOption.cs @@ -15,4 +15,6 @@ public sealed class LoadMailMessageOption public int LoadCount { get; set; } = 30; public bool IsFocusedTab { get; set; } = true; + + public bool ForceReload { get; set; } = false; } \ No newline at end of file diff --git a/src/MicaApps.Mail.UWP/Models/MailMessageListDetailViewModel.cs b/src/MicaApps.Mail.UWP/Models/MailMessageListDetailViewModel.cs index 806424d..bf5e88e 100644 --- a/src/MicaApps.Mail.UWP/Models/MailMessageListDetailViewModel.cs +++ b/src/MicaApps.Mail.UWP/Models/MailMessageListDetailViewModel.cs @@ -34,7 +34,10 @@ public string PreviewText public string SenderName { - get => InnerData.Sender.Name; + get + { + return InnerData.Sender?.Name ?? string.Empty; + } set => InnerData.Sender.Name = value; } diff --git a/src/MicaApps.Mail.UWP/Package.appxmanifest b/src/MicaApps.Mail.UWP/Package.appxmanifest index 0b8faa6..1632371 100644 --- a/src/MicaApps.Mail.UWP/Package.appxmanifest +++ b/src/MicaApps.Mail.UWP/Package.appxmanifest @@ -8,10 +8,10 @@ + Publisher="CN=8136FD48-8D5A-4FB2-8DF9-A606C867768F" + Version="0.1.31.0" /> - + 电邮 diff --git a/src/MicaApps.Mail.UWP/PageModels/LoginPageModel.cs b/src/MicaApps.Mail.UWP/PageModels/LoginPageModel.cs new file mode 100644 index 0000000..6cb84bc --- /dev/null +++ b/src/MicaApps.Mail.UWP/PageModels/LoginPageModel.cs @@ -0,0 +1,42 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using Mail.Services; +using Mail; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using Microsoft.Extensions.DependencyInjection; + +namespace MicaApps.Mail.PageModels +{ + internal class LoginPageModel : ObservableObject + { + private string errorMessage; + private bool errorMessageIsOpen; + + public ICommand OutlookLoginCommand { get; set; } + public string ErrorMessage { get => errorMessage; set => SetProperty(ref errorMessage, value); } + public bool ErrorMessageIsOpen { get => errorMessageIsOpen; set => SetProperty(ref errorMessageIsOpen,value); } + + public LoginPageModel() + { + OutlookLoginCommand = new AsyncRelayCommand(OutlookLogin); + } + + private async Task OutlookLogin() + { + try + { + await App.Services.GetService().SignInAsync(); + } + catch (Exception ex) + { + ErrorMessageIsOpen = true; + ErrorMessage = ex.Message; + } + } + } +} diff --git a/src/MicaApps.Mail.UWP/PageModels/MainPageModel.cs b/src/MicaApps.Mail.UWP/PageModels/MainPageModel.cs new file mode 100644 index 0000000..628b71a --- /dev/null +++ b/src/MicaApps.Mail.UWP/PageModels/MainPageModel.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using CommunityToolkit.Mvvm.ComponentModel; + +namespace MicaApps.Mail.PageModel +{ + internal class MainPageModel : ObservableObject + { + public MainPageModel() + { + + } + } +} diff --git a/src/MicaApps.Mail.UWP/PageModels/SplashPageModel.cs b/src/MicaApps.Mail.UWP/PageModels/SplashPageModel.cs new file mode 100644 index 0000000..7e78d7a --- /dev/null +++ b/src/MicaApps.Mail.UWP/PageModels/SplashPageModel.cs @@ -0,0 +1,51 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using Mail.Services; +using Mail; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using Windows.UI.Core; +using Microsoft.Extensions.DependencyInjection; +using Windows.UI.Xaml; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.UI; +using Windows.UI.ViewManagement; +using Windows.UI.Xaml.Controls; +using Mail.Pages; +using Microsoft.Toolkit.Uwp.Helpers; +using Windows.System; +using Windows.System.Threading; + +namespace MicaApps.Mail.PageModels +{ + internal class SplashPageModel : ObservableObject + { + public ICommand DismissedCommand { get; set; } + + public SplashPageModel() + { + DismissedCommand = new AsyncRelayCommand(DismissedAsync); + } + + private async Task DismissedAsync() + { + bool IsSignIn = await App.Services.GetService().SignInSilentAsync(); + DispatcherQueue dispatcherQueue = DispatcherQueue.GetForCurrentThread(); + await ThreadPool.RunAsync((workItem) => + { + dispatcherQueue.TryEnqueue(() => + { + Window.Current.Content = new Frame + { + Content = new MainPage(IsSignIn) + }; + }); + }); + } + } +} diff --git a/src/MicaApps.Mail.UWP/Pages/HomePage.xaml.cs b/src/MicaApps.Mail.UWP/Pages/HomePage.xaml.cs index 2cf24c9..145dfeb 100644 --- a/src/MicaApps.Mail.UWP/Pages/HomePage.xaml.cs +++ b/src/MicaApps.Mail.UWP/Pages/HomePage.xaml.cs @@ -81,37 +81,44 @@ private void HomePage_Loaded(object sender, RoutedEventArgs e) protected override async void OnNavigatedTo(NavigationEventArgs e) { - MailFolderSource.Add(new NavigationViewItemSeparator()); - try { - IReadOnlyList MailFolders = await Service.GetMailSuperFoldersAsync().OrderBy((Data) => Data.Type).ToArrayAsync(); + MailFolderSource.Add(new NavigationViewItemSeparator()); - if (MailFolders.Count > 0) + try { - MailFolderSource.AddRange(MailFolders.TakeWhile((Data) => Data.Type != MailFolderType.Other)); - MailFolderSource.Add(new NavigationViewItemSeparator()); - MailFolderSource.AddRange(MailFolders.Skip(MailFolderSource.Count)); + IReadOnlyList MailFolders = await Service.GetMailSuperFoldersAsync().OrderBy((Data) => Data.Type).ToArrayAsync(); + + if (MailFolders.Count > 0) + { + MailFolderSource.AddRange(MailFolders.TakeWhile((Data) => Data.Type != MailFolderType.Other)); + MailFolderSource.Add(new NavigationViewItemSeparator()); + MailFolderSource.AddRange(MailFolders.Skip(MailFolderSource.Count)); + } + } + catch (Exception exception) + { + Trace.WriteLine(exception); } - } - catch (Exception exception) - { - Trace.WriteLine(exception); - } - NavView.SelectedItem = MailFolderSource.OfType().FirstOrDefault(); + NavView.SelectedItem = MailFolderSource.OfType().FirstOrDefault(); - Service.MailFoldersTree.CollectionChanged += (Sender, Args) => - { - //Trace.WriteLine($"Tree Changed: {Enum.GetName(typeof(NotifyCollectionChangedAction),Args.Action)} : {JsonConvert.SerializeObject(Args.NewItems)}"); - foreach (var item in Args.NewItems) + Service.MailFoldersTree.CollectionChanged += (Sender, Args) => { - if (Args.Action == NotifyCollectionChangedAction.Add) - MailFolderSource.Add(item); - else if (Args.Action == NotifyCollectionChangedAction.Remove) - MailFolderSource.Remove(item); - } - }; + //Trace.WriteLine($"Tree Changed: {Enum.GetName(typeof(NotifyCollectionChangedAction),Args.Action)} : {JsonConvert.SerializeObject(Args.NewItems)}"); + foreach (var item in Args.NewItems) + { + if (Args.Action == NotifyCollectionChangedAction.Add) + MailFolderSource.Add(item); + else if (Args.Action == NotifyCollectionChangedAction.Remove) + MailFolderSource.Remove(item); + } + }; + } + catch (Exception ex) + { + Trace.WriteLine(ex); + } } private void SystemBar_IsVisibleChanged(CoreApplicationViewTitleBar sender, object args) @@ -136,6 +143,7 @@ private void SystemBar_LayoutMetricsChanged(CoreApplicationViewTitleBar sender, private void NavView_SelectionChanged(NavigationView sender, Microsoft.UI.Xaml.Controls.NavigationViewSelectionChangedEventArgs args) { + try { if (args.IsSettingsSelected) { NavigationContent.Navigate(typeof(SettingsPage), null, new DrillInNavigationTransitionInfo()); @@ -144,6 +152,8 @@ private void NavView_SelectionChanged(NavigationView sender, { NavigationContent.Navigate(typeof(MailFolderDetailsPage), data, new DrillInNavigationTransitionInfo()); } + } + catch(Exception ex) { string a = ex.Message; } } private void PaneToggleButton_Click(object sender, RoutedEventArgs e) diff --git a/src/MicaApps.Mail.UWP/Pages/LoginPage.xaml b/src/MicaApps.Mail.UWP/Pages/LoginPage.xaml index 2266582..68179d4 100644 --- a/src/MicaApps.Mail.UWP/Pages/LoginPage.xaml +++ b/src/MicaApps.Mail.UWP/Pages/LoginPage.xaml @@ -6,7 +6,11 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ctkl="using:CommunityToolkit.Labs.WinUI" xmlns:muxc="using:Microsoft.UI.Xaml.Controls" + xmlns:pm ="using:MicaApps.Mail.PageModels" mc:Ignorable="d"> + + + @@ -42,7 +46,7 @@ HorizontalAlignment="Center" /> + Command="{Binding OutlookLoginCommand}" /> @@ -62,6 +66,8 @@ Severity="Error" VerticalAlignment="Bottom" MaxWidth="736" - Margin="32" /> + Margin="32" + IsOpen="{Binding ErrorMessageIsOpen,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" + Message="{Binding ErrorMessage,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> diff --git a/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml b/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml index 106fd4f..4de636f 100644 --- a/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml +++ b/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml @@ -523,11 +523,14 @@ Value="43" /> - - - + + + diff --git a/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml.cs b/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml.cs index f8d5797..42064c3 100644 --- a/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml.cs +++ b/src/MicaApps.Mail.UWP/Pages/MailFolderDetailsPage.xaml.cs @@ -51,12 +51,19 @@ protected override void OnNavigatedTo(NavigationEventArgs e) NavigationData = Data; FolderName.Text = Data.Name; NavigationTab.SelectedItem = FocusedTab; - + if(Data.Type == MailFolderType.Inbox && Data.MailType == MailType.Outlook) + { + NavigationTab.Visibility = Visibility.Visible; + } + else + { + NavigationTab.Visibility = Visibility.Collapsed; + } NavigationView_SelectionChanged(NavigationTab, null); } } - private async Task InitializeDataFromMailFolderAsync(MailFolderData MailFolder) + private async Task InitializeDataFromMailFolderAsync(MailFolderData MailFolder, bool forceReload = false) { EmptyContentText.Text = "Syncing you email"; @@ -69,7 +76,8 @@ private async Task InitializeDataFromMailFolderAsync(MailFolderData MailFolder) FolderId = MailFolder.Id, StartIndex = Instance.Count, LoadCount = (int)Math.Max(Instance.MinIncrementalLoadingStep, RequestCount), - IsFocusedTab = FocusedTab.Equals(NavigationTab.SelectedItem as NavigationViewItem) && MailFolder.Type == MailFolderType.Inbox + IsFocusedTab = FocusedTab.Equals(NavigationTab.SelectedItem) && MailFolder.Type == MailFolderType.Inbox, + ForceReload = forceReload }; if (Options.IsFocusedTab && CurrentService is IMailService.IFocusFilterSupport filterSupport) @@ -288,6 +296,10 @@ private async void DetailsView_SelectionChanged(object sender, SelectionChangedE { // No need to handle this exception } + catch (Exception) + { + + } } } } @@ -455,5 +467,11 @@ private async void MailMoveArchiveAsync(object Sender, RoutedEventArgs E) await CurrentService.MailMoveAsync(Model.Id, folder.Id); } } + private async void AppBarButton_List_Refresh_Click(object sender, RoutedEventArgs e) + { + //TODO: Refresh your email list here + await InitializeDataFromMailFolderAsync(NavigationData, true); + } + } } \ No newline at end of file diff --git a/src/MicaApps.Mail.UWP/MainPage.xaml b/src/MicaApps.Mail.UWP/Pages/MainPage.xaml similarity index 100% rename from src/MicaApps.Mail.UWP/MainPage.xaml rename to src/MicaApps.Mail.UWP/Pages/MainPage.xaml diff --git a/src/MicaApps.Mail.UWP/MainPage.xaml.cs b/src/MicaApps.Mail.UWP/Pages/MainPage.xaml.cs similarity index 64% rename from src/MicaApps.Mail.UWP/MainPage.xaml.cs rename to src/MicaApps.Mail.UWP/Pages/MainPage.xaml.cs index 7b4b455..1d6a722 100644 --- a/src/MicaApps.Mail.UWP/MainPage.xaml.cs +++ b/src/MicaApps.Mail.UWP/Pages/MainPage.xaml.cs @@ -6,6 +6,10 @@ using Windows.UI; using Windows.UI.Xaml.Controls; using CommunityToolkit.Authentication; +using System.Threading.Tasks; +using System; +using Mail.Services.Data; +using System.Collections.Generic; namespace Mail { @@ -21,7 +25,7 @@ public MainPage(bool isLogin) if (isLogin) { - MainNavigation.Navigate(typeof(HomePage)); + HandleLogin(); } else { @@ -29,13 +33,31 @@ public MainPage(bool isLogin) } } + private void HandleLogin() + { + Task.Run(async () => + { + try + { + // Load Contacts to Cache + var contacts = await App.Services.GetService().GetContactsAsync(); + App.Services.GetService()!.AddOrReplaceCache>(contacts); + } + catch (Exception e) + { + // ignore + } + }); + MainNavigation.Navigate(typeof(HomePage)); + } + private void Provider_StateChanged(object sender, ProviderStateChangedEventArgs e) { switch (e.NewState) { case ProviderState.SignedIn: { - MainNavigation.Navigate(typeof(HomePage)); + HandleLogin(); break; } case ProviderState.SignedOut when MainNavigation.CurrentSourcePageType != typeof(LoginPage): diff --git a/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml b/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml index 2053835..66576f8 100644 --- a/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml +++ b/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml @@ -5,9 +5,19 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:muxc="using:Microsoft.UI.Xaml.Controls" + xmlns:Core="using:Microsoft.Xaml.Interactions.Core" + xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" + xmlns:pm="using:MicaApps.Mail.PageModels" mc:Ignorable="d" - Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> - + Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" > + + + + + + + + @@ -26,6 +36,7 @@ + VerticalAlignment="Stretch" + /> diff --git a/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml.cs b/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml.cs index 1081089..414d81b 100644 --- a/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml.cs +++ b/src/MicaApps.Mail.UWP/Pages/SplashPage.xaml.cs @@ -32,7 +32,7 @@ private SplashPage(SplashScreen Splash) Window.Current.SetTitleBar(AppTitleBar); this.Splash = Splash ?? throw new ArgumentNullException(nameof(Splash), "Parameter could not be null"); - this.Splash.Dismissed += Splash_Dismissed; + //this.Splash.Dismissed += Splash_Dismissed; Loaded += SplashPage_Loaded; Unloaded += SplashPage_Unloaded; diff --git a/src/MicaApps.Mail.UWP/Services/Data/MailMessageData.cs b/src/MicaApps.Mail.UWP/Services/Data/MailMessageData.cs index cf65ab4..22150f6 100644 --- a/src/MicaApps.Mail.UWP/Services/Data/MailMessageData.cs +++ b/src/MicaApps.Mail.UWP/Services/Data/MailMessageData.cs @@ -13,11 +13,17 @@ public MailMessageData() { } - public MailMessageData(string FolderId, string Title, string MessageId, DateTimeOffset? SentTime, + public MailMessageData(string FolderId, + string Title, + string MessageId, + DateTimeOffset? SentTime, MailMessageRecipientData Sender, - IEnumerable To, IEnumerable Cc, - IEnumerable Bcc, MailMessageContentData Content, - IEnumerable Attachments, string InferenceClassification = "Focused") + IEnumerable To, + IEnumerable Cc, + IEnumerable Bcc, + MailMessageContentData Content, + IEnumerable Attachments, + string InferenceClassification = "Focused") { this.InferenceClassification = InferenceClassification; this.FolderId = FolderId; diff --git a/src/MicaApps.Mail.UWP/Services/OutlookService.cs b/src/MicaApps.Mail.UWP/Services/OutlookService.cs index f9c13c8..8378ded 100644 --- a/src/MicaApps.Mail.UWP/Services/OutlookService.cs +++ b/src/MicaApps.Mail.UWP/Services/OutlookService.cs @@ -84,10 +84,14 @@ public OutlookService() : base(WebAccountProviderType.Msa) async IAsyncEnumerable IMailService.IFocusFilterSupport.GetMailMessageAsync( LoadMailMessageOption option, [EnumeratorCancellation] CancellationToken CancelToken) { - foreach (var message in LocalCache.QueryMessage(option)) + + if (!option.ForceReload) { - MemoryCache.Set(message.MessageId, message); - yield return message; + foreach (var message in LocalCache.QueryMessage(option)) + { + MemoryCache.Set(message.MessageId, message); + yield return message; + } } var type = option.IsFocusedTab ? "Focused" : "Other"; @@ -107,7 +111,7 @@ async IAsyncEnumerable IMailService.IFocusFilterSupport.GetMail { CancelToken.ThrowIfCancellationRequested(); - if (MemoryCache.Get(message.Id) is null) + if (MemoryCache.Get(message.Id) is null || option.ForceReload) { yield return await GenAndSaveMailMessageDataAsync(rootFolderId, message, type); } @@ -117,22 +121,39 @@ async IAsyncEnumerable IMailService.IFocusFilterSupport.GetMail private async Task GenAndSaveMailMessageDataAsync(string RootFolderId, Message message, string type = "Focused") { - var messageData = new MailMessageData(RootFolderId, message.Subject, - message.Id, - message.SentDateTime, - new MailMessageRecipientData(message.Sender.EmailAddress.Name, message.Sender.EmailAddress.Address), - message.ToRecipients.Select((Recipient) => - new MailMessageRecipientData(Recipient.EmailAddress.Name, Recipient.EmailAddress.Address)), - message.CcRecipients.Select((Recipient) => - new MailMessageRecipientData(Recipient.EmailAddress.Name, Recipient.EmailAddress.Address)), - message.BccRecipients.Select((Recipient) => - new MailMessageRecipientData(Recipient.EmailAddress.Name, Recipient.EmailAddress.Address)), - new MailMessageContentData(message.Id, message.Body.Content, message.BodyPreview, - (MailMessageContentType)message.Body.ContentType), - message.Attachments?.Select((Attachment) => new MailMessageAttachmentData(Attachment.Name, + string folderId = RootFolderId; + string title = message.Subject; + string messageId = message.Id; + DateTimeOffset? sentTime = message.SentDateTime; + + string senderEmailAddressName = message.Sender?.EmailAddress.Name ?? string.Empty; + string senderEmailAddress = message.Sender?.EmailAddress.Address ?? string.Empty; + + MailMessageRecipientData sender = new MailMessageRecipientData(senderEmailAddressName, senderEmailAddress); + IEnumerable messageTo = message.ToRecipients.Select((Recipient) => + new MailMessageRecipientData(Recipient.EmailAddress.Name, Recipient.EmailAddress.Address)); + IEnumerable messageCc = message.CcRecipients.Select((Recipient) => + new MailMessageRecipientData(Recipient.EmailAddress.Name, Recipient.EmailAddress.Address)); + IEnumerable messageBcc = message.BccRecipients.Select((Recipient) => + new MailMessageRecipientData(Recipient.EmailAddress.Name, Recipient.EmailAddress.Address)); + + MailMessageContentData mailMessageContentData = new MailMessageContentData(message.Id, message.Body.Content, message.BodyPreview, + (MailMessageContentType)message.Body.ContentType); + + IEnumerable attachments = message.Attachments?.Select((Attachment) => new MailMessageAttachmentData(Attachment.Name, Attachment.Id, Attachment.ContentType, Convert.ToUInt64(Attachment.Size), Attachment.LastModifiedDateTime.GetValueOrDefault())) ?? - Enumerable.Empty(), type); + Enumerable.Empty(); + + + + var messageData = new MailMessageData(folderId, title, + messageId, + sentTime, + sender, + messageTo,messageCc,messageBcc, + mailMessageContentData, + attachments, type); // 为了插入映射的接受者类型, 这里手动处理中间数据插入 LocalCache.SaveMessage(messageData); @@ -293,8 +314,8 @@ public override async IAsyncEnumerable GetMailMessageAsync(Load { CancelToken.ThrowIfCancellationRequested(); if (MemoryCache.Get(message.Id) is not null) continue; - - var messageData = await GenAndSaveMailMessageDataAsync(option.FolderId, message); + var focused = option.IsFocusedTab ? "Focused" : "Other"; + var messageData = await GenAndSaveMailMessageDataAsync(option.FolderId, message, focused); yield return messageData; } @@ -352,7 +373,7 @@ public override async Task> GetContactsAsync( foreach (var Contact in Contacts) { var req = IProviderExtension.GetClient(Provider).Me.Contacts.ToGetRequestInformation(); - req.URI = new Uri(req.URI + "/" + Contact.Id + "/photo/$value"); + req.URI = new Uri(req.URI + "/" + Contact.Id + "/photo/48x48/$value"); var id = await batch.AddBatchRequestStepAsync(req); UserToIdMapping[Contact.Id] = id; } diff --git a/src/MicaApps.Mail/MicaApps.Mail.csproj b/src/MicaApps.Mail/MicaApps.Mail.csproj index 330f350..df6ca8f 100644 --- a/src/MicaApps.Mail/MicaApps.Mail.csproj +++ b/src/MicaApps.Mail/MicaApps.Mail.csproj @@ -7,4 +7,8 @@ enable + + + +