mirror of
https://github.com/bitwarden/mobile
synced 2025-12-15 15:53:44 +00:00
Autofill WIP
This commit is contained in:
@@ -298,6 +298,7 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="AutofillSelectLoginActivity.cs" />
|
||||||
<Compile Include="AutofillActivity.cs" />
|
<Compile Include="AutofillActivity.cs" />
|
||||||
<Compile Include="Controls\CustomSearchBarRenderer.cs" />
|
<Compile Include="Controls\CustomSearchBarRenderer.cs" />
|
||||||
<Compile Include="Controls\CustomButtonRenderer.cs" />
|
<Compile Include="Controls\CustomButtonRenderer.cs" />
|
||||||
|
|||||||
@@ -22,19 +22,25 @@ namespace Bit.Android
|
|||||||
|
|
||||||
var url = Intent.GetStringExtra("url");
|
var url = Intent.GetStringExtra("url");
|
||||||
_lastQueriedUrl = url;
|
_lastQueriedUrl = url;
|
||||||
//StartActivityForResult(Kp2aControl.GetQueryEntryIntent(url), 123);
|
|
||||||
|
Intent intent = new Intent(this, typeof(AutofillSelectLoginActivity));
|
||||||
|
intent.PutExtra("url", url);
|
||||||
|
StartActivityForResult(intent, 123);
|
||||||
}
|
}
|
||||||
|
|
||||||
string _lastQueriedUrl;
|
string _lastQueriedUrl;
|
||||||
|
|
||||||
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
|
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
|
||||||
{
|
{
|
||||||
|
var url = data.GetStringExtra("url");
|
||||||
|
var username = data.GetStringExtra("username");
|
||||||
|
var password = data.GetStringExtra("password");
|
||||||
|
|
||||||
base.OnActivityResult(requestCode, resultCode, data);
|
base.OnActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// TODO: lookup login
|
LastReceivedCredentials = new Credentials { User = username, Password = password, Url = _lastQueriedUrl };
|
||||||
LastReceivedCredentials = new Credentials { User = "username", Password = "12345678", Url = _lastQueriedUrl };
|
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
|
|||||||
37
src/Android/AutofillSelectLoginActivity.cs
Normal file
37
src/Android/AutofillSelectLoginActivity.cs
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
using Android.App;
|
||||||
|
using Android.Content;
|
||||||
|
using Android.OS;
|
||||||
|
|
||||||
|
namespace Bit.Android
|
||||||
|
{
|
||||||
|
//[Activity(LaunchMode = global::Android.Content.PM.LaunchMode.SingleInstance)]
|
||||||
|
public class AutofillSelectLoginActivity : Activity
|
||||||
|
{
|
||||||
|
protected override void OnCreate(Bundle bundle)
|
||||||
|
{
|
||||||
|
base.OnCreate(bundle);
|
||||||
|
var url = Intent.GetStringExtra("url");
|
||||||
|
|
||||||
|
Intent data = new Intent();
|
||||||
|
data.PutExtra("url", url);
|
||||||
|
data.PutExtra("username", "user123");
|
||||||
|
data.PutExtra("password", "pass123");
|
||||||
|
|
||||||
|
if(Parent == null)
|
||||||
|
{
|
||||||
|
SetResult(Result.Ok, data);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Parent.SetResult(Result.Ok, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
Finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@ namespace Bit.Android
|
|||||||
public override void OnAccessibilityEvent(AccessibilityEvent e)
|
public override void OnAccessibilityEvent(AccessibilityEvent e)
|
||||||
{
|
{
|
||||||
var eventType = e.EventType;
|
var eventType = e.EventType;
|
||||||
|
System.Diagnostics.Debug.WriteLine(DateTime.UtcNow.ToString() + " Event Type: " + eventType);
|
||||||
var package = e.PackageName;
|
var package = e.PackageName;
|
||||||
switch(eventType)
|
switch(eventType)
|
||||||
{
|
{
|
||||||
@@ -122,8 +123,9 @@ namespace Bit.Android
|
|||||||
{
|
{
|
||||||
if(url1.StartsWith("androidapp://"))
|
if(url1.StartsWith("androidapp://"))
|
||||||
return url1 == url2;
|
return url1 == url2;
|
||||||
//return KeePassLib.Utility.UrlUtil.GetHost(url1) == KeePassLib.Utility.UrlUtil.GetHost(url2);
|
// TODO: host check
|
||||||
return false;
|
return url1 == url2;
|
||||||
|
//return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsPasswordField(AccessibilityNodeInfo n)
|
private static bool IsPasswordField(AccessibilityNodeInfo n)
|
||||||
|
|||||||
@@ -4,4 +4,5 @@
|
|||||||
android:accessibilityFeedbackType="feedbackSpoken"
|
android:accessibilityFeedbackType="feedbackSpoken"
|
||||||
android:accessibilityFlags="flagDefault"
|
android:accessibilityFlags="flagDefault"
|
||||||
android:notificationTimeout="100"
|
android:notificationTimeout="100"
|
||||||
android:canRetrieveWindowContent="true"/>
|
android:canRetrieveWindowContent="true"
|
||||||
|
android:canRequestEnhancedWebAccessibility="true"/>
|
||||||
Reference in New Issue
Block a user