From 2f66ee264bc511bb74c26305d355a9393ebca118 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Sat, 8 Jun 2019 11:48:45 -0400 Subject: [PATCH] image and icon --- .../Renderers/CipherViewCellRenderer.cs | 94 ++- src/Android/Resources/Resource.designer.cs | 622 +++++++++--------- .../Resources/layout/CipherViewCell.axml | 102 +-- .../CipherViewCell/CipherViewCell.xaml | 152 ++--- .../CipherViewCell/CipherViewCell.xaml.cs | 96 +-- 5 files changed, 583 insertions(+), 483 deletions(-) diff --git a/src/Android/Renderers/CipherViewCellRenderer.cs b/src/Android/Renderers/CipherViewCellRenderer.cs index 711f7a2eb..4af046545 100644 --- a/src/Android/Renderers/CipherViewCellRenderer.cs +++ b/src/Android/Renderers/CipherViewCellRenderer.cs @@ -1,11 +1,17 @@ using Android.App; using Android.Content; using Android.Graphics; +using Android.Runtime; +using Android.Util; using Android.Views; using Android.Views.InputMethods; using Android.Widget; using Bit.App.Controls; using Bit.Droid.Renderers; +using FFImageLoading; +using FFImageLoading.Views; +using FFImageLoading.Work; +using System; using System.ComponentModel; using Xamarin.Forms; using Xamarin.Forms.Platform.Android; @@ -18,6 +24,8 @@ namespace Bit.Droid.Renderers private static Typeface _faTypeface; private static Typeface _miTypeface; + private AndroidCipherCell _cell; + protected override Android.Views.View GetCellCore(Cell item, Android.Views.View convertView, ViewGroup parent, Context context) { @@ -31,23 +39,26 @@ namespace Bit.Droid.Renderers } var cipherCell = item as CipherViewCell; - if(!(convertView is AndroidCipherCell cell)) + _cell = convertView as AndroidCipherCell; + if(_cell == null) { - cell = new AndroidCipherCell(context, cipherCell, _faTypeface, _miTypeface); + _cell = new AndroidCipherCell(context, cipherCell, _faTypeface, _miTypeface); } - cell.CipherViewCell.PropertyChanged += CellPropertyChanged; - cell.CipherViewCell = cipherCell; - cell.CipherViewCell.PropertyChanged -= CellPropertyChanged; - cell.UpdateCell(); - return cell; + else + { + _cell.CipherViewCell.PropertyChanged -= CellPropertyChanged; + } + cipherCell.PropertyChanged += CellPropertyChanged; + _cell.UpdateCell(cipherCell); + return _cell; } public void CellPropertyChanged(object sender, PropertyChangedEventArgs e) { - var nativeCell = sender as AndroidCipherCell; + var cipherCell = sender as CipherViewCell; if(e.PropertyName == CipherViewCell.CipherProperty.PropertyName) { - nativeCell.UpdateCell(); + _cell.UpdateCell(cipherCell); } } } @@ -57,20 +68,25 @@ namespace Bit.Droid.Renderers private readonly Typeface _faTypeface; private readonly Typeface _miTypeface; - public AndroidCipherCell(Context context, CipherViewCell cipherCell, Typeface faTypeface, Typeface miTypeface) + private IScheduledWork _currentTask; + + public AndroidCipherCell(Context context, CipherViewCell cipherView, Typeface faTypeface, Typeface miTypeface) : base(context) { - var view = (context as Activity).LayoutInflater.Inflate(Resource.Layout.CipherViewCell, null); - CipherViewCell = cipherCell; + CipherViewCell = cipherView; _faTypeface = faTypeface; _miTypeface = miTypeface; + var view = (context as Activity).LayoutInflater.Inflate(Resource.Layout.CipherViewCell, null); + IconImage = view.FindViewById(Resource.Id.CipherCellIconImage); + Icon = view.FindViewById(Resource.Id.CipherCellIcon); Name = view.FindViewById(Resource.Id.CipherCellName); SubTitle = view.FindViewById(Resource.Id.CipherCellSubTitle); SharedIcon = view.FindViewById(Resource.Id.CipherCellSharedIcon); AttachmentsIcon = view.FindViewById(Resource.Id.CipherCellAttachmentsIcon); MoreButton = view.FindViewById(Resource.Id.CipherCellButton); + Icon.Typeface = _faTypeface; SharedIcon.Typeface = _faTypeface; AttachmentsIcon.Typeface = _faTypeface; MoreButton.Typeface = _miTypeface; @@ -80,15 +96,39 @@ namespace Bit.Droid.Renderers public CipherViewCell CipherViewCell { get; set; } public Element Element => CipherViewCell; + public IconImageView IconImage { get; set; } + public TextView Icon { get; set; } public TextView Name { get; set; } public TextView SubTitle { get; set; } public TextView SharedIcon { get; set; } public TextView AttachmentsIcon { get; set; } public Android.Widget.Button MoreButton { get; set; } - public void UpdateCell() + public void UpdateCell(CipherViewCell cipherCell) { - var cipher = CipherViewCell.Cipher; + if(_currentTask != null && !_currentTask.IsCancelled && !_currentTask.IsCompleted) + { + _currentTask.Cancel(); + } + + var cipher = cipherCell.Cipher; + + var iconImage = cipherCell.GetIconImage(cipher); + if(iconImage.Item2 != null) + { + IconImage.SetImageResource(Resource.Drawable.login); + IconImage.Visibility = ViewStates.Visible; + Icon.Visibility = ViewStates.Gone; + _currentTask = ImageService.Instance.LoadUrl(iconImage.Item2).DownSample(64).Into(IconImage); + IconImage.Key = iconImage.Item2; + } + else + { + IconImage.Visibility = ViewStates.Gone; + Icon.Visibility = ViewStates.Visible; + Icon.Text = iconImage.Item1; + } + Name.Text = cipher.Name; if(!string.IsNullOrWhiteSpace(cipher.SubTitle)) { @@ -103,4 +143,30 @@ namespace Bit.Droid.Renderers AttachmentsIcon.Visibility = cipher.HasAttachments ? ViewStates.Visible : ViewStates.Gone; } } + + [Android.Runtime.Preserve(AllMembers = true)] + [Register("bit.droid.renderers.IconImageView")] + public class IconImageView : ImageViewAsync + { + public IconImageView(Context context) : base(context) + { } + + public IconImageView(IntPtr javaReference, JniHandleOwnership transfer) + : base(javaReference, transfer) + { } + + public IconImageView(Context context, IAttributeSet attrs) + : base(context, attrs) + { } + + public string Key { get; set; } + + protected override void JavaFinalize() + { + SetImageDrawable(null); + SetImageBitmap(null); + ImageService.Instance.InvalidateCacheEntryAsync(Key, FFImageLoading.Cache.CacheType.Memory); + base.JavaFinalize(); + } + } } diff --git a/src/Android/Resources/Resource.designer.cs b/src/Android/Resources/Resource.designer.cs index 164b8deb7..491ed6da9 100644 --- a/src/Android/Resources/Resource.designer.cs +++ b/src/Android/Resources/Resource.designer.cs @@ -9128,44 +9128,50 @@ namespace Bit.Droid // aapt resource value: 0x7f0d00ae public const int CellTitleContent = 2131558574; - // aapt resource value: 0x7f0d00b9 - public const int CipherCellAttachmentsIcon = 2131558585; - - // aapt resource value: 0x7f0d00b5 - public const int CipherCellButton = 2131558581; - - // aapt resource value: 0x7f0d00b4 - public const int CipherCellContent = 2131558580; - - // aapt resource value: 0x7f0d00b6 - public const int CipherCellContentTop = 2131558582; - - // aapt resource value: 0x7f0d00b7 - public const int CipherCellName = 2131558583; - - // aapt resource value: 0x7f0d00b8 - public const int CipherCellSharedIcon = 2131558584; - // aapt resource value: 0x7f0d00ba - public const int CipherCellSubTitle = 2131558586; - - // aapt resource value: 0x7f0d00bb - public const int ContentCellBody = 2131558587; + public const int CipherCellAttachmentsIcon = 2131558586; // aapt resource value: 0x7f0d00bc - public const int ContentCellBorder = 2131558588; + public const int CipherCellButton = 2131558588; + + // aapt resource value: 0x7f0d00b6 + public const int CipherCellContent = 2131558582; + + // aapt resource value: 0x7f0d00b7 + public const int CipherCellContentTop = 2131558583; + + // aapt resource value: 0x7f0d00b5 + public const int CipherCellIcon = 2131558581; + + // aapt resource value: 0x7f0d00b4 + public const int CipherCellIconImage = 2131558580; + + // aapt resource value: 0x7f0d00b8 + public const int CipherCellName = 2131558584; + + // aapt resource value: 0x7f0d00b9 + public const int CipherCellSharedIcon = 2131558585; + + // aapt resource value: 0x7f0d00bb + public const int CipherCellSubTitle = 2131558587; + + // aapt resource value: 0x7f0d00bd + public const int ContentCellBody = 2131558589; + + // aapt resource value: 0x7f0d00be + public const int ContentCellBorder = 2131558590; // aapt resource value: 0x7f0d0043 public const int FUNCTION = 2131558467; - // aapt resource value: 0x7f0d00d0 - public const int FooterCellText = 2131558608; - // aapt resource value: 0x7f0d00d2 - public const int HeaderCellBorder = 2131558610; + public const int FooterCellText = 2131558610; - // aapt resource value: 0x7f0d00d1 - public const int HeaderCellText = 2131558609; + // aapt resource value: 0x7f0d00d4 + public const int HeaderCellBorder = 2131558612; + + // aapt resource value: 0x7f0d00d3 + public const int HeaderCellText = 2131558611; // aapt resource value: 0x7f0d0044 public const int META = 2131558468; @@ -9176,8 +9182,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0046 public const int SYM = 2131558470; - // aapt resource value: 0x7f0d0121 - public const int action0 = 2131558689; + // aapt resource value: 0x7f0d0123 + public const int action0 = 2131558691; // aapt resource value: 0x7f0d0094 public const int action_bar = 2131558548; @@ -9200,17 +9206,17 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0070 public const int action_bar_title = 2131558512; - // aapt resource value: 0x7f0d011e - public const int action_container = 2131558686; + // aapt resource value: 0x7f0d0120 + public const int action_container = 2131558688; // aapt resource value: 0x7f0d0095 public const int action_context_bar = 2131558549; - // aapt resource value: 0x7f0d0125 - public const int action_divider = 2131558693; + // aapt resource value: 0x7f0d0127 + public const int action_divider = 2131558695; - // aapt resource value: 0x7f0d011f - public const int action_image = 2131558687; + // aapt resource value: 0x7f0d0121 + public const int action_image = 2131558689; // aapt resource value: 0x7f0d0003 public const int action_menu_divider = 2131558403; @@ -9227,11 +9233,11 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0072 public const int action_mode_close_button = 2131558514; - // aapt resource value: 0x7f0d0120 - public const int action_text = 2131558688; + // aapt resource value: 0x7f0d0122 + public const int action_text = 2131558690; - // aapt resource value: 0x7f0d012e - public const int actions = 2131558702; + // aapt resource value: 0x7f0d0130 + public const int actions = 2131558704; // aapt resource value: 0x7f0d0073 public const int activity_chooser_view_content = 2131558515; @@ -9293,26 +9299,26 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0079 public const int buttonPanel = 2131558521; - // aapt resource value: 0x7f0d00e0 - public const int button_add_response = 2131558624; + // aapt resource value: 0x7f0d00e2 + public const int button_add_response = 2131558626; - // aapt resource value: 0x7f0d00db - public const int button_attachment = 2131558619; + // aapt resource value: 0x7f0d00dd + public const int button_attachment = 2131558621; - // aapt resource value: 0x7f0d00e5 - public const int button_login = 2131558629; + // aapt resource value: 0x7f0d00e7 + public const int button_login = 2131558631; - // aapt resource value: 0x7f0d00e1 - public const int button_refresh = 2131558625; + // aapt resource value: 0x7f0d00e3 + public const int button_refresh = 2131558627; - // aapt resource value: 0x7f0d00dc - public const int button_send = 2131558620; + // aapt resource value: 0x7f0d00de + public const int button_send = 2131558622; - // aapt resource value: 0x7f0d00e9 - public const int button_update = 2131558633; + // aapt resource value: 0x7f0d00eb + public const int button_update = 2131558635; - // aapt resource value: 0x7f0d0122 - public const int cancel_action = 2131558690; + // aapt resource value: 0x7f0d0124 + public const int cancel_action = 2131558692; // aapt resource value: 0x7f0d0054 public const int center = 2131558484; @@ -9326,8 +9332,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d008d public const int checkbox = 2131558541; - // aapt resource value: 0x7f0d012a - public const int chronometer = 2131558698; + // aapt resource value: 0x7f0d012c + public const int chronometer = 2131558700; // aapt resource value: 0x7f0d0068 public const int clip_horizontal = 2131558504; @@ -9338,20 +9344,20 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0048 public const int collapseActionView = 2131558472; - // aapt resource value: 0x7f0d00bf - public const int container = 2131558591; + // aapt resource value: 0x7f0d00c1 + public const int container = 2131558593; // aapt resource value: 0x7f0d0089 public const int content = 2131558537; - // aapt resource value: 0x7f0d013a - public const int contentFrame = 2131558714; + // aapt resource value: 0x7f0d013c + public const int contentFrame = 2131558716; // aapt resource value: 0x7f0d007c public const int contentPanel = 2131558524; - // aapt resource value: 0x7f0d00c0 - public const int coordinator = 2131558592; + // aapt resource value: 0x7f0d00c2 + public const int coordinator = 2131558594; // aapt resource value: 0x7f0d0083 public const int custom = 2131558531; @@ -9368,20 +9374,20 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0076 public const int default_activity_button = 2131558518; - // aapt resource value: 0x7f0d00c2 - public const int design_bottom_sheet = 2131558594; + // aapt resource value: 0x7f0d00c4 + public const int design_bottom_sheet = 2131558596; + + // aapt resource value: 0x7f0d00c9 + public const int design_menu_item_action_area = 2131558601; + + // aapt resource value: 0x7f0d00c8 + public const int design_menu_item_action_area_stub = 2131558600; // aapt resource value: 0x7f0d00c7 - public const int design_menu_item_action_area = 2131558599; + public const int design_menu_item_text = 2131558599; // aapt resource value: 0x7f0d00c6 - public const int design_menu_item_action_area_stub = 2131558598; - - // aapt resource value: 0x7f0d00c5 - public const int design_menu_item_text = 2131558597; - - // aapt resource value: 0x7f0d00c4 - public const int design_navigation_view = 2131558596; + public const int design_navigation_view = 2131558598; // aapt resource value: 0x7f0d0030 public const int disableHome = 2131558448; @@ -9392,8 +9398,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d003f public const int end = 2131558463; - // aapt resource value: 0x7f0d0130 - public const int end_padder = 2131558704; + // aapt resource value: 0x7f0d0132 + public const int end_padder = 2131558706; // aapt resource value: 0x7f0d004e public const int enterAlways = 2131558478; @@ -9422,29 +9428,29 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0066 public const int filled = 2131558502; - // aapt resource value: 0x7f0d00cc - public const int fingerprint_btnCancel = 2131558604; + // aapt resource value: 0x7f0d00ce + public const int fingerprint_btnCancel = 2131558606; - // aapt resource value: 0x7f0d00cd - public const int fingerprint_btnFallback = 2131558605; - - // aapt resource value: 0x7f0d00c9 - public const int fingerprint_imgFingerprint = 2131558601; - - // aapt resource value: 0x7f0d00ca - public const int fingerprint_txtHelp = 2131558602; + // aapt resource value: 0x7f0d00cf + public const int fingerprint_btnFallback = 2131558607; // aapt resource value: 0x7f0d00cb - public const int fingerprint_txtReason = 2131558603; + public const int fingerprint_imgFingerprint = 2131558603; + + // aapt resource value: 0x7f0d00cc + public const int fingerprint_txtHelp = 2131558604; + + // aapt resource value: 0x7f0d00cd + public const int fingerprint_txtReason = 2131558605; // aapt resource value: 0x7f0d0063 public const int @fixed = 2131558499; - // aapt resource value: 0x7f0d00ce - public const int flyoutcontent_appbar = 2131558606; + // aapt resource value: 0x7f0d00d0 + public const int flyoutcontent_appbar = 2131558608; - // aapt resource value: 0x7f0d00cf - public const int flyoutcontent_recycler = 2131558607; + // aapt resource value: 0x7f0d00d1 + public const int flyoutcontent_recycler = 2131558609; // aapt resource value: 0x7f0d006e public const int forever = 2131558510; @@ -9464,8 +9470,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0078 public const int icon = 2131558520; - // aapt resource value: 0x7f0d012f - public const int icon_group = 2131558703; + // aapt resource value: 0x7f0d0131 + public const int icon_group = 2131558705; // aapt resource value: 0x7f0d0027 public const int icon_only = 2131558439; @@ -9476,23 +9482,23 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0075 public const int image = 2131558517; - // aapt resource value: 0x7f0d012b - public const int info = 2131558699; - - // aapt resource value: 0x7f0d00d7 - public const int input_email = 2131558615; + // aapt resource value: 0x7f0d012d + public const int info = 2131558701; // aapt resource value: 0x7f0d00d9 - public const int input_message = 2131558617; + public const int input_email = 2131558617; - // aapt resource value: 0x7f0d00d6 - public const int input_name = 2131558614; - - // aapt resource value: 0x7f0d00e4 - public const int input_password = 2131558628; + // aapt resource value: 0x7f0d00db + public const int input_message = 2131558619; // aapt resource value: 0x7f0d00d8 - public const int input_subject = 2131558616; + public const int input_name = 2131558616; + + // aapt resource value: 0x7f0d00e6 + public const int input_password = 2131558630; + + // aapt resource value: 0x7f0d00da + public const int input_subject = 2131558618; // aapt resource value: 0x7f0d006f public const int italic = 2131558511; @@ -9500,32 +9506,32 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0000 public const int item_touch_helper_previous_elevation = 2131558400; - // aapt resource value: 0x7f0d00eb - public const int label_author = 2131558635; - - // aapt resource value: 0x7f0d00ec - public const int label_date = 2131558636; - - // aapt resource value: 0x7f0d00de - public const int label_last_updated = 2131558622; - - // aapt resource value: 0x7f0d00d3 - public const int label_message = 2131558611; - // aapt resource value: 0x7f0d00ed - public const int label_text = 2131558637; + public const int label_author = 2131558637; - // aapt resource value: 0x7f0d00e7 - public const int label_title = 2131558631; + // aapt resource value: 0x7f0d00ee + public const int label_date = 2131558638; - // aapt resource value: 0x7f0d00e8 - public const int label_version = 2131558632; + // aapt resource value: 0x7f0d00e0 + public const int label_last_updated = 2131558624; + + // aapt resource value: 0x7f0d00d5 + public const int label_message = 2131558613; + + // aapt resource value: 0x7f0d00ef + public const int label_text = 2131558639; + + // aapt resource value: 0x7f0d00e9 + public const int label_title = 2131558633; + + // aapt resource value: 0x7f0d00ea + public const int label_version = 2131558634; // aapt resource value: 0x7f0d0055 public const int labeled = 2131558485; - // aapt resource value: 0x7f0d00be - public const int largeLabel = 2131558590; + // aapt resource value: 0x7f0d00c0 + public const int largeLabel = 2131558592; // aapt resource value: 0x7f0d005b public const int left = 2131558491; @@ -9542,32 +9548,32 @@ namespace Bit.Droid // aapt resource value: 0x7f0d002d public const int listMode = 2131558445; - // aapt resource value: 0x7f0d00ee - public const int list_attachments = 2131558638; + // aapt resource value: 0x7f0d00f0 + public const int list_attachments = 2131558640; - // aapt resource value: 0x7f0d00e2 - public const int list_feedback_messages = 2131558626; + // aapt resource value: 0x7f0d00e4 + public const int list_feedback_messages = 2131558628; // aapt resource value: 0x7f0d0077 public const int list_item = 2131558519; - // aapt resource value: 0x7f0d0131 - public const int main_appbar = 2131558705; + // aapt resource value: 0x7f0d0133 + public const int main_appbar = 2131558707; + + // aapt resource value: 0x7f0d0136 + public const int main_scrollview = 2131558710; + + // aapt resource value: 0x7f0d0135 + public const int main_tablayout = 2131558709; // aapt resource value: 0x7f0d0134 - public const int main_scrollview = 2131558708; + public const int main_toolbar = 2131558708; - // aapt resource value: 0x7f0d0133 - public const int main_tablayout = 2131558707; + // aapt resource value: 0x7f0d013e + public const int masked = 2131558718; - // aapt resource value: 0x7f0d0132 - public const int main_toolbar = 2131558706; - - // aapt resource value: 0x7f0d013c - public const int masked = 2131558716; - - // aapt resource value: 0x7f0d0124 - public const int media_actions = 2131558692; + // aapt resource value: 0x7f0d0126 + public const int media_actions = 2131558694; // aapt resource value: 0x7f0d00a3 public const int message = 2131558563; @@ -9578,143 +9584,143 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0060 public const int mini = 2131558496; - // aapt resource value: 0x7f0d010b - public const int mr_art = 2131558667; - - // aapt resource value: 0x7f0d00fc - public const int mr_cast_checkbox = 2131558652; - - // aapt resource value: 0x7f0d00f5 - public const int mr_cast_close_button = 2131558645; - - // aapt resource value: 0x7f0d00f0 - public const int mr_cast_group_icon = 2131558640; - - // aapt resource value: 0x7f0d00f1 - public const int mr_cast_group_name = 2131558641; - - // aapt resource value: 0x7f0d00ef - public const int mr_cast_list = 2131558639; - - // aapt resource value: 0x7f0d00f4 - public const int mr_cast_meta = 2131558644; - - // aapt resource value: 0x7f0d00f6 - public const int mr_cast_meta_art = 2131558646; - - // aapt resource value: 0x7f0d00f8 - public const int mr_cast_meta_subtitle = 2131558648; - - // aapt resource value: 0x7f0d00f7 - public const int mr_cast_meta_title = 2131558647; - - // aapt resource value: 0x7f0d00fa - public const int mr_cast_route_icon = 2131558650; - - // aapt resource value: 0x7f0d00fb - public const int mr_cast_route_name = 2131558651; - - // aapt resource value: 0x7f0d00f9 - public const int mr_cast_stop_button = 2131558649; - - // aapt resource value: 0x7f0d00fd - public const int mr_cast_volume_layout = 2131558653; + // aapt resource value: 0x7f0d010d + public const int mr_art = 2131558669; // aapt resource value: 0x7f0d00fe - public const int mr_cast_volume_slider = 2131558654; + public const int mr_cast_checkbox = 2131558654; - // aapt resource value: 0x7f0d0100 - public const int mr_chooser_list = 2131558656; - - // aapt resource value: 0x7f0d0103 - public const int mr_chooser_route_desc = 2131558659; - - // aapt resource value: 0x7f0d0101 - public const int mr_chooser_route_icon = 2131558657; - - // aapt resource value: 0x7f0d0102 - public const int mr_chooser_route_name = 2131558658; - - // aapt resource value: 0x7f0d00ff - public const int mr_chooser_title = 2131558655; - - // aapt resource value: 0x7f0d0108 - public const int mr_close = 2131558664; - - // aapt resource value: 0x7f0d010e - public const int mr_control_divider = 2131558670; - - // aapt resource value: 0x7f0d0119 - public const int mr_control_playback_ctrl = 2131558681; - - // aapt resource value: 0x7f0d011c - public const int mr_control_subtitle = 2131558684; - - // aapt resource value: 0x7f0d011b - public const int mr_control_title = 2131558683; - - // aapt resource value: 0x7f0d011a - public const int mr_control_title_container = 2131558682; - - // aapt resource value: 0x7f0d0109 - public const int mr_custom_control = 2131558665; - - // aapt resource value: 0x7f0d010a - public const int mr_default_control = 2131558666; - - // aapt resource value: 0x7f0d0105 - public const int mr_dialog_area = 2131558661; - - // aapt resource value: 0x7f0d0114 - public const int mr_dialog_header_name = 2131558676; - - // aapt resource value: 0x7f0d0104 - public const int mr_expandable_area = 2131558660; - - // aapt resource value: 0x7f0d011d - public const int mr_group_expand_collapse = 2131558685; + // aapt resource value: 0x7f0d00f7 + public const int mr_cast_close_button = 2131558647; // aapt resource value: 0x7f0d00f2 - public const int mr_group_volume_route_name = 2131558642; + public const int mr_cast_group_icon = 2131558642; // aapt resource value: 0x7f0d00f3 - public const int mr_group_volume_slider = 2131558643; + public const int mr_cast_group_name = 2131558643; - // aapt resource value: 0x7f0d010c - public const int mr_media_main_control = 2131558668; + // aapt resource value: 0x7f0d00f1 + public const int mr_cast_list = 2131558641; - // aapt resource value: 0x7f0d0107 - public const int mr_name = 2131558663; + // aapt resource value: 0x7f0d00f6 + public const int mr_cast_meta = 2131558646; - // aapt resource value: 0x7f0d0115 - public const int mr_picker_close_button = 2131558677; + // aapt resource value: 0x7f0d00f8 + public const int mr_cast_meta_art = 2131558648; - // aapt resource value: 0x7f0d0116 - public const int mr_picker_list = 2131558678; + // aapt resource value: 0x7f0d00fa + public const int mr_cast_meta_subtitle = 2131558650; - // aapt resource value: 0x7f0d0117 - public const int mr_picker_route_icon = 2131558679; + // aapt resource value: 0x7f0d00f9 + public const int mr_cast_meta_title = 2131558649; - // aapt resource value: 0x7f0d0118 - public const int mr_picker_route_name = 2131558680; + // aapt resource value: 0x7f0d00fc + public const int mr_cast_route_icon = 2131558652; - // aapt resource value: 0x7f0d010d - public const int mr_playback_control = 2131558669; + // aapt resource value: 0x7f0d00fd + public const int mr_cast_route_name = 2131558653; - // aapt resource value: 0x7f0d0106 - public const int mr_title_bar = 2131558662; + // aapt resource value: 0x7f0d00fb + public const int mr_cast_stop_button = 2131558651; - // aapt resource value: 0x7f0d010f - public const int mr_volume_control = 2131558671; + // aapt resource value: 0x7f0d00ff + public const int mr_cast_volume_layout = 2131558655; + + // aapt resource value: 0x7f0d0100 + public const int mr_cast_volume_slider = 2131558656; + + // aapt resource value: 0x7f0d0102 + public const int mr_chooser_list = 2131558658; + + // aapt resource value: 0x7f0d0105 + public const int mr_chooser_route_desc = 2131558661; + + // aapt resource value: 0x7f0d0103 + public const int mr_chooser_route_icon = 2131558659; + + // aapt resource value: 0x7f0d0104 + public const int mr_chooser_route_name = 2131558660; + + // aapt resource value: 0x7f0d0101 + public const int mr_chooser_title = 2131558657; + + // aapt resource value: 0x7f0d010a + public const int mr_close = 2131558666; // aapt resource value: 0x7f0d0110 - public const int mr_volume_group_list = 2131558672; + public const int mr_control_divider = 2131558672; + + // aapt resource value: 0x7f0d011b + public const int mr_control_playback_ctrl = 2131558683; + + // aapt resource value: 0x7f0d011e + public const int mr_control_subtitle = 2131558686; + + // aapt resource value: 0x7f0d011d + public const int mr_control_title = 2131558685; + + // aapt resource value: 0x7f0d011c + public const int mr_control_title_container = 2131558684; + + // aapt resource value: 0x7f0d010b + public const int mr_custom_control = 2131558667; + + // aapt resource value: 0x7f0d010c + public const int mr_default_control = 2131558668; + + // aapt resource value: 0x7f0d0107 + public const int mr_dialog_area = 2131558663; + + // aapt resource value: 0x7f0d0116 + public const int mr_dialog_header_name = 2131558678; + + // aapt resource value: 0x7f0d0106 + public const int mr_expandable_area = 2131558662; + + // aapt resource value: 0x7f0d011f + public const int mr_group_expand_collapse = 2131558687; + + // aapt resource value: 0x7f0d00f4 + public const int mr_group_volume_route_name = 2131558644; + + // aapt resource value: 0x7f0d00f5 + public const int mr_group_volume_slider = 2131558645; + + // aapt resource value: 0x7f0d010e + public const int mr_media_main_control = 2131558670; + + // aapt resource value: 0x7f0d0109 + public const int mr_name = 2131558665; + + // aapt resource value: 0x7f0d0117 + public const int mr_picker_close_button = 2131558679; + + // aapt resource value: 0x7f0d0118 + public const int mr_picker_list = 2131558680; + + // aapt resource value: 0x7f0d0119 + public const int mr_picker_route_icon = 2131558681; + + // aapt resource value: 0x7f0d011a + public const int mr_picker_route_name = 2131558682; + + // aapt resource value: 0x7f0d010f + public const int mr_playback_control = 2131558671; + + // aapt resource value: 0x7f0d0108 + public const int mr_title_bar = 2131558664; + + // aapt resource value: 0x7f0d0111 + public const int mr_volume_control = 2131558673; // aapt resource value: 0x7f0d0112 - public const int mr_volume_item_icon = 2131558674; + public const int mr_volume_group_list = 2131558674; - // aapt resource value: 0x7f0d0113 - public const int mr_volume_slider = 2131558675; + // aapt resource value: 0x7f0d0114 + public const int mr_volume_item_icon = 2131558676; + + // aapt resource value: 0x7f0d0115 + public const int mr_volume_slider = 2131558677; // aapt resource value: 0x7f0d0014 public const int mtrl_child_content_container = 2131558420; @@ -9725,8 +9731,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0037 public const int multiply = 2131558455; - // aapt resource value: 0x7f0d00c3 - public const int navigation_header_container = 2131558595; + // aapt resource value: 0x7f0d00c5 + public const int navigation_header_container = 2131558597; // aapt resource value: 0x7f0d004a public const int never = 2131558474; @@ -9737,14 +9743,14 @@ namespace Bit.Droid // aapt resource value: 0x7f0d002e public const int normal = 2131558446; - // aapt resource value: 0x7f0d012d - public const int notification_background = 2131558701; + // aapt resource value: 0x7f0d012f + public const int notification_background = 2131558703; - // aapt resource value: 0x7f0d0127 - public const int notification_main_column = 2131558695; + // aapt resource value: 0x7f0d0129 + public const int notification_main_column = 2131558697; - // aapt resource value: 0x7f0d0126 - public const int notification_main_column_container = 2131558694; + // aapt resource value: 0x7f0d0128 + public const int notification_main_column_container = 2131558696; // aapt resource value: 0x7f0d0067 public const int outline = 2131558503; @@ -9773,11 +9779,11 @@ namespace Bit.Droid // aapt resource value: 0x7f0d005c public const int right = 2131558492; - // aapt resource value: 0x7f0d012c - public const int right_icon = 2131558700; + // aapt resource value: 0x7f0d012e + public const int right_icon = 2131558702; - // aapt resource value: 0x7f0d0128 - public const int right_side = 2131558696; + // aapt resource value: 0x7f0d012a + public const int right_side = 2131558698; // aapt resource value: 0x7f0d000c public const int save_image_matrix = 2131558412; @@ -9842,14 +9848,14 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0056 public const int selected = 2131558486; - // aapt resource value: 0x7f0d0135 - public const int shellcontent_appbar = 2131558709; - // aapt resource value: 0x7f0d0137 - public const int shellcontent_scrollview = 2131558711; + public const int shellcontent_appbar = 2131558711; - // aapt resource value: 0x7f0d0136 - public const int shellcontent_toolbar = 2131558710; + // aapt resource value: 0x7f0d0139 + public const int shellcontent_scrollview = 2131558713; + + // aapt resource value: 0x7f0d0138 + public const int shellcontent_toolbar = 2131558712; // aapt resource value: 0x7f0d008a public const int shortcut = 2131558538; @@ -9863,11 +9869,11 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0034 public const int showTitle = 2131558452; - // aapt resource value: 0x7f0d0138 - public const int sliding_tabs = 2131558712; + // aapt resource value: 0x7f0d013a + public const int sliding_tabs = 2131558714; - // aapt resource value: 0x7f0d00bd - public const int smallLabel = 2131558589; + // aapt resource value: 0x7f0d00bf + public const int smallLabel = 2131558591; // aapt resource value: 0x7f0d0016 public const int snackbar_action = 2131558422; @@ -9902,8 +9908,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d005d public const int start = 2131558493; - // aapt resource value: 0x7f0d0123 - public const int status_bar_latest_event_content = 2131558691; + // aapt resource value: 0x7f0d0125 + public const int status_bar_latest_event_content = 2131558693; // aapt resource value: 0x7f0d0062 public const int stretch = 2131558498; @@ -9944,11 +9950,11 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0061 public const int textStart = 2131558497; - // aapt resource value: 0x7f0d00e3 - public const int text_headline = 2131558627; + // aapt resource value: 0x7f0d00e5 + public const int text_headline = 2131558629; - // aapt resource value: 0x7f0d00c8 - public const int text_input_password_toggle = 2131558600; + // aapt resource value: 0x7f0d00ca + public const int text_input_password_toggle = 2131558602; // aapt resource value: 0x7f0d0018 public const int textinput_counter = 2131558424; @@ -9959,8 +9965,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d001a public const int textinput_helper_text = 2131558426; - // aapt resource value: 0x7f0d0129 - public const int time = 2131558697; + // aapt resource value: 0x7f0d012b + public const int time = 2131558699; // aapt resource value: 0x7f0d0023 public const int title = 2131558435; @@ -9971,8 +9977,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0085 public const int title_template = 2131558533; - // aapt resource value: 0x7f0d0139 - public const int toolbar = 2131558713; + // aapt resource value: 0x7f0d013b + public const int toolbar = 2131558715; // aapt resource value: 0x7f0d004d public const int top = 2131558477; @@ -9980,8 +9986,8 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0084 public const int topPanel = 2131558532; - // aapt resource value: 0x7f0d00c1 - public const int touch_outside = 2131558593; + // aapt resource value: 0x7f0d00c3 + public const int touch_outside = 2131558595; // aapt resource value: 0x7f0d000f public const int transition_current_scene = 2131558415; @@ -10010,20 +10016,20 @@ namespace Bit.Droid // aapt resource value: 0x7f0d0035 public const int useLogo = 2131558453; - // aapt resource value: 0x7f0d00e6 - public const int view_header = 2131558630; + // aapt resource value: 0x7f0d00e8 + public const int view_header = 2131558632; // aapt resource value: 0x7f0d001b public const int view_offset_helper = 2131558427; - // aapt resource value: 0x7f0d013b - public const int visible = 2131558715; + // aapt resource value: 0x7f0d013d + public const int visible = 2131558717; - // aapt resource value: 0x7f0d0111 - public const int volume_item_container = 2131558673; + // aapt resource value: 0x7f0d0113 + public const int volume_item_container = 2131558675; - // aapt resource value: 0x7f0d00ea - public const int web_update_details = 2131558634; + // aapt resource value: 0x7f0d00ec + public const int web_update_details = 2131558636; // aapt resource value: 0x7f0d0029 public const int wide = 2131558441; @@ -10034,20 +10040,20 @@ namespace Bit.Droid // aapt resource value: 0x7f0d003d public const int wrap_content = 2131558461; - // aapt resource value: 0x7f0d00da - public const int wrapper_attachments = 2131558618; + // aapt resource value: 0x7f0d00dc + public const int wrapper_attachments = 2131558620; - // aapt resource value: 0x7f0d00d5 - public const int wrapper_feedback = 2131558613; + // aapt resource value: 0x7f0d00d7 + public const int wrapper_feedback = 2131558615; - // aapt resource value: 0x7f0d00d4 - public const int wrapper_feedback_scroll = 2131558612; - - // aapt resource value: 0x7f0d00dd - public const int wrapper_messages = 2131558621; + // aapt resource value: 0x7f0d00d6 + public const int wrapper_feedback_scroll = 2131558614; // aapt resource value: 0x7f0d00df - public const int wrapper_messages_buttons = 2131558623; + public const int wrapper_messages = 2131558623; + + // aapt resource value: 0x7f0d00e1 + public const int wrapper_messages_buttons = 2131558625; static Id() { diff --git a/src/Android/Resources/layout/CipherViewCell.axml b/src/Android/Resources/layout/CipherViewCell.axml index decf53d56..2304eb9db 100644 --- a/src/Android/Resources/layout/CipherViewCell.axml +++ b/src/Android/Resources/layout/CipherViewCell.axml @@ -2,53 +2,69 @@ + android:minHeight="44dp" + android:gravity="center_vertical"> - - - - - + android:layout_height="wrap_content"> + + + android:layout_gravity="center_vertical"> + + + + + + + +