mirror of
https://github.com/moparisthebest/keepass2android
synced 2024-11-15 22:15:14 -05:00
Added switches to preference screen to select which notifications to display,
fixed sorting of typable entries
This commit is contained in:
parent
dd6b376abf
commit
59c13861ae
Binary file not shown.
@ -1,8 +1,13 @@
|
||||
|
||||
package keepass2android.kbbridge;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
public class KeyboardData {
|
||||
public static HashMap<String, String> availableFields = new HashMap<String, String>();
|
||||
|
||||
|
||||
|
||||
public static List<StringForTyping> availableFields = new ArrayList<StringForTyping>();
|
||||
public static String entryName;
|
||||
|
||||
public static void clear()
|
||||
|
@ -1,11 +1,15 @@
|
||||
package keepass2android.kbbridge;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
public class KeyboardDataBuilder {
|
||||
private HashMap<String, String> availableFields = new HashMap<String, String>();
|
||||
private ArrayList<StringForTyping> availableFields = new ArrayList<StringForTyping>();
|
||||
|
||||
public void addPair(String displayName, String valueToType)
|
||||
{
|
||||
availableFields.put(displayName, valueToType);
|
||||
StringForTyping pair = new StringForTyping();
|
||||
pair.displayName = displayName;
|
||||
pair.value = valueToType;
|
||||
availableFields.add(pair);
|
||||
}
|
||||
|
||||
public void commit()
|
||||
|
@ -40,6 +40,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import keepass2android.kbbridge.StringForTyping;
|
||||
import keepass2android.softkeyboard.R;
|
||||
|
||||
/**
|
||||
@ -449,14 +450,14 @@ public class KP2AKeyboard extends InputMethodService implements
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
String title = "Keepass2Android";
|
||||
HashMap<String, String> availableFields = keepass2android.kbbridge.KeyboardData.availableFields;
|
||||
List<StringForTyping> availableFields = keepass2android.kbbridge.KeyboardData.availableFields;
|
||||
|
||||
final ArrayList<String> items = new ArrayList<String>();
|
||||
final ArrayList<String> values = new ArrayList<String>();
|
||||
for (HashMap.Entry<String, String> entry : availableFields.entrySet())
|
||||
for (StringForTyping entry : availableFields)
|
||||
{
|
||||
String key = entry.getKey();
|
||||
String value = entry.getValue();
|
||||
String key = entry.displayName;
|
||||
String value = entry.value;
|
||||
items.add(key);
|
||||
values.add(value);
|
||||
}
|
||||
|
900
src/keepass2android/Resources/Resource.designer.cs
generated
900
src/keepass2android/Resources/Resource.designer.cs
generated
File diff suppressed because it is too large
Load Diff
@ -62,6 +62,12 @@
|
||||
<string name="SuggestionsURL">https://keepass2android.codeplex.com/workitem/list/basic</string>
|
||||
<string name="TranslationURL">http://crowdin.net/project/keepass2android</string>
|
||||
|
||||
<string name="CopyToClipboardNotification_key">ShowCopyToClipboardNotification</string>
|
||||
<bool name="CopyToClipboardNotification_default">true</bool>
|
||||
|
||||
<string name="UseKp2aKeyboard_key">ShowKp2aKeyboardNotification</string>
|
||||
<bool name="UseKp2aKeyboard_default">true</bool>
|
||||
|
||||
<string name="clipboard_timeout_default">300000</string>
|
||||
<string-array name="clipboard_timeout_values">
|
||||
<item>30000</item>
|
||||
|
@ -206,6 +206,11 @@
|
||||
<string name="credentials_dialog_title">Enter server credentials</string>
|
||||
<string name="UseFileTransactions_title">File transactions</string>
|
||||
<string name="UseFileTransactions_summary">Use file transactions for writing databases</string>
|
||||
<string name="ShowCopyToClipboardNotification_title">Clipboard notifications</string>
|
||||
<string name="ShowCopyToClipboardNotification_summary">Make username and password accessible through the notification bar and clipboard. Beware of password sniffers!</string>
|
||||
<string name="ShowKp2aKeyboardNotification_title">KP2A keyboard notification</string>
|
||||
<string name="ShowKp2aKeyboardNotification_summary">Make full entry accessible through the KP2A keyboard (recommended).</string>
|
||||
|
||||
<string name="AskOverwriteBinary">Do you want to overwrite the existing binary with the same name?</string>
|
||||
<string name="AskOverwriteBinary_title">Overwrite existing binary?</string>
|
||||
<string name="AskOverwriteBinary_yes">Overwrite</string>
|
||||
|
@ -85,13 +85,22 @@
|
||||
android:entryValues="@array/list_size_values"
|
||||
android:dialogTitle="@string/list_size_summary"
|
||||
android:defaultValue="@string/list_size_default"/>
|
||||
<CheckBoxPreference
|
||||
|
||||
<CheckBoxPreference
|
||||
android:enabled="true"
|
||||
android:persistent="true"
|
||||
android:summary="@string/UseFileTransactions_summary"
|
||||
android:defaultValue="true"
|
||||
android:title="@string/UseFileTransactions_title"
|
||||
android:key="@string/UseFileTransactions_key" />
|
||||
android:summary="@string/ShowCopyToClipboardNotification_summary"
|
||||
android:defaultValue="@bool/CopyToClipboardNotification_default"
|
||||
android:title="@string/ShowCopyToClipboardNotification_title"
|
||||
android:key="@string/CopyToClipboardNotification_key" />
|
||||
<CheckBoxPreference
|
||||
android:enabled="true"
|
||||
android:persistent="true"
|
||||
android:summary="@string/ShowKp2aKeyboardNotification_summary"
|
||||
android:defaultValue="@bool/UseKp2aKeyboard_default"
|
||||
android:title="@string/ShowKp2aKeyboardNotification_title"
|
||||
android:key="@string/UseKp2aKeyboard_key" />
|
||||
|
||||
|
||||
<CheckBoxPreference
|
||||
android:enabled="true"
|
||||
@ -115,6 +124,13 @@
|
||||
android:defaultValue="@string/BinaryDirectory_default"
|
||||
android:title="@string/BinaryDirectory_title"
|
||||
android:key="@string/BinaryDirectory_key" />
|
||||
<CheckBoxPreference
|
||||
android:enabled="true"
|
||||
android:persistent="true"
|
||||
android:summary="@string/UseFileTransactions_summary"
|
||||
android:defaultValue="true"
|
||||
android:title="@string/UseFileTransactions_title"
|
||||
android:key="@string/UseFileTransactions_key" />
|
||||
|
||||
</PreferenceScreen>
|
||||
</PreferenceScreen>
|
||||
|
@ -154,34 +154,44 @@ namespace keepass2android
|
||||
|
||||
String entryName = entry.Strings.ReadSafe(PwDefs.TitleField);
|
||||
|
||||
if (entry.Strings.ReadSafe(PwDefs.PasswordField).Length > 0)
|
||||
ISharedPreferences prefs = Android.Preferences.PreferenceManager.GetDefaultSharedPreferences(this);
|
||||
if (prefs.GetBoolean(GetString(Resource.String.CopyToClipboardNotification_key), Resources.GetBoolean(Resource.Boolean.CopyToClipboardNotification_default)))
|
||||
{
|
||||
// only show notification if password is available
|
||||
Notification password = GetNotification(Intents.COPY_PASSWORD, Resource.String.copy_password, Resource.Drawable.notify, entryName);
|
||||
|
||||
password.DeleteIntent = createDeleteIntent(NOTIFY_PASSWORD);
|
||||
mNM.Notify(NOTIFY_PASSWORD, password);
|
||||
mNumElementsToWaitFor++;
|
||||
if (entry.Strings.ReadSafe(PwDefs.PasswordField).Length > 0)
|
||||
{
|
||||
// only show notification if password is available
|
||||
Notification password = GetNotification(Intents.COPY_PASSWORD, Resource.String.copy_password, Resource.Drawable.notify, entryName);
|
||||
|
||||
}
|
||||
|
||||
if (entry.Strings.ReadSafe(PwDefs.UserNameField).Length > 0)
|
||||
{
|
||||
// only show notification if username is available
|
||||
Notification username = GetNotification(Intents.COPY_USERNAME, Resource.String.copy_username, Resource.Drawable.notify, entryName);
|
||||
username.DeleteIntent = createDeleteIntent(NOTIFY_USERNAME);
|
||||
mNumElementsToWaitFor++;
|
||||
mNM.Notify(NOTIFY_USERNAME, username);
|
||||
password.DeleteIntent = createDeleteIntent(NOTIFY_PASSWORD);
|
||||
mNM.Notify(NOTIFY_PASSWORD, password);
|
||||
mNumElementsToWaitFor++;
|
||||
|
||||
}
|
||||
|
||||
if (entry.Strings.ReadSafe(PwDefs.UserNameField).Length > 0)
|
||||
{
|
||||
// only show notification if username is available
|
||||
Notification username = GetNotification(Intents.COPY_USERNAME, Resource.String.copy_username, Resource.Drawable.notify, entryName);
|
||||
username.DeleteIntent = createDeleteIntent(NOTIFY_USERNAME);
|
||||
mNumElementsToWaitFor++;
|
||||
mNM.Notify(NOTIFY_USERNAME, username);
|
||||
}
|
||||
}
|
||||
|
||||
//keyboard
|
||||
if (makeAccessibleForKeyboard(entry))
|
||||
if (prefs.GetBoolean(GetString(Resource.String.UseKp2aKeyboard_key), Resources.GetBoolean(Resource.Boolean.UseKp2aKeyboard_default)))
|
||||
{
|
||||
// only show notification if username is available
|
||||
Notification keyboard = GetNotification(Intents.CHECK_KEYBOARD, Resource.String.available_through_keyboard, Resource.Drawable.notify_keyboard, entryName);
|
||||
keyboard.DeleteIntent = createDeleteIntent(NOTIFY_KEYBOARD);
|
||||
mNumElementsToWaitFor++;
|
||||
mNM.Notify(NOTIFY_KEYBOARD, keyboard);
|
||||
|
||||
//keyboard
|
||||
if (makeAccessibleForKeyboard(entry))
|
||||
{
|
||||
// only show notification if username is available
|
||||
Notification keyboard = GetNotification(Intents.CHECK_KEYBOARD, Resource.String.available_through_keyboard, Resource.Drawable.notify_keyboard, entryName);
|
||||
keyboard.DeleteIntent = createDeleteIntent(NOTIFY_KEYBOARD);
|
||||
mNumElementsToWaitFor++;
|
||||
mNM.Notify(NOTIFY_KEYBOARD, keyboard);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (mNumElementsToWaitFor == 0)
|
||||
@ -189,7 +199,7 @@ namespace keepass2android
|
||||
StopSelf();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
mCopyToClipBroadcastReceiver = new CopyToClipboardBroadcastReceiver(entry, this);
|
||||
|
||||
IntentFilter filter = new IntentFilter();
|
||||
|
Loading…
Reference in New Issue
Block a user