display notifications to allow copying TOTP to clipboard when autofilling, closes #1072
This commit is contained in:
@@ -92,7 +92,7 @@ namespace keepass2android
|
||||
{
|
||||
public const String KeyEntry = "entry";
|
||||
public const String KeyRefreshPos = "refresh_pos";
|
||||
public const String KeyCloseAfterCreate = "close_after_create";
|
||||
public const String KeyActivateKeyboard = "activate_keyboard";
|
||||
public const String KeyGroupFullPath = "groupfullpath_key";
|
||||
|
||||
public const int requestCodeBinaryFilename = 42376;
|
||||
@@ -480,13 +480,13 @@ namespace keepass2android
|
||||
|
||||
|
||||
|
||||
internal void StartNotificationsService(bool closeAfterCreate)
|
||||
internal void StartNotificationsService(bool activateKeyboard)
|
||||
{
|
||||
Intent showNotIntent = new Intent(this, typeof (CopyToClipboardService));
|
||||
showNotIntent.SetAction(Intents.ShowNotification);
|
||||
showNotIntent.PutExtra(KeyEntry, new ElementAndDatabaseId(App.Kp2a.CurrentDb, Entry).FullId);
|
||||
_appTask.PopulatePasswordAccessServiceIntent(showNotIntent);
|
||||
showNotIntent.PutExtra(KeyCloseAfterCreate, closeAfterCreate);
|
||||
showNotIntent.PutExtra(KeyActivateKeyboard, activateKeyboard);
|
||||
|
||||
StartService(showNotIntent);
|
||||
}
|
||||
|
||||
@@ -511,7 +511,8 @@ namespace keepass2android
|
||||
{
|
||||
ShowUserNotifications = ShowUserNotificationsMode.Always;
|
||||
CloseAfterCreate = true;
|
||||
}
|
||||
ActivateKeyboard = true;
|
||||
}
|
||||
|
||||
public const String ShowUserNotificationsKey = "ShowUserNotifications";
|
||||
|
||||
@@ -520,15 +521,18 @@ namespace keepass2android
|
||||
public ShowUserNotificationsMode ShowUserNotifications { get; set; }
|
||||
|
||||
public const String CloseAfterCreateKey = "CloseAfterCreate";
|
||||
public const String ActivateKeyboardKey = "ActivateKeyboard";
|
||||
|
||||
public bool CloseAfterCreate { get; set; }
|
||||
public bool CloseAfterCreate { get; set; }
|
||||
public bool ActivateKeyboard { get; set; }
|
||||
|
||||
|
||||
public override void Setup(Bundle b)
|
||||
public override void Setup(Bundle b)
|
||||
{
|
||||
ShowUserNotifications = (ShowUserNotificationsMode) GetIntFromBundle(b, ShowUserNotificationsKey, (int)ShowUserNotificationsMode.Always);
|
||||
CloseAfterCreate = GetBoolFromBundle(b, CloseAfterCreateKey, true);
|
||||
}
|
||||
ActivateKeyboard = GetBoolFromBundle(b, ActivateKeyboardKey, true);
|
||||
}
|
||||
|
||||
|
||||
public override IEnumerable<IExtra> Extras
|
||||
@@ -537,7 +541,8 @@ namespace keepass2android
|
||||
{
|
||||
yield return new StringExtra { Key = ShowUserNotificationsKey, Value = ((int)ShowUserNotifications).ToString() };
|
||||
yield return new StringExtra { Key = CloseAfterCreateKey, Value = CloseAfterCreate.ToString() };
|
||||
}
|
||||
yield return new StringExtra { Key = ActivateKeyboardKey, Value = ActivateKeyboard.ToString() };
|
||||
}
|
||||
}
|
||||
|
||||
public override void CompleteOnCreateEntryActivity(EntryActivity activity)
|
||||
@@ -550,7 +555,7 @@ namespace keepass2android
|
||||
|| ((ShowUserNotifications == ShowUserNotificationsMode.WhenTotp) && new Kp2aTotp().TryGetAdapter(new PwEntryOutput(activity.Entry, App.Kp2a.CurrentDb)) != null))
|
||||
{
|
||||
//show the notifications
|
||||
activity.StartNotificationsService(CloseAfterCreate);
|
||||
activity.StartNotificationsService(ActivateKeyboard);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -347,8 +347,8 @@ namespace keepass2android
|
||||
if (intent.Action == Intents.ShowNotification)
|
||||
{
|
||||
//first time opening the entry -> bring up the notifications
|
||||
bool closeAfterCreate = intent.GetBooleanExtra(EntryActivity.KeyCloseAfterCreate, false);
|
||||
DisplayAccessNotifications(entry, closeAfterCreate, searchUrl);
|
||||
bool activateKeyboard = intent.GetBooleanExtra(EntryActivity.KeyActivateKeyboard, false);
|
||||
DisplayAccessNotifications(entry, activateKeyboard, searchUrl);
|
||||
}
|
||||
else //UpdateKeyboard
|
||||
{
|
||||
@@ -429,7 +429,7 @@ namespace keepass2android
|
||||
|
||||
|
||||
|
||||
public void DisplayAccessNotifications(PwEntryOutput entry, bool closeAfterCreate, string searchUrl)
|
||||
public void DisplayAccessNotifications(PwEntryOutput entry, bool activateKeyboard, string searchUrl)
|
||||
{
|
||||
var hadKeyboardData = ClearNotifications();
|
||||
|
||||
@@ -483,7 +483,7 @@ namespace keepass2android
|
||||
{
|
||||
//switch rooted
|
||||
bool onlySwitchOnSearch = prefs.GetBoolean(GetString(Resource.String.OpenKp2aKeyboardAutomaticallyOnlyAfterSearch_key), false);
|
||||
if (closeAfterCreate || (!onlySwitchOnSearch))
|
||||
if (activateKeyboard || (!onlySwitchOnSearch))
|
||||
{
|
||||
ActivateKp2aKeyboard();
|
||||
}
|
||||
@@ -492,7 +492,7 @@ namespace keepass2android
|
||||
{
|
||||
//if the app is about to be closed again (e.g. after searching for a URL and returning to the browser:
|
||||
// automatically bring up the Keyboard selection dialog
|
||||
if ((closeAfterCreate) && prefs.GetBoolean(GetString(Resource.String.OpenKp2aKeyboardAutomatically_key), Resources.GetBoolean(Resource.Boolean.OpenKp2aKeyboardAutomatically_default)))
|
||||
if ((activateKeyboard) && prefs.GetBoolean(GetString(Resource.String.OpenKp2aKeyboardAutomatically_key), Resources.GetBoolean(Resource.Boolean.OpenKp2aKeyboardAutomatically_default)))
|
||||
{
|
||||
ActivateKp2aKeyboard();
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace keepass2android.services.Kp2aAutofill
|
||||
//will return the results later
|
||||
Intent i = new Intent(this, typeof(SelectCurrentDbActivity));
|
||||
//don't show user notifications when an entry is opened.
|
||||
var task = new SearchUrlTask() { UrlToSearchFor = requestedUrl, ShowUserNotifications = ShowUserNotificationsMode.WhenTotp, AutoReturnFromQuery = autoReturnFromQuery };
|
||||
var task = new SearchUrlTask() { UrlToSearchFor = requestedUrl, ShowUserNotifications = ShowUserNotificationsMode.WhenTotp, AutoReturnFromQuery = autoReturnFromQuery, ActivateKeyboard = false };
|
||||
task.ToIntent(i);
|
||||
return i;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user