aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Wong <wongma@protonmail.ch>2015-12-30 01:18:42 -0500
committerMatthew Wong <wongma@protonmail.ch>2015-12-30 01:18:42 -0500
commitebd565ec379e2209eafbbef8f86da0ca00bb29ff (patch)
tree64032cc0b8629460844ce9971acf95523b1848a6
parent5263ed10bbca73d8c454c4c37a7589b894977f75 (diff)
add always show dialog preference.
-rw-r--r--app/build.gradle10
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java3
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.java20
-rw-r--r--app/src/main/res/values/strings.xml5
-rw-r--r--app/src/main/res/xml/preference.xml6
-rw-r--r--build.gradle2
6 files changed, 27 insertions, 19 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 13a92edb..e161e9a9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'eclipse'
android {
compileSdkVersion 23
- buildToolsVersion "23.0.1"
+ buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.zeapo.pwdstore"
minSdkVersion 15
@@ -56,10 +56,10 @@ android {
}
dependencies {
- compile 'com.android.support:appcompat-v7:23.0.1'
- compile 'com.android.support:recyclerview-v7:23.0.1'
- compile 'com.android.support:cardview-v7:23.0.1'
- compile 'com.android.support:design:23.0.1'
+ compile 'com.android.support:appcompat-v7:23.1.1'
+ compile 'com.android.support:recyclerview-v7:23.1.1'
+ compile 'com.android.support:cardview-v7:23.1.1'
+ compile 'com.android.support:design:23.1.1'
compile 'org.sufficientlysecure:openpgp-api:9.0'
compile ('org.eclipse.jgit:org.eclipse.jgit:3.7.1.201504261725-r') {
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
index 123f4dc4..1c4c2076 100644
--- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
+++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillFragment.java
@@ -40,8 +40,7 @@ public class AutofillFragment extends DialogFragment {
final AutofillPreferenceActivity callingActivity = (AutofillPreferenceActivity) getActivity();
LayoutInflater inflater = callingActivity.getLayoutInflater();
- final View view = View.inflate(callingActivity.getApplicationContext()
- , R.layout.fragment_autofill, null);
+ final View view = inflater.inflate(R.layout.fragment_autofill, null);
builder.setView(view);
diff --git a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.java b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.java
index 88580e59..50ae3506 100644
--- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.java
+++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.java
@@ -149,7 +149,9 @@ public class AutofillService extends AccessibilityService {
appName = setMatchingPasswordsWeb(webViewTitle);
}
- if (items.isEmpty()) { // show anyway preference?
+ // if autofill_always checked, show dialog even if no matches (automatic
+ // or otherwise)
+ if (items.isEmpty() && !settings.getBoolean("autofill_always", false)) {
return;
}
showDialog(appName);
@@ -210,7 +212,7 @@ public class AutofillService extends AccessibilityService {
items = searchPasswords(PasswordRepository.getRepositoryDirectory(this), appName);
break;
case "/never":
- items.clear();
+ items = new ArrayList<>();
return;
default:
getPreferredPasswords(preference);
@@ -234,7 +236,7 @@ public class AutofillService extends AccessibilityService {
}
items = searchPasswords(PasswordRepository.getRepositoryDirectory(this), webViewTitle);
} else {
- items.clear();
+ items = new ArrayList<>();
}
return webViewTitle;
}
@@ -255,7 +257,6 @@ public class AutofillService extends AccessibilityService {
}
}
-
private ArrayList<File> searchPasswords(File path, String appName) {
ArrayList<File> passList
= PasswordRepository.getFilesList(path);
@@ -322,12 +323,15 @@ public class AutofillService extends AccessibilityService {
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
// arbitrary non-annoying size
- int height = 144;
+ int height = 88;
+ if (items.size() > 0) {
+ height += 66;
+ }
if (items.size() > 1) {
- height += 48;
+ height += 33;
}
- dialog.getWindow().setLayout((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 240, getResources().getDisplayMetrics())
- , (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, height, getResources().getDisplayMetrics()));
+ dialog.getWindow().setLayout((int) (240 * getApplicationContext().getResources().getDisplayMetrics().density)
+ , (int) (height * getApplicationContext().getResources().getDisplayMetrics().density));
dialog.show();
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index de289e48..3f4fb345 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -112,7 +112,7 @@
<string name="pref_password_dialog_title">Set the time you want the password to be in clipboard</string>
<string name="pref_copy_title">Automatically Copy Password</string>
<string name="pref_copy_dialog_title">Automatically copy the password to the clipboard after decryption was successful.</string>
- <string name="ssh_key_success_dialog_title" translatable="false">SSH-key imported</string>
+ <string name="ssh_key_success_dialog_title">SSH-key imported</string>
<string name="ssh_key_error_dialog_title">Error while trying to import the ssh-key</string>
<string name="ssh_key_error_dialog_text">Message : \n</string>
<string name="pref_recursive_filter">Recursive filtering</string>
@@ -121,10 +121,11 @@
<string name="pref_autofill_enable_msg">Tap OK to go to Accessibility settings. There, tap Password Store under Services then tap the switch in the top right to turn it on or off.</string>
<string name="pref_autofill_enable_msg2">Once the service is on, a dialog will appear when you click on a password field in an app if a matching password for the app exists.</string>
<string name="pref_autofill_enable_msg3">Password Store attempts to match apps with passwords automatically. You can change this default setting and also matching settings per-app.</string>
- <string name="pref_autofill_apps_title">Per-app settings</string>
+ <string name="pref_autofill_apps_title">App and website settings</string>
<string name="pref_autofill_apps_hint">Customize autofill settings for specific apps.</string>
<string name="pref_autofill_default_title">Automatically match by default</string>
<string name="pref_autofill_default_hint">Default to \'Automatically match\' for apps without custom settings. Otherwise, \'Never match.\'</string>
+ <string name="pref_autofill_always_title">Always show dialog</string>
<string name="pref_clear_clipboard_title">Clear clipboard 20 times</string>
<string name="pref_clear_clipboard_hint">Store nonsense in the clipboard 20 times instead of just once. Useful on Samsung phones that feature clipboard history.</string>
diff --git a/app/src/main/res/xml/preference.xml b/app/src/main/res/xml/preference.xml
index 639fdfe1..f8397bc3 100644
--- a/app/src/main/res/xml/preference.xml
+++ b/app/src/main/res/xml/preference.xml
@@ -79,7 +79,6 @@
<Preference
android:dependency="autofill_enable"
android:key="autofill_apps"
- android:summary="@string/pref_autofill_apps_hint"
android:title="@string/pref_autofill_apps_title"/>
<CheckBoxPreference
android:dependency="autofill_enable"
@@ -87,6 +86,11 @@
android:key="autofill_default"
android:summary="@string/pref_autofill_default_hint"
android:title="@string/pref_autofill_default_title"/>
+ <CheckBoxPreference
+ android:dependency="autofill_enable"
+ android:defaultValue="false"
+ android:key="autofill_always"
+ android:title="@string/pref_autofill_always_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="Misc">
diff --git a/build.gradle b/build.gradle
index 9cbebcf6..22422a8c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,7 +22,7 @@ allprojects {
ext {
compileSdkVersion = 23
- buildToolsVersion = "23.0.1"
+ buildToolsVersion = "23.0.2"
}
subprojects { subproject ->
afterEvaluate{