diff options
| author | 2009-07-08 09:17:21 -0700 | |
|---|---|---|
| committer | 2009-07-08 09:17:21 -0700 | |
| commit | f1d0b7cd100313b51ac4143f0b19f573050f248b (patch) | |
| tree | b3f5339a77dcf4d07dfbfd6907c75eabe13269d3 | |
| parent | 85c3b727d743c86ee5a5443761f179f6652301ac (diff) | |
| parent | d21572cd446e56efe94689324107927ac2bffd2a (diff) | |
am d21572cd: NEW_API: Expose autoUrlDetect searchable attribute.
Merge commit 'd21572cd446e56efe94689324107927ac2bffd2a'
* commit 'd21572cd446e56efe94689324107927ac2bffd2a':
NEW_API: Expose autoUrlDetect searchable attribute.
| -rw-r--r-- | api/current.xml | 22 | ||||
| -rw-r--r-- | core/java/android/app/SearchDialog.java | 26 | ||||
| -rw-r--r-- | core/java/android/server/search/SearchableInfo.java | 15 | ||||
| -rw-r--r-- | core/res/res/values/attrs.xml | 8 | ||||
| -rw-r--r-- | core/res/res/values/public.xml | 1 |
5 files changed, 49 insertions, 23 deletions
diff --git a/api/current.xml b/api/current.xml index 6debbac64dd1..a2273fd04803 100644 --- a/api/current.xml +++ b/api/current.xml @@ -2341,6 +2341,17 @@ visibility="public" > </field> +<field name="autoUrlDetect" + type="int" + transient="false" + volatile="false" + value="16843404" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> <field name="background" type="int" transient="false" @@ -3463,17 +3474,6 @@ visibility="public" > </field> -<field name="donut_resource_pad20" - type="int" - transient="false" - volatile="false" - value="16843404" - static="true" - final="true" - deprecated="not deprecated" - visibility="public" -> -</field> <field name="donut_resource_pad3" type="int" transient="false" diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java index fdb619ae2da6..2bcc9c372a6b 100644 --- a/core/java/android/app/SearchDialog.java +++ b/core/java/android/app/SearchDialog.java @@ -777,7 +777,7 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS } public void afterTextChanged(Editable s) { - if (!mSearchAutoComplete.isPerformingCompletion()) { + if (mSearchable.autoUrlDetect() && !mSearchAutoComplete.isPerformingCompletion()) { // The user changed the query, check if it is a URL and if so change the search // button in the soft keyboard to the 'Go' button. int options = (mSearchAutoComplete.getImeOptions() & (~EditorInfo.IME_MASK_ACTION)); @@ -987,17 +987,19 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS && event.getAction() == KeyEvent.ACTION_UP) { v.cancelLongPress(); - // If this is a url entered by the user and we displayed the 'Go' button which - // the user clicked, launch the url instead of using it as a search query. - if ((mSearchAutoCompleteImeOptions & EditorInfo.IME_MASK_ACTION) - == EditorInfo.IME_ACTION_GO) { - Uri uri = Uri.parse(fixUrl(mSearchAutoComplete.getText().toString())); - Intent intent = new Intent(Intent.ACTION_VIEW, uri); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - launchIntent(intent); - } else { - // Launch as a regular search. - launchQuerySearch(); + if (mSearchable.autoUrlDetect()) { + // If this is a url entered by the user & we displayed the 'Go' button which + // the user clicked, launch the url instead of using it as a search query. + if ((mSearchAutoCompleteImeOptions & EditorInfo.IME_MASK_ACTION) + == EditorInfo.IME_ACTION_GO) { + Uri uri = Uri.parse(fixUrl(mSearchAutoComplete.getText().toString())); + Intent intent = new Intent(Intent.ACTION_VIEW, uri); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + launchIntent(intent); + } else { + // Launch as a regular search. + launchQuerySearch(); + } } return true; } diff --git a/core/java/android/server/search/SearchableInfo.java b/core/java/android/server/search/SearchableInfo.java index 8ef1f154d72d..283555a9dc40 100644 --- a/core/java/android/server/search/SearchableInfo.java +++ b/core/java/android/server/search/SearchableInfo.java @@ -67,6 +67,7 @@ public final class SearchableInfo implements Parcelable { private final int mSearchImeOptions; private final boolean mIncludeInGlobalSearch; private final boolean mQueryAfterZeroResults; + private final boolean mAutoUrlDetect; private final String mSettingsDescription; private final String mSuggestAuthority; private final String mSuggestPath; @@ -288,6 +289,8 @@ public final class SearchableInfo implements Parcelable { com.android.internal.R.styleable.Searchable_includeInGlobalSearch, false); mQueryAfterZeroResults = a.getBoolean( com.android.internal.R.styleable.Searchable_queryAfterZeroResults, false); + mAutoUrlDetect = a.getBoolean( + com.android.internal.R.styleable.Searchable_autoUrlDetect, false); mSettingsDescription = a.getString( com.android.internal.R.styleable.Searchable_searchSettingsDescription); @@ -667,6 +670,16 @@ public final class SearchableInfo implements Parcelable { } /** + * Checks whether this searchable activity has auto URL detect turned on. + * + * @return The value of the <code>autoUrlDetect</code> attribute, + * or <code>false</code> if the attribute is not set. + */ + public boolean autoUrlDetect() { + return mAutoUrlDetect; + } + + /** * Support for parcelable and aidl operations. */ public static final Parcelable.Creator<SearchableInfo> CREATOR @@ -698,6 +711,7 @@ public final class SearchableInfo implements Parcelable { mSearchImeOptions = in.readInt(); mIncludeInGlobalSearch = in.readInt() != 0; mQueryAfterZeroResults = in.readInt() != 0; + mAutoUrlDetect = in.readInt() != 0; mSettingsDescription = in.readString(); mSuggestAuthority = in.readString(); @@ -735,6 +749,7 @@ public final class SearchableInfo implements Parcelable { dest.writeInt(mSearchImeOptions); dest.writeInt(mIncludeInGlobalSearch ? 1 : 0); dest.writeInt(mQueryAfterZeroResults ? 1 : 0); + dest.writeInt(mAutoUrlDetect ? 1 : 0); dest.writeString(mSettingsDescription); dest.writeString(mSuggestAuthority); diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 74852bb6b217..ad6d94fb9163 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -2888,6 +2888,14 @@ attribute.</i> --> <attr name="searchSettingsDescription" format="string" /> + <!-- If provided and <code>true</code>, URLs entered in the search dialog while searching + within this activity would be detected and treated as URLs (show a 'go' button in the + keyboard and invoke the browser directly when user launches the URL instead of passing + the URL to the activity). If set to <code>false</code> any URLs entered are treated as + normal query text. + The default value is <code>false</code>. <i>Optional attribute.</i>. --> + <attr name="autoUrlDetect" format="boolean" /> + </declare-styleable> <!-- In order to process special action keys during search, you must define them using diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index ce3fe030bdbc..6906e43858c3 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -1125,6 +1125,7 @@ <public type="attr" name="progressBarStyleLargeInverse" /> <public type="attr" name="searchSettingsDescription" /> <public type="attr" name="textColorPrimaryInverseDisableOnly" /> + <public type="attr" name="autoUrlDetect" /> <public-padding type="attr" name="donut_resource_pad" end="0x0101029f" /> |