summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/UrlInputView.java
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2011-02-14 14:34:40 -0800
committerMichael Kolb <kolby@google.com>2011-02-16 15:14:48 -0800
commitdc2ee1bfb50b7bec0cf3215e3d298b246dc71101 (patch)
tree1641929283f1c1712799418498ea2a332530dce7 /src/com/android/browser/UrlInputView.java
parent617fd83615f490817db7d288d732d6cdd0b47ae5 (diff)
downloadandroid_packages_apps_Gello-dc2ee1bfb50b7bec0cf3215e3d298b246dc71101.tar.gz
android_packages_apps_Gello-dc2ee1bfb50b7bec0cf3215e3d298b246dc71101.tar.bz2
android_packages_apps_Gello-dc2ee1bfb50b7bec0cf3215e3d298b246dc71101.zip
fix shortcut handling
Bugs: 3400078 3270434 3368141 3381411 Fixed controller to check for menu & ctrl keys for shortcuts Changed focus handling in url bar Keyboard focus transitions are not 100% working yet, but it's possible to navigate to all the elements Change-Id: I514d85a37dae2589e3ce1ecb18c7fc0bf4e715f3
Diffstat (limited to 'src/com/android/browser/UrlInputView.java')
-rw-r--r--src/com/android/browser/UrlInputView.java82
1 files changed, 40 insertions, 42 deletions
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 1f15b327..2ec21111 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -29,7 +29,6 @@ import android.util.AttributeSet;
import android.util.Patterns;
import android.view.KeyEvent;
import android.view.View;
-import android.view.View.OnFocusChangeListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
@@ -44,7 +43,7 @@ import java.util.List;
* handling suggestions
*/
public class UrlInputView extends AutoCompleteTextView
- implements OnFocusChangeListener, OnEditorActionListener,
+ implements OnEditorActionListener,
CompletionListener, OnItemClickListener {
@@ -55,12 +54,11 @@ public class UrlInputView extends AutoCompleteTextView
private UrlInputListener mListener;
private InputMethodManager mInputManager;
private SuggestionsAdapter mAdapter;
- private OnFocusChangeListener mWrappedFocusListener;
private View mContainer;
private boolean mLandscape;
- private boolean mInVoiceMode;
private boolean mIncognitoMode;
private int mVOffset;
+ private boolean mNeedsUpdate;
public UrlInputView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
@@ -80,7 +78,6 @@ public class UrlInputView extends AutoCompleteTextView
private void init(Context ctx) {
mInputManager = (InputMethodManager) ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
setOnEditorActionListener(this);
- super.setOnFocusChangeListener(this);
mAdapter = new SuggestionsAdapter(ctx, this);
setAdapter(mAdapter);
setSelectAllOnFocus(true);
@@ -88,6 +85,21 @@ public class UrlInputView extends AutoCompleteTextView
setThreshold(1);
setOnItemClickListener(this);
mVOffset = 0;
+ mNeedsUpdate = false;
+ }
+
+ /**
+ * check if focus change requires a title bar update
+ */
+ boolean needsUpdate() {
+ return mNeedsUpdate;
+ }
+
+ /**
+ * clear the focus change needs title bar update flag
+ */
+ void clearNeedsUpdate() {
+ mNeedsUpdate = false;
}
void setController(UiController controller) {
@@ -107,9 +119,12 @@ public class UrlInputView extends AutoCompleteTextView
mContainer = container;
}
+ public void setUrlInputListener(UrlInputListener listener) {
+ mListener = listener;
+ }
+
void setVoiceResults(List<String> voiceResults) {
mAdapter.setVoiceResults(voiceResults);
- mInVoiceMode = (voiceResults != null);
}
@Override
@@ -148,43 +163,28 @@ public class UrlInputView extends AutoCompleteTextView
}
@Override
- public void setOnFocusChangeListener(OnFocusChangeListener focusListener) {
- mWrappedFocusListener = focusListener;
- }
-
- @Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
finishInput(getText().toString(), null, TYPED);
return true;
}
- @Override
- public void onFocusChange(View v, boolean hasFocus) {
- if (mWrappedFocusListener != null) {
- mWrappedFocusListener.onFocusChange(v, hasFocus);
- }
- if (hasFocus) {
- forceIme();
- if (mInVoiceMode) {
- performFiltering(getText().toString(), 0);
- showDropDown();
- }
- } else {
- finishInput(null, null, null);
- }
+ void forceFilter() {
+ performFiltering(getText().toString(), 0);
+ showDropDown();
}
- public void setUrlInputListener(UrlInputListener listener) {
- mListener = listener;
- }
-
- public void forceIme() {
+ void forceIme() {
mInputManager.focusIn(this);
mInputManager.showSoftInput(this, 0);
}
+ void hideIME() {
+ mInputManager.hideSoftInputFromWindow(getWindowToken(), 0);
+ }
+
private void finishInput(String url, String extra, String source) {
- this.dismissDropDown();
+ mNeedsUpdate = true;
+ dismissDropDown();
mInputManager.hideSoftInputFromWindow(getWindowToken(), 0);
if (TextUtils.isEmpty(url)) {
mListener.onDismiss();
@@ -230,17 +230,6 @@ public class UrlInputView extends AutoCompleteTextView
}
@Override
- public boolean onKeyPreIme(int keyCode, KeyEvent evt) {
- if ((evt.getAction() == KeyEvent.ACTION_DOWN)
- && (keyCode == KeyEvent.KEYCODE_BACK)) {
- // catch back key in order to do slightly more cleanup than usual
- clearFocus();
- return true;
- }
- return super.onKeyPreIme(keyCode, evt);
- }
-
- @Override
public void onItemClick(
AdapterView<?> parent, View view, int position, long id) {
SuggestItem item = mAdapter.getItem(position);
@@ -263,4 +252,13 @@ public class UrlInputView extends AutoCompleteTextView
mAdapter.setIncognitoMode(mIncognitoMode);
}
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent evt) {
+ if (keyCode == KeyEvent.KEYCODE_ESCAPE && !isInTouchMode()) {
+ finishInput(null, null, null);
+ return true;
+ }
+ return super.onKeyDown(keyCode, evt);
+ }
+
}