From b1807197f85c4d6ceccc3ca23654bb184f9caa13 Mon Sep 17 00:00:00 2001 From: Matthew Wong Date: Fri, 14 Aug 2015 14:12:02 -0400 Subject: Fix crash on first start & use documentLaunchMode for nicer openkeychain-api behaviour (5+ only) --- app/src/main/AndroidManifest.xml | 4 +++- .../java/com/zeapo/pwdstore/autofill/AutofillService.java | 12 +++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'app') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ecd106cd..0789fd33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,9 @@ + android:parentActivityName=".PasswordStore" + android:documentLaunchMode="intoExisting" + android:excludeFromRecents="true"> 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 688e22fc..1e64e8c8 100644 --- a/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.java +++ b/app/src/main/java/com/zeapo/pwdstore/autofill/AutofillService.java @@ -130,11 +130,17 @@ public class AutofillService extends AccessibilityService { String preference = prefs.getString(event.getPackageName().toString(), defValue); switch (preference) { case "first": + if (!PasswordRepository.isInitialized()) { + PasswordRepository.initialize(this); + } items = recursiveFilter(appName, null); break; case "never": return; default: + if (!PasswordRepository.isInitialized()) { + PasswordRepository.initialize(this); + } String path = PasswordRepository.getWorkTree() + "/" + preference + ".gpg"; File file = new File(path); items = new ArrayList<>(); @@ -177,9 +183,6 @@ public class AutofillService extends AccessibilityService { private ArrayList recursiveFilter(String filter, File dir) { ArrayList items = new ArrayList<>(); - if (!PasswordRepository.isInitialized()) { - PasswordRepository.initialize(this); - } ArrayList passwordItems = dir == null ? PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(this)) : PasswordRepository.getPasswords(dir, PasswordRepository.getRepositoryDirectory(this)); @@ -252,8 +255,7 @@ public class AutofillService extends AccessibilityService { PendingIntent pi = result.getParcelableExtra(OpenPgpApi.RESULT_INTENT); // need to start a blank activity to call startIntentSenderForResult Intent intent = new Intent(AutofillService.this, AutofillActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK - | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra("pending_intent", pi); startActivity(intent); break; -- cgit v1.2.3