Skip to content

Commit 2b72f39

Browse files
authored
TF Release
1 parent f6a03b7 commit 2b72f39

38 files changed

Lines changed: 611 additions & 276 deletions

HannerLabApp.Tests/ExportPackageGenerationTests.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
1-
using System;
2-
using Dropbox.Api.Users;
3-
using HannerLabApp.Configuration;
41
using HannerLabApp.Models;
5-
using HannerLabApp.Services.Exporters;
62
using Newtonsoft.Json;
73
using NUnit.Framework;
84

95
namespace HannerLabApp.Tests
106
{
11-
/// <summary>
12-
/// TODO: Make tests
13-
/// </summary>
147
public class Tests
158
{
169
[SetUp]

HannerLabApp.Tests/HannerLabApp.Tests.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
<ItemGroup>
2020
<PackageReference Include="NUnit" Version="3.13.3" />
2121
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
22-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
22+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
23+
<PackageReference Include="SkiaSharp" Version="2.88.0" />
2324
</ItemGroup>
2425

2526
<ItemGroup>

HannerLabApp.sln.DotSettings

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
2+
<s:Boolean x:Key="/Default/UserDictionary/Words/=Ednas/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

HannerLabApp/HannerLabApp.Android/HannerLabApp.Android.csproj

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
1717
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
1818
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
19-
<AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
2019
<TargetFrameworkVersion>v12.0</TargetFrameworkVersion>
2120
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
2221
<AndroidUseAapt2>true</AndroidUseAapt2>
@@ -55,7 +54,7 @@
5554
</ItemGroup>
5655
<ItemGroup>
5756
<PackageReference Include="Dropbox.Api">
58-
<Version>6.26.0</Version>
57+
<Version>6.30.0</Version>
5958
</PackageReference>
6059
<PackageReference Include="LiteDB">
6160
<Version>5.0.11</Version>
@@ -70,19 +69,28 @@
7069
<Version>6.0.0</Version>
7170
</PackageReference>
7271
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded">
73-
<Version>6.0.3</Version>
72+
<Version>6.0.5</Version>
7473
</PackageReference>
7574
<PackageReference Include="Newtonsoft.Json">
7675
<Version>13.0.1</Version>
7776
</PackageReference>
7877
<PackageReference Include="NPOI">
79-
<Version>2.5.5</Version>
78+
<Version>2.5.6</Version>
8079
</PackageReference>
8180
<PackageReference Include="Plugin.CurrentActivity">
8281
<Version>2.1.0.4</Version>
8382
</PackageReference>
8483
<PackageReference Include="Serilog">
85-
<Version>2.10.0</Version>
84+
<Version>2.11.0</Version>
85+
</PackageReference>
86+
<PackageReference Include="Serilog.Exceptions">
87+
<Version>8.2.0</Version>
88+
</PackageReference>
89+
<PackageReference Include="Serilog.Sinks.File">
90+
<Version>5.0.0</Version>
91+
</PackageReference>
92+
<PackageReference Include="SkiaSharp">
93+
<Version>2.88.0</Version>
8694
</PackageReference>
8795
<PackageReference Include="System.Numerics.Vectors">
8896
<Version>4.5.0</Version>
@@ -91,22 +99,22 @@
9199
<Version>6.0.0</Version>
92100
</PackageReference>
93101
<PackageReference Include="TinyMvvm">
94-
<Version>3.0.1</Version>
102+
<Version>3.1.0</Version>
95103
</PackageReference>
96104
<PackageReference Include="TinyMvvm.Autofac">
97-
<Version>3.0.1</Version>
105+
<Version>3.1.0</Version>
98106
</PackageReference>
99107
<PackageReference Include="TinyMvvm.Forms">
100-
<Version>3.0.1</Version>
108+
<Version>3.1.0</Version>
101109
</PackageReference>
102110
<PackageReference Include="Xamarin.CommunityToolkit">
103-
<Version>2.0.1</Version>
111+
<Version>2.0.2</Version>
104112
</PackageReference>
105113
<PackageReference Include="Xamarin.CommunityToolkit.Markup">
106-
<Version>2.0.1</Version>
114+
<Version>2.0.2</Version>
107115
</PackageReference>
108116
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />
109-
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" />
117+
<PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
110118
<PackageReference Include="ZXing.Net.Mobile">
111119
<Version>2.4.1</Version>
112120
</PackageReference>

HannerLabApp/HannerLabApp.Android/Resources/Resource.designer.cs

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

HannerLabApp/HannerLabApp.Android/Services/MediaService.cs

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,37 @@
33
using HannerLabApp.Services.Media;
44
using Plugin.CurrentActivity;
55
using System;
6+
using System.Threading.Tasks;
7+
using Xamarin.Essentials;
8+
using System.IO;
9+
using Android.Graphics;
10+
using HannerLabApp.Extensions;
11+
using Path = System.IO.Path;
612

713
[assembly: Xamarin.Forms.Dependency(typeof(MediaService))]
814
namespace HannerLabApp.Droid.Services
915
{
1016
public class MediaService : IMediaService
1117
{
1218
Context CurrentContext => CrossCurrentActivity.Current.Activity;
13-
public void SaveImageFromByte(byte[] imageByte, string fileName)
19+
20+
public async Task SaveImageFileResultToGalleryAsync(FileResult file)
1421
{
1522
try
1623
{
24+
var fileName = file.FileName;
25+
1726
var storagePath = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).AbsolutePath;
18-
string path = System.IO.Path.Combine(storagePath, fileName);
19-
System.IO.File.WriteAllBytes(path, imageByte);
27+
string path = Path.Combine(storagePath, fileName);
28+
29+
using (var stream = await file.OpenReadAsync())
30+
{
31+
using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
32+
{
33+
stream.CopyTo(fileStream);
34+
}
35+
}
36+
2037
var mediaScanIntent = new Intent(Intent.ActionMediaScannerScanFile);
2138
mediaScanIntent.SetData(Android.Net.Uri.FromFile(new Java.IO.File(path)));
2239
CurrentContext.SendBroadcast(mediaScanIntent);
@@ -26,5 +43,42 @@ public void SaveImageFromByte(byte[] imageByte, string fileName)
2643
Console.WriteLine("Failed to save image to gallery", ex);
2744
}
2845
}
46+
47+
public async Task<byte[]> GenerateImageThumbnailAsync(FileResult file)
48+
{
49+
using (var stream = await file.OpenReadAsync())
50+
{
51+
using (var memoryStream = new MemoryStream())
52+
{
53+
await stream.CopyToAsync(memoryStream);
54+
byte[] bytes = memoryStream.ToArray();
55+
56+
if (bytes.Length <= 0) return null;
57+
58+
return await ResizeImageAndroid(bytes, 0.5f, 90);
59+
}
60+
}
61+
}
62+
63+
64+
public static async Task<byte[]> ResizeImageAndroid(byte[] imageData, float scaleFactor, int quality)
65+
{
66+
// Load the bitmap
67+
Bitmap originalImage = BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length);
68+
69+
float oldWidth = (float)originalImage.Width;
70+
float oldHeight = (float)originalImage.Height;
71+
72+
float newHeight = oldHeight * scaleFactor;
73+
float newWidth = oldWidth * scaleFactor;
74+
75+
Bitmap resizedImage = Bitmap.CreateScaledBitmap(originalImage, (int)newWidth, (int)newHeight, false);
76+
77+
using (MemoryStream ms = new MemoryStream())
78+
{
79+
await resizedImage.CompressAsync(Bitmap.CompressFormat.Jpeg, quality, ms);
80+
return ms.ToArray();
81+
}
82+
}
2983
}
3084
}

HannerLabApp/HannerLabApp.iOS/HannerLabApp.iOS.csproj

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@
236236
</ItemGroup>
237237
<ItemGroup>
238238
<PackageReference Include="Dropbox.Api">
239-
<Version>6.26.0</Version>
239+
<Version>6.30.0</Version>
240240
</PackageReference>
241241
<PackageReference Include="LiteDB">
242242
<Version>5.0.11</Version>
@@ -251,16 +251,25 @@
251251
<Version>6.0.0</Version>
252252
</PackageReference>
253253
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded">
254-
<Version>6.0.3</Version>
254+
<Version>6.0.5</Version>
255255
</PackageReference>
256256
<PackageReference Include="Newtonsoft.Json">
257257
<Version>13.0.1</Version>
258258
</PackageReference>
259259
<PackageReference Include="NPOI">
260-
<Version>2.5.5</Version>
260+
<Version>2.5.6</Version>
261261
</PackageReference>
262262
<PackageReference Include="Serilog">
263-
<Version>2.10.0</Version>
263+
<Version>2.11.0</Version>
264+
</PackageReference>
265+
<PackageReference Include="Serilog.Exceptions">
266+
<Version>8.2.0</Version>
267+
</PackageReference>
268+
<PackageReference Include="Serilog.Sinks.File">
269+
<Version>5.0.0</Version>
270+
</PackageReference>
271+
<PackageReference Include="SkiaSharp">
272+
<Version>2.88.0</Version>
264273
</PackageReference>
265274
<PackageReference Include="System.Numerics.Vectors">
266275
<Version>4.5.0</Version>
@@ -269,22 +278,22 @@
269278
<Version>6.0.0</Version>
270279
</PackageReference>
271280
<PackageReference Include="TinyMvvm">
272-
<Version>3.0.1</Version>
281+
<Version>3.1.0</Version>
273282
</PackageReference>
274283
<PackageReference Include="TinyMvvm.Autofac">
275-
<Version>3.0.1</Version>
284+
<Version>3.1.0</Version>
276285
</PackageReference>
277286
<PackageReference Include="TinyMvvm.Forms">
278-
<Version>3.0.1</Version>
287+
<Version>3.1.0</Version>
279288
</PackageReference>
280289
<PackageReference Include="Xamarin.CommunityToolkit">
281-
<Version>2.0.1</Version>
290+
<Version>2.0.2</Version>
282291
</PackageReference>
283292
<PackageReference Include="Xamarin.CommunityToolkit.Markup">
284-
<Version>2.0.1</Version>
293+
<Version>2.0.2</Version>
285294
</PackageReference>
286295
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />
287-
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" />
296+
<PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
288297
<PackageReference Include="ZXing.Net.Mobile">
289298
<Version>2.4.1</Version>
290299
</PackageReference>

HannerLabApp/HannerLabApp.iOS/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@
2727
<key>CFBundleIdentifier</key>
2828
<string>de.llalon.HannerLabApp</string>
2929
<key>CFBundleVersion</key>
30-
<string>1.0.1</string>
30+
<string>1.0.2</string>
3131
<key>UILaunchStoryboardName</key>
3232
<string>LaunchScreen</string>
3333
<key>CFBundleName</key>
3434
<string>HannerLabApp</string>
3535
<key>XSAppIconAssets</key>
3636
<string>Assets.xcassets/AppIcon.appiconset</string>
3737
<key>CFBundleShortVersionString</key>
38-
<string>1.0.1</string>
38+
<string>1.0.2</string>
3939
<key>UIMainStoryboardFile</key>
4040
<string>LaunchScreen</string>
4141
<key>UIUserInterfaceStyle</key>

0 commit comments

Comments
 (0)