icon resources for android. more places for extended obs collection.
|
@ -252,6 +252,24 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable-hdpi\fa_folder_open.png" />
|
<AndroidResource Include="Resources\drawable-hdpi\fa_folder_open.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BundleResource Include="Resources\drawable-mdpi\ion_plus.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-mdpi\ion_chevron_right.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-xhdpi\ion_chevron_right.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-xhdpi\ion_plus.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-xxhdpi\ion_chevron_right.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-xxhdpi\ion_plus.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
<Import Project="..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" />
|
<Import Project="..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets" Condition="Exists('..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Support.Vector.Drawable.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
|
|
@ -26,8 +26,7 @@ namespace Bit.Android.Controls
|
||||||
|
|
||||||
if(extendedCell.ShowDisclousure)
|
if(extendedCell.ShowDisclousure)
|
||||||
{
|
{
|
||||||
// TODO: different image
|
var resourceId = Resource.Drawable.ion_chevron_right;
|
||||||
var resourceId = Resource.Drawable.fa_folder_open;
|
|
||||||
if(!string.IsNullOrWhiteSpace(extendedCell.DisclousureImage))
|
if(!string.IsNullOrWhiteSpace(extendedCell.DisclousureImage))
|
||||||
{
|
{
|
||||||
var fileName = System.IO.Path.GetFileNameWithoutExtension(extendedCell.DisclousureImage);
|
var fileName = System.IO.Path.GetFileNameWithoutExtension(extendedCell.DisclousureImage);
|
||||||
|
|
46
src/Android/Resources/Resource.Designer.cs
generated
|
@ -2258,58 +2258,64 @@ namespace Bit.Android
|
||||||
public const int icon = 2130837652;
|
public const int icon = 2130837652;
|
||||||
|
|
||||||
// aapt resource value: 0x7f020095
|
// aapt resource value: 0x7f020095
|
||||||
public const int mr_dialog_material_background_dark = 2130837653;
|
public const int ion_chevron_right = 2130837653;
|
||||||
|
|
||||||
// aapt resource value: 0x7f020096
|
// aapt resource value: 0x7f020096
|
||||||
public const int mr_dialog_material_background_light = 2130837654;
|
public const int ion_plus = 2130837654;
|
||||||
|
|
||||||
// aapt resource value: 0x7f020097
|
// aapt resource value: 0x7f020097
|
||||||
public const int mr_ic_audiotrack_light = 2130837655;
|
public const int mr_dialog_material_background_dark = 2130837655;
|
||||||
|
|
||||||
// aapt resource value: 0x7f020098
|
// aapt resource value: 0x7f020098
|
||||||
public const int mr_ic_cast_dark = 2130837656;
|
public const int mr_dialog_material_background_light = 2130837656;
|
||||||
|
|
||||||
// aapt resource value: 0x7f020099
|
// aapt resource value: 0x7f020099
|
||||||
public const int mr_ic_cast_light = 2130837657;
|
public const int mr_ic_audiotrack_light = 2130837657;
|
||||||
|
|
||||||
// aapt resource value: 0x7f02009a
|
// aapt resource value: 0x7f02009a
|
||||||
public const int mr_ic_close_dark = 2130837658;
|
public const int mr_ic_cast_dark = 2130837658;
|
||||||
|
|
||||||
// aapt resource value: 0x7f02009b
|
// aapt resource value: 0x7f02009b
|
||||||
public const int mr_ic_close_light = 2130837659;
|
public const int mr_ic_cast_light = 2130837659;
|
||||||
|
|
||||||
// aapt resource value: 0x7f02009c
|
// aapt resource value: 0x7f02009c
|
||||||
public const int mr_ic_media_route_connecting_mono_dark = 2130837660;
|
public const int mr_ic_close_dark = 2130837660;
|
||||||
|
|
||||||
// aapt resource value: 0x7f02009d
|
// aapt resource value: 0x7f02009d
|
||||||
public const int mr_ic_media_route_connecting_mono_light = 2130837661;
|
public const int mr_ic_close_light = 2130837661;
|
||||||
|
|
||||||
// aapt resource value: 0x7f02009e
|
// aapt resource value: 0x7f02009e
|
||||||
public const int mr_ic_media_route_mono_dark = 2130837662;
|
public const int mr_ic_media_route_connecting_mono_dark = 2130837662;
|
||||||
|
|
||||||
// aapt resource value: 0x7f02009f
|
// aapt resource value: 0x7f02009f
|
||||||
public const int mr_ic_media_route_mono_light = 2130837663;
|
public const int mr_ic_media_route_connecting_mono_light = 2130837663;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200a0
|
// aapt resource value: 0x7f0200a0
|
||||||
public const int mr_ic_pause_dark = 2130837664;
|
public const int mr_ic_media_route_mono_dark = 2130837664;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200a1
|
// aapt resource value: 0x7f0200a1
|
||||||
public const int mr_ic_pause_light = 2130837665;
|
public const int mr_ic_media_route_mono_light = 2130837665;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200a2
|
// aapt resource value: 0x7f0200a2
|
||||||
public const int mr_ic_play_dark = 2130837666;
|
public const int mr_ic_pause_dark = 2130837666;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200a3
|
// aapt resource value: 0x7f0200a3
|
||||||
public const int mr_ic_play_light = 2130837667;
|
public const int mr_ic_pause_light = 2130837667;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200a6
|
|
||||||
public const int notification_template_icon_bg = 2130837670;
|
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200a4
|
// aapt resource value: 0x7f0200a4
|
||||||
public const int roundedbg = 2130837668;
|
public const int mr_ic_play_dark = 2130837668;
|
||||||
|
|
||||||
// aapt resource value: 0x7f0200a5
|
// aapt resource value: 0x7f0200a5
|
||||||
public const int roundedbgdark = 2130837669;
|
public const int mr_ic_play_light = 2130837669;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0200a8
|
||||||
|
public const int notification_template_icon_bg = 2130837672;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0200a6
|
||||||
|
public const int roundedbg = 2130837670;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7f0200a7
|
||||||
|
public const int roundedbgdark = 2130837671;
|
||||||
|
|
||||||
static Drawable()
|
static Drawable()
|
||||||
{
|
{
|
||||||
|
|
Before (image error) Size: 261 B After (image error) Size: 261 B |
Before (image error) Size: 127 B After (image error) Size: 127 B |
Before (image error) Size: 515 B After (image error) Size: 515 B |
Before (image error) Size: 134 B After (image error) Size: 134 B |
Before (image error) Size: 595 B After (image error) Size: 595 B |
Before (image error) Size: 147 B After (image error) Size: 147 B |
|
@ -1,11 +1,13 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Acr.UserDialogs;
|
using Acr.UserDialogs;
|
||||||
using Bit.App.Abstractions;
|
using Bit.App.Abstractions;
|
||||||
using Bit.App.Controls;
|
using Bit.App.Controls;
|
||||||
using Bit.App.Models.Page;
|
using Bit.App.Models.Page;
|
||||||
using Bit.App.Resources;
|
using Bit.App.Resources;
|
||||||
|
using Bit.App.Utilities;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using XLabs.Ioc;
|
using XLabs.Ioc;
|
||||||
|
|
||||||
|
@ -23,7 +25,7 @@ namespace Bit.App.Pages
|
||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObservableCollection<SettingsFolderPageModel> Folders { get; private set; } = new ObservableCollection<SettingsFolderPageModel>();
|
public ExtendedObservableCollection<SettingsFolderPageModel> Folders { get; private set; } = new ExtendedObservableCollection<SettingsFolderPageModel>();
|
||||||
|
|
||||||
private void Init()
|
private void Init()
|
||||||
{
|
{
|
||||||
|
@ -49,14 +51,9 @@ namespace Bit.App.Pages
|
||||||
|
|
||||||
private async Task LoadFoldersAsync()
|
private async Task LoadFoldersAsync()
|
||||||
{
|
{
|
||||||
Folders.Clear();
|
|
||||||
|
|
||||||
var folders = await _folderService.GetAllAsync();
|
var folders = await _folderService.GetAllAsync();
|
||||||
foreach(var folder in folders)
|
var pageFolders = folders.Select(f => new SettingsFolderPageModel(f));
|
||||||
{
|
Folders.ResetWithRange(pageFolders);
|
||||||
var f = new SettingsFolderPageModel(folder);
|
|
||||||
Folders.Add(f);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FolderSelected(object sender, SelectedItemChangedEventArgs e)
|
private void FolderSelected(object sender, SelectedItemChangedEventArgs e)
|
||||||
|
@ -74,7 +71,7 @@ namespace Bit.App.Pages
|
||||||
{
|
{
|
||||||
_page = page;
|
_page = page;
|
||||||
Text = AppResources.Add;
|
Text = AppResources.Add;
|
||||||
Icon = "ion-plus";
|
Icon = "ion_plus";
|
||||||
Clicked += ClickedItem;
|
Clicked += ClickedItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,12 +41,11 @@ namespace Bit.App.Pages
|
||||||
IsGroupingEnabled = true,
|
IsGroupingEnabled = true,
|
||||||
ItemsSource = Folders,
|
ItemsSource = Folders,
|
||||||
HasUnevenRows = true,
|
HasUnevenRows = true,
|
||||||
SeparatorColor = Color.FromHex("d2d6de")
|
SeparatorColor = Color.FromHex("d2d6de"),
|
||||||
|
GroupHeaderTemplate = new DataTemplate(() => new VaultListHeaderViewCell(this)),
|
||||||
|
ItemTemplate = new DataTemplate(() => new VaultListViewCell(this))
|
||||||
};
|
};
|
||||||
listView.GroupDisplayBinding = new Binding("Name");
|
|
||||||
listView.GroupHeaderTemplate = new DataTemplate(() => new VaultListHeaderViewCell(this));
|
|
||||||
listView.ItemSelected += SiteSelected;
|
listView.ItemSelected += SiteSelected;
|
||||||
listView.ItemTemplate = new DataTemplate(() => new VaultListViewCell(this));
|
|
||||||
|
|
||||||
Title = AppResources.MyVault;
|
Title = AppResources.MyVault;
|
||||||
Content = listView;
|
Content = listView;
|
||||||
|
@ -67,7 +66,7 @@ namespace Bit.App.Pages
|
||||||
var noneFolder = new VaultListPageModel.Folder(sites.Where(s => s.FolderId == null));
|
var noneFolder = new VaultListPageModel.Folder(sites.Where(s => s.FolderId == null));
|
||||||
pageFolders.Add(noneFolder);
|
pageFolders.Add(noneFolder);
|
||||||
|
|
||||||
Folders.Reset(pageFolders);
|
Folders.ResetWithRange(pageFolders);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SiteSelected(object sender, SelectedItemChangedEventArgs e)
|
private void SiteSelected(object sender, SelectedItemChangedEventArgs e)
|
||||||
|
@ -146,7 +145,7 @@ namespace Bit.App.Pages
|
||||||
{
|
{
|
||||||
_page = page;
|
_page = page;
|
||||||
Text = AppResources.Add;
|
Text = AppResources.Add;
|
||||||
Icon = "ion-plus";
|
Icon = "ion_plus";
|
||||||
Clicked += ClickedItem;
|
Clicked += ClickedItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace Bit.App.Utilities
|
||||||
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
|
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Reset(IEnumerable<T> range)
|
public void ResetWithRange(IEnumerable<T> range)
|
||||||
{
|
{
|
||||||
Items.Clear();
|
Items.Clear();
|
||||||
AddRange(range);
|
AddRange(range);
|
||||||
|
|
BIN
src/iOS/Resources/ion_chevron_right.png
Normal file
After (image error) Size: 261 B |
BIN
src/iOS/Resources/ion_chevron_right@2x.png
Normal file
After (image error) Size: 515 B |
BIN
src/iOS/Resources/ion_chevron_right@3x.png
Normal file
After (image error) Size: 595 B |
BIN
src/iOS/Resources/ion_plus.png
Normal file
After (image error) Size: 127 B |
BIN
src/iOS/Resources/ion_plus@2x.png
Normal file
After (image error) Size: 134 B |
BIN
src/iOS/Resources/ion_plus@3x.png
Normal file
After (image error) Size: 147 B |
|
@ -258,22 +258,22 @@
|
||||||
<BundleResource Include="Resources\fa-lock%403x.png" />
|
<BundleResource Include="Resources\fa-lock%403x.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\ion-chevron-right.png" />
|
<BundleResource Include="Resources\ion_chevron_right.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\ion-chevron-right%402x.png" />
|
<BundleResource Include="Resources\ion_chevron_right%402x.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\ion-chevron-right%403x.png" />
|
<BundleResource Include="Resources\ion_chevron_right%403x.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\ion-plus.png" />
|
<BundleResource Include="Resources\ion_plus.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\ion-plus%402x.png" />
|
<BundleResource Include="Resources\ion_plus%402x.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\ion-plus%403x.png" />
|
<BundleResource Include="Resources\ion_plus%403x.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BundleResource Include="Resources\Icon-120.png" />
|
<BundleResource Include="Resources\Icon-120.png" />
|
||||||
|
|