mirror of
https://github.com/bitwarden/android.git
synced 2024-12-24 09:58:27 +03:00
set up user settings data table and access repository
This commit is contained in:
parent
230722945e
commit
3ad1e8a3ba
10 changed files with 69 additions and 0 deletions
|
@ -220,6 +220,7 @@ namespace Bit.Android
|
||||||
.RegisterType<IDeviceApiRepository, DeviceApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<IDeviceApiRepository, DeviceApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
.RegisterType<IAccountsApiRepository, AccountsApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<IAccountsApiRepository, AccountsApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
.RegisterType<ICipherApiRepository, CipherApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<ICipherApiRepository, CipherApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
|
.RegisterType<ISettingsRepository, SettingsRepository>(new ContainerControlledLifetimeManager())
|
||||||
// Other
|
// Other
|
||||||
.RegisterInstance(CrossSettings.Current, new ContainerControlledLifetimeManager())
|
.RegisterInstance(CrossSettings.Current, new ContainerControlledLifetimeManager())
|
||||||
.RegisterInstance(CrossConnectivity.Current, new ContainerControlledLifetimeManager())
|
.RegisterInstance(CrossConnectivity.Current, new ContainerControlledLifetimeManager())
|
||||||
|
|
|
@ -12,6 +12,7 @@ namespace Bit.App.Abstractions
|
||||||
Task<IEnumerable<T>> GetAllAsync();
|
Task<IEnumerable<T>> GetAllAsync();
|
||||||
Task UpdateAsync(T obj);
|
Task UpdateAsync(T obj);
|
||||||
Task InsertAsync(T obj);
|
Task InsertAsync(T obj);
|
||||||
|
Task UpsertAsync(T obj);
|
||||||
Task DeleteAsync(TId id);
|
Task DeleteAsync(TId id);
|
||||||
Task DeleteAsync(T obj);
|
Task DeleteAsync(T obj);
|
||||||
}
|
}
|
||||||
|
|
10
src/App/Abstractions/Repositories/ISettingsRepository.cs
Normal file
10
src/App/Abstractions/Repositories/ISettingsRepository.cs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Bit.App.Abstractions
|
||||||
|
{
|
||||||
|
public interface ISettingsRepository
|
||||||
|
{
|
||||||
|
Task<IEnumerable<IEnumerable<string>>> GetEquivablentDomains(string userId);
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,6 +37,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Abstractions\Repositories\IAccountsApiRepository.cs" />
|
<Compile Include="Abstractions\Repositories\IAccountsApiRepository.cs" />
|
||||||
<Compile Include="Abstractions\Repositories\IDeviceApiRepository.cs" />
|
<Compile Include="Abstractions\Repositories\IDeviceApiRepository.cs" />
|
||||||
|
<Compile Include="Abstractions\Repositories\ISettingsRepository.cs" />
|
||||||
<Compile Include="Abstractions\Services\ITokenService.cs" />
|
<Compile Include="Abstractions\Services\ITokenService.cs" />
|
||||||
<Compile Include="Abstractions\Services\IHttpService.cs" />
|
<Compile Include="Abstractions\Services\IHttpService.cs" />
|
||||||
<Compile Include="Abstractions\Services\IDeviceInfoService.cs" />
|
<Compile Include="Abstractions\Services\IDeviceInfoService.cs" />
|
||||||
|
@ -101,6 +102,7 @@
|
||||||
<Compile Include="Models\Api\LoginDataModel.cs" />
|
<Compile Include="Models\Api\LoginDataModel.cs" />
|
||||||
<Compile Include="Models\Cipher.cs" />
|
<Compile Include="Models\Cipher.cs" />
|
||||||
<Compile Include="Models\CipherString.cs" />
|
<Compile Include="Models\CipherString.cs" />
|
||||||
|
<Compile Include="Models\Data\SettingsData.cs" />
|
||||||
<Compile Include="Models\Data\FolderData.cs" />
|
<Compile Include="Models\Data\FolderData.cs" />
|
||||||
<Compile Include="Abstractions\IDataObject.cs" />
|
<Compile Include="Abstractions\IDataObject.cs" />
|
||||||
<Compile Include="Models\Data\LoginData.cs" />
|
<Compile Include="Models\Data\LoginData.cs" />
|
||||||
|
@ -149,6 +151,7 @@
|
||||||
<Compile Include="Repositories\DeviceApiRepository.cs" />
|
<Compile Include="Repositories\DeviceApiRepository.cs" />
|
||||||
<Compile Include="Repositories\CipherApiRepository.cs" />
|
<Compile Include="Repositories\CipherApiRepository.cs" />
|
||||||
<Compile Include="Abstractions\Repositories\ICipherApiRepository.cs" />
|
<Compile Include="Abstractions\Repositories\ICipherApiRepository.cs" />
|
||||||
|
<Compile Include="Repositories\SettingsRepository.cs" />
|
||||||
<Compile Include="Repositories\LoginApiRepository.cs" />
|
<Compile Include="Repositories\LoginApiRepository.cs" />
|
||||||
<Compile Include="Repositories\FolderApiRepository.cs" />
|
<Compile Include="Repositories\FolderApiRepository.cs" />
|
||||||
<Compile Include="Repositories\LoginRepository.cs" />
|
<Compile Include="Repositories\LoginRepository.cs" />
|
||||||
|
|
16
src/App/Models/Data/SettingsData.cs
Normal file
16
src/App/Models/Data/SettingsData.cs
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
using SQLite;
|
||||||
|
using Bit.App.Abstractions;
|
||||||
|
|
||||||
|
namespace Bit.App.Models.Data
|
||||||
|
{
|
||||||
|
[Table("Settings")]
|
||||||
|
public class SettingsData : IDataObject<string>
|
||||||
|
{
|
||||||
|
public SettingsData()
|
||||||
|
{ }
|
||||||
|
|
||||||
|
[PrimaryKey]
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string EquivalentDomains { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -39,6 +39,11 @@ namespace Bit.App.Repositories
|
||||||
Connection.Update(obj);
|
Connection.Update(obj);
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
}
|
}
|
||||||
|
public virtual Task UpsertAsync(T obj)
|
||||||
|
{
|
||||||
|
Connection.InsertOrReplace(obj);
|
||||||
|
return Task.FromResult(0);
|
||||||
|
}
|
||||||
|
|
||||||
public virtual async Task DeleteAsync(T obj)
|
public virtual async Task DeleteAsync(T obj)
|
||||||
{
|
{
|
||||||
|
|
30
src/App/Repositories/SettingsRepository.cs
Normal file
30
src/App/Repositories/SettingsRepository.cs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Bit.App.Abstractions;
|
||||||
|
using Bit.App.Models.Data;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Bit.App.Repositories
|
||||||
|
{
|
||||||
|
public class SettingsRepository : Repository<SettingsData, string>, ISettingsRepository
|
||||||
|
{
|
||||||
|
public SettingsRepository(ISqlService sqlService)
|
||||||
|
: base(sqlService)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
public Task<IEnumerable<IEnumerable<string>>> GetEquivablentDomains(string userId)
|
||||||
|
{
|
||||||
|
var equivalentDomainsJson = Connection.Table<SettingsData>().Where(f => f.Id == userId)
|
||||||
|
.Select(f => f.EquivalentDomains).FirstOrDefault();
|
||||||
|
|
||||||
|
if(string.IsNullOrWhiteSpace(equivalentDomainsJson))
|
||||||
|
{
|
||||||
|
return Task.FromResult<IEnumerable<IEnumerable<string>>>(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
var equivalentDomains = JsonConvert.DeserializeObject<IEnumerable<IEnumerable<string>>>(equivalentDomainsJson);
|
||||||
|
return Task.FromResult(equivalentDomains);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,6 +18,7 @@ namespace Bit.App.Services
|
||||||
{
|
{
|
||||||
_connection.CreateTable<FolderData>();
|
_connection.CreateTable<FolderData>();
|
||||||
_connection.CreateTable<LoginData>();
|
_connection.CreateTable<LoginData>();
|
||||||
|
_connection.CreateTable<SettingsData>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,6 +287,7 @@ namespace Bit.iOS.Extension
|
||||||
.RegisterType<ILoginRepository, LoginRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<ILoginRepository, LoginRepository>(new ContainerControlledLifetimeManager())
|
||||||
.RegisterType<ILoginApiRepository, LoginApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<ILoginApiRepository, LoginApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
.RegisterType<IConnectApiRepository, ConnectApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<IConnectApiRepository, ConnectApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
|
.RegisterType<ISettingsRepository, SettingsRepository>(new ContainerControlledLifetimeManager())
|
||||||
// Other
|
// Other
|
||||||
.RegisterInstance(CrossConnectivity.Current, new ContainerControlledLifetimeManager())
|
.RegisterInstance(CrossConnectivity.Current, new ContainerControlledLifetimeManager())
|
||||||
.RegisterInstance(CrossFingerprint.Current, new ContainerControlledLifetimeManager());
|
.RegisterInstance(CrossFingerprint.Current, new ContainerControlledLifetimeManager());
|
||||||
|
|
|
@ -276,6 +276,7 @@ namespace Bit.iOS
|
||||||
.RegisterType<IDeviceApiRepository, DeviceApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<IDeviceApiRepository, DeviceApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
.RegisterType<IAccountsApiRepository, AccountsApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<IAccountsApiRepository, AccountsApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
.RegisterType<ICipherApiRepository, CipherApiRepository>(new ContainerControlledLifetimeManager())
|
.RegisterType<ICipherApiRepository, CipherApiRepository>(new ContainerControlledLifetimeManager())
|
||||||
|
.RegisterType<ISettingsRepository, SettingsRepository>(new ContainerControlledLifetimeManager())
|
||||||
// Other
|
// Other
|
||||||
.RegisterInstance(CrossConnectivity.Current, new ContainerControlledLifetimeManager())
|
.RegisterInstance(CrossConnectivity.Current, new ContainerControlledLifetimeManager())
|
||||||
.RegisterInstance(UserDialogs.Instance, new ContainerControlledLifetimeManager())
|
.RegisterInstance(UserDialogs.Instance, new ContainerControlledLifetimeManager())
|
||||||
|
|
Loading…
Reference in a new issue