mirror of
https://github.com/android-password-store/Android-Password-Store
synced 2025-08-29 21:38:03 +00:00
Main view: open search view on keyboard press (#432)
This commit is contained in:
parent
2002e98c17
commit
8e9c2363bb
@ -26,12 +26,11 @@ import android.support.v7.app.AppCompatActivity;
|
|||||||
import android.support.v7.widget.SearchView;
|
import android.support.v7.widget.SearchView;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.KeyEvent;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import com.zeapo.pwdstore.crypto.PgpActivity;
|
import com.zeapo.pwdstore.crypto.PgpActivity;
|
||||||
import com.zeapo.pwdstore.git.GitActivity;
|
import com.zeapo.pwdstore.git.GitActivity;
|
||||||
import com.zeapo.pwdstore.git.GitAsyncTask;
|
import com.zeapo.pwdstore.git.GitAsyncTask;
|
||||||
@ -40,7 +39,6 @@ import com.zeapo.pwdstore.pwgen.PRNGFixes;
|
|||||||
import com.zeapo.pwdstore.utils.PasswordItem;
|
import com.zeapo.pwdstore.utils.PasswordItem;
|
||||||
import com.zeapo.pwdstore.utils.PasswordRecyclerAdapter;
|
import com.zeapo.pwdstore.utils.PasswordRecyclerAdapter;
|
||||||
import com.zeapo.pwdstore.utils.PasswordRepository;
|
import com.zeapo.pwdstore.utils.PasswordRepository;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.eclipse.jgit.api.Git;
|
import org.eclipse.jgit.api.Git;
|
||||||
import org.eclipse.jgit.api.errors.GitAPIException;
|
import org.eclipse.jgit.api.errors.GitAPIException;
|
||||||
@ -48,12 +46,7 @@ import org.eclipse.jgit.lib.Repository;
|
|||||||
import org.eclipse.jgit.revwalk.RevCommit;
|
import org.eclipse.jgit.revwalk.RevCommit;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
public class PasswordStore extends AppCompatActivity {
|
public class PasswordStore extends AppCompatActivity {
|
||||||
private static final String TAG = "PwdStrAct";
|
private static final String TAG = "PwdStrAct";
|
||||||
@ -61,6 +54,8 @@ public class PasswordStore extends AppCompatActivity {
|
|||||||
private Activity activity;
|
private Activity activity;
|
||||||
private PasswordFragment plist;
|
private PasswordFragment plist;
|
||||||
private ShortcutManager shortcutManager;
|
private ShortcutManager shortcutManager;
|
||||||
|
private MenuItem searchItem = null;
|
||||||
|
private SearchView searchView;
|
||||||
|
|
||||||
private final static int CLONE_REPO_BUTTON = 401;
|
private final static int CLONE_REPO_BUTTON = 401;
|
||||||
private final static int NEW_REPO_BUTTON = 402;
|
private final static int NEW_REPO_BUTTON = 402;
|
||||||
@ -74,6 +69,34 @@ public class PasswordStore extends AppCompatActivity {
|
|||||||
public static final int REQUEST_CODE_EDIT = 9916;
|
public static final int REQUEST_CODE_EDIT = 9916;
|
||||||
public static final int REQUEST_CODE_SELECT_FOLDER = 9917;
|
public static final int REQUEST_CODE_SELECT_FOLDER = 9917;
|
||||||
|
|
||||||
|
private static boolean isPrintable(char c) {
|
||||||
|
Character.UnicodeBlock block = Character.UnicodeBlock.of(c);
|
||||||
|
return (!Character.isISOControl(c)) &&
|
||||||
|
block != null &&
|
||||||
|
block != Character.UnicodeBlock.SPECIALS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
|
// open search view on search key, or Ctr+F
|
||||||
|
if ((keyCode == KeyEvent.KEYCODE_SEARCH ||
|
||||||
|
keyCode == KeyEvent.KEYCODE_F && event.isCtrlPressed())
|
||||||
|
&& !searchItem.isActionViewExpanded()) {
|
||||||
|
searchItem.expandActionView();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// open search view on any printable character and query for it
|
||||||
|
char c = (char) event.getUnicodeChar();
|
||||||
|
boolean printable = isPrintable(c);
|
||||||
|
if (printable && !searchItem.isActionViewExpanded()) {
|
||||||
|
searchItem.expandActionView();
|
||||||
|
searchView.setQuery(Character.toString(c), true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.onKeyDown(keyCode, event);
|
||||||
|
}
|
||||||
|
|
||||||
private final static int REQUEST_EXTERNAL_STORAGE = 50;
|
private final static int REQUEST_EXTERNAL_STORAGE = 50;
|
||||||
|
|
||||||
@ -160,8 +183,8 @@ public class PasswordStore extends AppCompatActivity {
|
|||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
// Inflate the menu; this adds items to the action bar if it is present.
|
// Inflate the menu; this adds items to the action bar if it is present.
|
||||||
getMenuInflater().inflate(R.menu.main_menu, menu);
|
getMenuInflater().inflate(R.menu.main_menu, menu);
|
||||||
MenuItem searchItem = menu.findItem(R.id.action_search);
|
searchItem = menu.findItem(R.id.action_search);
|
||||||
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
|
searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
|
||||||
|
|
||||||
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user