diff --git a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java index add350eb..e5182c5f 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java +++ b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java @@ -257,6 +257,14 @@ public class Preferences { return null; } + public boolean getFocusSearchEnabled() { + return _prefs.getBoolean("pref_focus_search", false); + } + + public void setFocusSearch(boolean enabled) { + _prefs.edit().putBoolean("pref_focus_search", enabled).apply(); + } + public void setBackupsLocation(Uri location) { _prefs.edit().putString("pref_backups_location", location == null ? null : location.toString()).apply(); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java index aee0933f..2b0442b3 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -81,6 +81,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene private boolean _isAuthenticating; private boolean _isDoingIntro; + private boolean _isRecreated; private List _selectedEntries; private ActionMode _actionMode; @@ -105,6 +106,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene _loaded = false; if (savedInstanceState != null) { + _isRecreated = true; _isAuthenticating = savedInstanceState.getBoolean("isAuthenticating"); _isDoingIntro = savedInstanceState.getBoolean("isDoingIntro"); } @@ -561,8 +563,14 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene MenuItem searchViewMenuItem = menu.findItem(R.id.mi_search); _searchView = (SearchView) searchViewMenuItem.getActionView(); - _searchView.setFocusable(false); + _searchView.setQueryHint(getString(R.string.search)); + if (getPreferences().getFocusSearchEnabled() && !_isRecreated) { + _searchView.setIconified(false); + _searchView.setFocusable(true); + _searchView.requestFocus(); + _searchView.requestFocusFromTouch(); + } _searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { @@ -768,7 +776,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene if (userInitiated) { startAuthActivity(true); } else { - super.onLocked(userInitiated); + super.onLocked(false); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cd888a74..bcf88bfb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -402,4 +402,6 @@ Import entries directly from %s. This requires the app to be installed on this device and for root access to be granted to Aegis. Groups + Focus search on app start + Focus the search immediately after opening the app. diff --git a/app/src/main/res/xml/preferences_behavior.xml b/app/src/main/res/xml/preferences_behavior.xml index 36fbba09..ecf35572 100644 --- a/app/src/main/res/xml/preferences_behavior.xml +++ b/app/src/main/res/xml/preferences_behavior.xml @@ -2,6 +2,12 @@ +