From e073b215441be4833cde5bcbfc1c7a2d92b6ca54 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Fri, 9 Mar 2018 12:45:20 +0100 Subject: [PATCH] Fix compilation, flickering and crash with Autofill --- app/build.gradle | 1 + app/src/main/java/com/keepassdroid/app/App.java | 6 +++--- .../autofill/AutoFillAuthActivity.java | 2 +- .../com/keepassdroid/autofill/AutofillHelper.java | 7 ++++--- .../fileselect/FileSelectActivity.java | 3 ++- .../main/java/com/kunzisoft/keepass/KeePass.java | 14 +++++++++----- gradle.properties | 1 - 7 files changed, 20 insertions(+), 14 deletions(-) delete mode 100644 gradle.properties diff --git a/app/build.gradle b/app/build.gradle index 1775c01bf..808190f56 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,6 +10,7 @@ android { targetSdkVersion 27 versionCode = 5 versionName = "2.5.0.0beta5" + multiDexEnabled true testApplicationId = "com.keepassdroid.tests" testInstrumentationRunner = "android.test.InstrumentationTestRunner" diff --git a/app/src/main/java/com/keepassdroid/app/App.java b/app/src/main/java/com/keepassdroid/app/App.java index 08b06db66..178ede83c 100644 --- a/app/src/main/java/com/keepassdroid/app/App.java +++ b/app/src/main/java/com/keepassdroid/app/App.java @@ -19,16 +19,16 @@ */ package com.keepassdroid.app; -import android.app.Application; +import android.support.multidex.MultiDexApplication; -import com.keepassdroid.database.Database; import com.keepassdroid.compat.PRNGFixes; +import com.keepassdroid.database.Database; import com.keepassdroid.fileselect.RecentFileHistory; import com.keepassdroid.stylish.Stylish; import java.util.Calendar; -public class App extends Application { +public class App extends MultiDexApplication { private static Database db = null; private static boolean shutdown = false; private static Calendar calendar = null; diff --git a/app/src/main/java/com/keepassdroid/autofill/AutoFillAuthActivity.java b/app/src/main/java/com/keepassdroid/autofill/AutoFillAuthActivity.java index b9032e8be..ab4255332 100644 --- a/app/src/main/java/com/keepassdroid/autofill/AutoFillAuthActivity.java +++ b/app/src/main/java/com/keepassdroid/autofill/AutoFillAuthActivity.java @@ -39,8 +39,8 @@ public class AutoFillAuthActivity extends KeePass { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); autofillHelper = new AutofillHelper(); + super.onCreate(savedInstanceState); } public static IntentSender getAuthIntentSenderForResponse(Context context) { diff --git a/app/src/main/java/com/keepassdroid/autofill/AutofillHelper.java b/app/src/main/java/com/keepassdroid/autofill/AutofillHelper.java index bbbe1d0f0..770f4e597 100644 --- a/app/src/main/java/com/keepassdroid/autofill/AutofillHelper.java +++ b/app/src/main/java/com/keepassdroid/autofill/AutofillHelper.java @@ -37,7 +37,8 @@ import android.widget.RemoteViews; import com.keepassdroid.database.PwEntry; import com.kunzisoft.keepass.R; -import java.util.stream.Stream; +import java.util.ArrayList; +import java.util.List; @RequiresApi(api = Build.VERSION_CODES.O) @@ -89,9 +90,9 @@ public class AutofillHelper { } if (entry.getUsername() != null) { AutofillValue value = AutofillValue.forText(entry.getUsername()); - Stream ids = struct.username.stream(); + List ids = new ArrayList<>(struct.username); if (entry.getUsername().contains("@") || struct.username.isEmpty()) - ids = Stream.concat(ids, struct.email.stream()); + ids.addAll(struct.email); ids.forEach(id -> builder.setValue(id, value)); } try { diff --git a/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java b/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java index eeee14f42..6aa0be0f7 100644 --- a/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java +++ b/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java @@ -40,7 +40,6 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.view.autofill.AutofillManager; import android.widget.EditText; import android.widget.Toast; @@ -256,6 +255,8 @@ public class FileSelectActivity extends StylishActivity implements if (assistStructure == null) { PasswordActivity.launch(FileSelectActivity.this, path); } + // Delete flickering for kitkat < + overridePendingTransition(0, 0); } catch (Exception e) { // Ignore exception } diff --git a/app/src/main/java/com/kunzisoft/keepass/KeePass.java b/app/src/main/java/com/kunzisoft/keepass/KeePass.java index be9c547af..f96d77360 100644 --- a/app/src/main/java/com/kunzisoft/keepass/KeePass.java +++ b/app/src/main/java/com/kunzisoft/keepass/KeePass.java @@ -21,16 +21,20 @@ package com.kunzisoft.keepass; import android.app.Activity; import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.Nullable; import com.keepassdroid.fileselect.FileSelectActivity; public class KeePass extends Activity { - @Override - protected void onStart() { - super.onStart(); - startFileSelectActivity(); - } + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + startFileSelectActivity(); + // Delete flickering for kitkat < + overridePendingTransition(0, 0); + } protected void startFileSelectActivity() { FileSelectActivity.launch(this); diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 31590309b..000000000 --- a/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -android.enableD8=true