diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index 40dbdb301..c12d1e1bf 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -825,6 +825,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Android/Resources/Resource.Designer.cs b/src/Android/Resources/Resource.Designer.cs
index cde90eebe..89a9e1e36 100644
--- a/src/Android/Resources/Resource.Designer.cs
+++ b/src/Android/Resources/Resource.Designer.cs
@@ -2742,8 +2742,8 @@ namespace Bit.Android
// aapt resource value: 0x7f0200e4
public const int notification_sm = 2130837732;
- // aapt resource value: 0x7f0200f1
- public const int notification_template_icon_bg = 2130837745;
+ // aapt resource value: 0x7f0200f2
+ public const int notification_template_icon_bg = 2130837746;
// aapt resource value: 0x7f0200e5
public const int plus = 2130837733;
@@ -2761,25 +2761,28 @@ namespace Bit.Android
public const int search = 2130837737;
// aapt resource value: 0x7f0200ea
- public const int splash_screen = 2130837738;
+ public const int share = 2130837738;
// aapt resource value: 0x7f0200eb
- public const int star = 2130837739;
+ public const int splash_screen = 2130837739;
// aapt resource value: 0x7f0200ec
- public const int star_selected = 2130837740;
+ public const int star = 2130837740;
// aapt resource value: 0x7f0200ed
- public const int tools = 2130837741;
+ public const int star_selected = 2130837741;
// aapt resource value: 0x7f0200ee
- public const int tools_selected = 2130837742;
+ public const int tools = 2130837742;
// aapt resource value: 0x7f0200ef
- public const int upload = 2130837743;
+ public const int tools_selected = 2130837743;
// aapt resource value: 0x7f0200f0
- public const int user = 2130837744;
+ public const int upload = 2130837744;
+
+ // aapt resource value: 0x7f0200f1
+ public const int user = 2130837745;
static Drawable()
{
diff --git a/src/Android/Resources/drawable-hdpi/share.png b/src/Android/Resources/drawable-hdpi/share.png
new file mode 100644
index 000000000..9c8bce94d
Binary files /dev/null and b/src/Android/Resources/drawable-hdpi/share.png differ
diff --git a/src/Android/Resources/drawable-xhdpi/share.png b/src/Android/Resources/drawable-xhdpi/share.png
new file mode 100644
index 000000000..d5b736b10
Binary files /dev/null and b/src/Android/Resources/drawable-xhdpi/share.png differ
diff --git a/src/Android/Resources/drawable-xxhdpi/share.png b/src/Android/Resources/drawable-xxhdpi/share.png
new file mode 100644
index 000000000..12f9342fd
Binary files /dev/null and b/src/Android/Resources/drawable-xxhdpi/share.png differ
diff --git a/src/Android/Resources/drawable-xxxhdpi/share.png b/src/Android/Resources/drawable-xxxhdpi/share.png
new file mode 100644
index 000000000..f268ca7ae
Binary files /dev/null and b/src/Android/Resources/drawable-xxxhdpi/share.png differ
diff --git a/src/Android/Resources/drawable/share.png b/src/Android/Resources/drawable/share.png
new file mode 100644
index 000000000..c0fd8dd02
Binary files /dev/null and b/src/Android/Resources/drawable/share.png differ
diff --git a/src/App/Controls/LabeledDetailCell.cs b/src/App/Controls/LabeledDetailCell.cs
index 152c9701d..9e6161915 100644
--- a/src/App/Controls/LabeledDetailCell.cs
+++ b/src/App/Controls/LabeledDetailCell.cs
@@ -1,4 +1,5 @@
-using Xamarin.Forms;
+using FFImageLoading.Forms;
+using Xamarin.Forms;
namespace Bit.App.Controls
{
@@ -19,6 +20,14 @@ namespace Bit.App.Controls
Style = (Style)Application.Current.Resources["text-muted"]
};
+ LabelIcon = new CachedImage
+ {
+ WidthRequest = 16,
+ HeightRequest = 16,
+ HorizontalOptions = LayoutOptions.Start,
+ Margin = new Thickness(5, 0, 0, 0)
+ };
+
Button = new ExtendedButton
{
WidthRequest = 60
@@ -32,11 +41,14 @@ namespace Bit.App.Controls
};
grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
+ grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) });
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(60, GridUnitType.Absolute) });
grid.Children.Add(Label, 0, 0);
grid.Children.Add(Detail, 0, 1);
- grid.Children.Add(Button, 1, 0);
+ grid.Children.Add(LabelIcon, 1, 0);
+ grid.Children.Add(Button, 2, 0);
+ Grid.SetColumnSpan(Detail, 2);
Grid.SetRowSpan(Button, 2);
if(Device.OS == TargetPlatform.Android)
@@ -49,6 +61,7 @@ namespace Bit.App.Controls
public Label Label { get; private set; }
public Label Detail { get; private set; }
+ public CachedImage LabelIcon { get; private set; }
public Button Button { get; private set; }
}
}
diff --git a/src/App/Controls/VaultListViewCell.cs b/src/App/Controls/VaultListViewCell.cs
index 1099d9e7d..37f1d368c 100644
--- a/src/App/Controls/VaultListViewCell.cs
+++ b/src/App/Controls/VaultListViewCell.cs
@@ -12,13 +12,16 @@ namespace Bit.App.Controls
public VaultListViewCell(Action moreClickedAction)
{
SetBinding(LoginParameterProperty, new Binding("."));
- Label.SetBinding(Label.TextProperty, s => s.Name);
- Detail.SetBinding(Label.TextProperty, s => s.Username);
+ Label.SetBinding(Label.TextProperty, l => l.Name);
+ Detail.SetBinding(Label.TextProperty, l => l.Username);
+ LabelIcon.SetBinding(VisualElement.IsVisibleProperty, l => l.Shared);
Button.Image = "more";
Button.Command = new Command(() => moreClickedAction?.Invoke(LoginParameter));
Button.BackgroundColor = Color.Transparent;
+ LabelIcon.Source = "share";
+
BackgroundColor = Color.White;
}
diff --git a/src/App/Models/Page/VaultListPageModel.cs b/src/App/Models/Page/VaultListPageModel.cs
index 4f3b986c1..16bd7c826 100644
--- a/src/App/Models/Page/VaultListPageModel.cs
+++ b/src/App/Models/Page/VaultListPageModel.cs
@@ -11,6 +11,7 @@ namespace Bit.App.Models.Page
public Login(Models.Login login)
{
Id = login.Id;
+ Shared = !string.IsNullOrWhiteSpace(login.OrganizationId);
FolderId = login.FolderId;
Name = login.Name?.Decrypt(login.OrganizationId);
Username = login.Username?.Decrypt(login.OrganizationId) ?? " ";
@@ -19,6 +20,7 @@ namespace Bit.App.Models.Page
}
public string Id { get; set; }
+ public bool Shared { get; set; }
public string FolderId { get; set; }
public string Name { get; set; }
public string Username { get; set; }