mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-04-20 22:09:12 +00:00
Restore search query on screen rotation
This commit is contained in:
parent
81d5915969
commit
49130cee73
1 changed files with 41 additions and 8 deletions
|
@ -74,10 +74,13 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
private static final int CODE_PERM_READ_STORAGE = 1;
|
private static final int CODE_PERM_READ_STORAGE = 1;
|
||||||
|
|
||||||
private boolean _loaded;
|
private boolean _loaded;
|
||||||
private boolean _searchSubmitted;
|
|
||||||
private boolean _isRecreated;
|
private boolean _isRecreated;
|
||||||
private boolean _isDPadPressed;
|
private boolean _isDPadPressed;
|
||||||
|
|
||||||
|
private String _submittedSearchSubtitle;
|
||||||
|
private String _searchQueryInputText;
|
||||||
|
private String _activeSearchFilter;
|
||||||
|
|
||||||
private List<VaultEntry> _selectedEntries;
|
private List<VaultEntry> _selectedEntries;
|
||||||
private ActionMode _actionMode;
|
private ActionMode _actionMode;
|
||||||
|
|
||||||
|
@ -102,6 +105,9 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
|
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
_isRecreated = true;
|
_isRecreated = true;
|
||||||
|
_searchQueryInputText = savedInstanceState.getString("searchQueryInputText");
|
||||||
|
_activeSearchFilter = savedInstanceState.getString("activeSearchFilter");
|
||||||
|
_submittedSearchSubtitle = savedInstanceState.getString("submittedSearchSubtitle");
|
||||||
}
|
}
|
||||||
|
|
||||||
_entryListView = (EntryListView) getSupportFragmentManager().findFragmentById(R.id.key_profiles);
|
_entryListView = (EntryListView) getSupportFragmentManager().findFragmentById(R.id.key_profiles);
|
||||||
|
@ -162,6 +168,14 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
super.onPause();
|
super.onPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onSaveInstanceState(Bundle instance) {
|
||||||
|
super.onSaveInstanceState(instance);
|
||||||
|
instance.putString("activeSearchFilter", _activeSearchFilter);
|
||||||
|
instance.putString("submittedSearchSubtitle", _submittedSearchSubtitle);
|
||||||
|
instance.putString("searchQueryInputText", _searchQueryInputText);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
if (resultCode != RESULT_OK) {
|
if (resultCode != RESULT_OK) {
|
||||||
|
@ -505,9 +519,10 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
if (!_searchView.isIconified() || _searchSubmitted) {
|
if (!_searchView.isIconified() || _submittedSearchSubtitle != null) {
|
||||||
_searchSubmitted = false;
|
_submittedSearchSubtitle = null;
|
||||||
_entryListView.setSearchFilter(null);
|
_entryListView.setSearchFilter(null);
|
||||||
|
_activeSearchFilter = null;
|
||||||
|
|
||||||
collapseSearchView();
|
collapseSearchView();
|
||||||
setTitle(R.string.app_name);
|
setTitle(R.string.app_name);
|
||||||
|
@ -531,6 +546,8 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
saveAndBackupVault();
|
saveAndBackupVault();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
_menu = menu;
|
_menu = menu;
|
||||||
|
@ -552,31 +569,47 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
_searchView.requestFocus();
|
_searchView.requestFocus();
|
||||||
_searchView.requestFocusFromTouch();
|
_searchView.requestFocusFromTouch();
|
||||||
}
|
}
|
||||||
|
|
||||||
_searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
_searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onQueryTextSubmit(String s) {
|
public boolean onQueryTextSubmit(String s) {
|
||||||
setTitle(getString(R.string.search));
|
setTitle(getString(R.string.search));
|
||||||
getSupportActionBar().setSubtitle(s);
|
getSupportActionBar().setSubtitle(s);
|
||||||
_searchSubmitted = true;
|
_searchQueryInputText = null;
|
||||||
|
_submittedSearchSubtitle = s;
|
||||||
collapseSearchView();
|
collapseSearchView();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onQueryTextChange(String s) {
|
public boolean onQueryTextChange(String s) {
|
||||||
if (!_searchSubmitted) {
|
if (_submittedSearchSubtitle == null) {
|
||||||
_entryListView.setSearchFilter(s);
|
_entryListView.setSearchFilter(s);
|
||||||
|
_activeSearchFilter = s;
|
||||||
|
_searchQueryInputText = s;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_searchView.setOnSearchClickListener(v -> {
|
_searchView.setOnSearchClickListener(v -> {
|
||||||
if (_searchSubmitted) {
|
if (_submittedSearchSubtitle != null) {
|
||||||
_searchSubmitted = false;
|
|
||||||
_entryListView.setSearchFilter(null);
|
_entryListView.setSearchFilter(null);
|
||||||
|
_activeSearchFilter = null;
|
||||||
|
_submittedSearchSubtitle = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if(_submittedSearchSubtitle != null) {
|
||||||
|
getSupportActionBar().setSubtitle(_submittedSearchSubtitle);
|
||||||
|
}
|
||||||
|
if(_activeSearchFilter != null) {
|
||||||
|
_entryListView.setSearchFilter(_activeSearchFilter);
|
||||||
|
}
|
||||||
|
if(_searchQueryInputText != null) {
|
||||||
|
_searchView.setQuery(_searchQueryInputText, false);
|
||||||
|
_searchView.setIconified(false);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue