sharee.bike-App/ShareeBike/ShareeBike.Android/Model/Device/SpecialFolder.cs
2024-04-09 12:53:23 +02:00

49 lines
No EOL
1.3 KiB
C#

using System;
using Serilog;
using ShareeBike.Model.Device;
using Xamarin.Forms;
[assembly: Dependency(typeof(ShareeBike.Droid.Model.Device.SpecialFolder))]
namespace ShareeBike.Droid.Model.Device
{
public class SpecialFolder : ISpecialFolder
{
/// <summary> Get the folder name of external folder to write to. </summary>
/// <returns> Name of the external folder. </returns>
public string GetExternalFilesDir()
{
string baseFolderPath = string.Empty;
try
{
var context = Android.App.Application.Context;
Java.IO.File[] dirs = context.GetExternalFilesDirs(null);
foreach (Java.IO.File folder in dirs)
{
bool IsRemovable = Android.OS.Environment.InvokeIsExternalStorageRemovable(folder);
bool IsEmulated = Android.OS.Environment.InvokeIsExternalStorageEmulated(folder);
if (IsRemovable
&& !IsEmulated)
{
baseFolderPath = folder.Path;
}
}
}
catch (Exception l_oException)
{
Log.Error("Getting external files directory failed. {@l_oException}", l_oException);
}
return baseFolderPath;
}
/// <summary> Gets the folder name of the personal data folder dir on internal storage. </summary>
/// <returns>Directory name.</returns>
public string GetInternalPersonalDir()
{
return Environment.GetFolderPath(Environment.SpecialFolder.Personal);
}
}
}