mirror of
https://github.com/bitwarden/android.git
synced 2024-10-31 15:15:34 +03:00
added to login service for android
This commit is contained in:
parent
15e154feb0
commit
a871a839e7
2 changed files with 44 additions and 1 deletions
|
@ -5,6 +5,7 @@ using System.Text;
|
|||
using Android.AccessibilityServices;
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.Graphics;
|
||||
using Android.OS;
|
||||
using Android.Runtime;
|
||||
using Android.Views;
|
||||
|
@ -18,14 +19,20 @@ namespace Bit.Android
|
|||
[MetaData("android.accessibilityservice", Resource = "@xml/accessibilityservice")]
|
||||
public class LoginService : AccessibilityService
|
||||
{
|
||||
private View mView;
|
||||
|
||||
private WindowManagerLayoutParams mParams;
|
||||
private IWindowManager mWindowManager;
|
||||
|
||||
public override void OnAccessibilityEvent(AccessibilityEvent e)
|
||||
{
|
||||
var eventType = e.EventType;
|
||||
switch(eventType)
|
||||
{
|
||||
case EventTypes.ViewTextSelectionChanged:
|
||||
if(e.Source.Password)
|
||||
if(e.Source.Password && string.IsNullOrWhiteSpace(e.Source.Text))
|
||||
{
|
||||
MakeWindow();
|
||||
var bundle = new Bundle();
|
||||
bundle.PutCharSequence(AccessibilityNodeInfo.ActionArgumentSetTextCharsequence, "mypassword");
|
||||
e.Source.PerformAction(global::Android.Views.Accessibility.Action.SetText, bundle);
|
||||
|
@ -40,5 +47,40 @@ namespace Bit.Android
|
|||
{
|
||||
|
||||
}
|
||||
|
||||
public void MakeWindow()
|
||||
{
|
||||
mView = new MyLoadView(this);
|
||||
|
||||
mParams = new WindowManagerLayoutParams(
|
||||
WindowManagerTypes.SystemOverlay,
|
||||
WindowManagerFlags.WatchOutsideTouch,
|
||||
Format.Translucent);
|
||||
|
||||
mParams.Gravity = GravityFlags.Top | GravityFlags.Right;
|
||||
mParams.Title = "Test window";
|
||||
|
||||
mWindowManager = GetSystemService(WindowService).JavaCast<IWindowManager>();
|
||||
mWindowManager.AddView(mView, mParams);
|
||||
}
|
||||
|
||||
public class MyLoadView : View
|
||||
{
|
||||
private Paint mPaint;
|
||||
|
||||
public MyLoadView(Context context)
|
||||
: base(context)
|
||||
{
|
||||
mPaint = new Paint();
|
||||
mPaint.TextSize = 50;
|
||||
mPaint.SetARGB(200, 200, 200, 200);
|
||||
}
|
||||
|
||||
protected override void OnDraw(Canvas canvas)
|
||||
{
|
||||
base.OnDraw(canvas);
|
||||
canvas.DrawText("test test test", 0, 100, mPaint);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,5 +3,6 @@
|
|||
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<application android:label="bitwarden" android:theme="@style/BitwardenTheme"></application>
|
||||
</manifest>
|
Loading…
Reference in a new issue