1
0
mirror of https://github.com/bitwarden/mobile synced 2025-12-25 20:53:25 +00:00

add other items to autofill from app page

This commit is contained in:
Kyle Spearrin
2017-11-20 16:07:33 -05:00
parent 6268130998
commit 84e79e92b4
9 changed files with 89 additions and 49 deletions

View File

@@ -8,6 +8,7 @@ using Android.App;
using Bit.App.Abstractions;
using System.Threading.Tasks;
using Bit.App.Resources;
using Bit.App.Enums;
namespace Bit.Android.Autofill
{
@@ -33,7 +34,7 @@ namespace Bit.Android.Autofill
else if(parser.FieldCollection.FillableForCard)
{
var ciphers = await service.GetAllAsync();
foreach(var cipher in ciphers.Where(c => c.Type == App.Enums.CipherType.Card))
foreach(var cipher in ciphers.Where(c => c.Type == CipherType.Card))
{
items.Add(new FilledItem(cipher));
}
@@ -80,6 +81,22 @@ namespace Bit.Android.Autofill
AppResources.VaultIsLocked, Resource.Drawable.icon);
var intent = new Intent(context, typeof(MainActivity));
intent.PutExtra("autofillFramework", true);
if(fields.FillableForLogin)
{
intent.PutExtra("autofillFrameworkFillType", (int)CipherType.Login);
}
else if(fields.FillableForCard)
{
intent.PutExtra("autofillFrameworkFillType", (int)CipherType.Card);
}
else if(fields.FillableForIdentity)
{
intent.PutExtra("autofillFrameworkFillType", (int)CipherType.Identity);
}
else
{
return null;
}
intent.PutExtra("autofillFrameworkUri", uri);
var pendingIntent = PendingIntent.GetActivity(context, 0, intent, PendingIntentFlags.CancelCurrent);
responseBuilder.SetAuthentication(fields.AutofillIds.ToArray(), pendingIntent.IntentSender, view);

View File

@@ -4,7 +4,6 @@ using Android.Views.Autofill;
using System.Linq;
using Bit.App.Models;
using Bit.App.Enums;
using Bit.App.Models.Page;
using Android.Views;
namespace Bit.Android.Autofill
@@ -107,23 +106,6 @@ namespace Bit.Android.Autofill
}
}
public FilledItem(VaultListPageModel.Cipher cipher)
{
Name = cipher.Name ?? "--";
Type = cipher.Type;
switch(Type)
{
case CipherType.Login:
Subtitle = cipher.LoginUsername ?? string.Empty;
_password = cipher.LoginPassword;
Icon = Resource.Drawable.login;
break;
default:
break;
}
}
public string Name { get; set; }
public string Subtitle { get; set; } = string.Empty;
public int Icon { get; set; } = Resource.Drawable.login;

View File

@@ -169,7 +169,7 @@ namespace Bit.Android
return;
}
var items = new List<FilledItem> { new FilledItem(cipher) };
var items = new List<FilledItem> { new FilledItem(cipher.CipherModel) };
var response = AutofillHelpers.BuildFillResponse(this, parser, items);
var replyIntent = new Intent();
replyIntent.PutExtra(AutofillManager.ExtraAuthenticationResult, response);
@@ -435,6 +435,12 @@ namespace Bit.Android
FromAutofillFramework = Intent.GetBooleanExtra("autofillFramework", false)
};
var fillType = Intent.GetIntExtra("autofillFrameworkFillType", 0);
if(fillType > 0)
{
options.FillType = (CipherType)fillType;
}
if(Intent.GetBooleanExtra("autofillFrameworkSave", false))
{
options.SaveType = (CipherType)Intent.GetIntExtra("autofillFrameworkType", 0);