Android Open Source - ExpertAndroid Suggest Url Provider From Project Back to project page ExpertAndroid .
License The source code is released under:
MIT License
If you think the Android project ExpertAndroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.iuriio.demos.expertandroid.ch11searchprovider;
/ / w w w . j a v a 2 s . c o m
import android.app.SearchManager;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
import android.provider.BaseColumns;
/**
* Created by iuriio on 10/29/13.
*/
public class SuggestUrlProvider extends ContentProvider {
public static String AUTHORITY = "com.iuriio.demos.expertandroid.suggesturlprovider" ;
private static final int SEARCH_SUGGEST = 0;
private static final int SHORTCUT_REFRESH = 1;
private static final String[] COLUMNS = {
"_id" , // must include this column
SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_TEXT_2,
SearchManager.SUGGEST_COLUMN_INTENT_DATA,
SearchManager.SUGGEST_COLUMN_INTENT_ACTION,
SearchManager.SUGGEST_COLUMN_SHORTCUT_ID
};
private UriMatcher matcher;
private static UriMatcher buildUrlMatcher(String authority) {
UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
matcher.addURI(authority, SearchManager.SUGGEST_URI_PATH_QUERY, SEARCH_SUGGEST);
matcher.addURI(authority, SearchManager.SUGGEST_URI_PATH_QUERY + "/*" , SEARCH_SUGGEST);
matcher.addURI(authority, SearchManager.SUGGEST_URI_PATH_SHORTCUT, SHORTCUT_REFRESH);
matcher.addURI(authority, SearchManager.SUGGEST_URI_PATH_SHORTCUT + "/*" , SHORTCUT_REFRESH);
return matcher;
}
@Override
public boolean onCreate() {
this.matcher = buildUrlMatcher(AUTHORITY);
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
final String query = selectionArgs[0];
switch (this.matcher.match(uri)) {
case SEARCH_SUGGEST:
return this.getSuggestions(query);
case SHORTCUT_REFRESH:
return null;
default :
throw new IllegalArgumentException("Unknown URL: " + uri);
}
}
private Cursor getSuggestions(String query) {
if (query == null) {
return null;
}
String word = this.getWord(query);
if (word == null) {
return null;
}
MatrixCursor cursor = new MatrixCursor(COLUMNS);
cursor.addRow(this.createRow1(word));
cursor.addRow(this.createRow2(word));
return cursor;
}
private Object[] createRow1(String word) {
return this.columnValuesOfQuery(
1,
word,
"android.intent.action.VIEW" ,
"http://www.thefreedictionary.com/" + word,
"Lookup in feedictionary.com for " ,
word);
}
private Object[] createRow2(String word) {
return this.columnValuesOfQuery(
2,
word,
"android.intent.action.VIEW" ,
"http://www.google.com/search?hl=en&source=hp&q=define%3A" + word,
"Lookup in Google for " ,
word);
}
private Object[] columnValuesOfQuery(int id, String word, String intentAction, String url, String text1, String text2) {
return new String[] {
String.valueOf(id),
text1,
text2,
url,
intentAction,
SearchManager.SUGGEST_NEVER_MAKE_SHORTCUT
};
}
private Cursor refreshShortcut(String shortcutId, String[] projection) {
return null;
}
private String getWord(String query) {
int dotIndex = query.indexOf('.' );
if (dotIndex < 0) {
return null;
}
return query.substring(0, dotIndex);
}
@Override
public String getType(Uri uri) {
switch (this.matcher.match(uri)) {
case SEARCH_SUGGEST:
return SearchManager.SUGGEST_MIME_TYPE;
case SHORTCUT_REFRESH:
return SearchManager.SHORTCUT_MIME_TYPE;
default :
throw new IllegalArgumentException("Unknown URL: " + uri);
}
}
@Override
public Uri insert(Uri uri, ContentValues values) {
throw new UnsupportedOperationException();
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
throw new UnsupportedOperationException();
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
throw new UnsupportedOperationException();
}
}
Java Source Code List com.androidbook.notebad.NoteEditor.java com.androidbook.notebad.NotePadProvider.java com.androidbook.notebad.NotePad.java com.androidbook.notebad.NotesList.java com.androidbook.notebad.TitleEditor.java com.androidbook.parse.BaseActivity.java com.androidbook.parse.BaseListActivity.java com.androidbook.parse.CreateAMeaningActivity.java com.androidbook.parse.CreateAWordActivity.java com.androidbook.parse.Field.java com.androidbook.parse.FormActivity.java com.androidbook.parse.IReportBack.java com.androidbook.parse.IValidator.java com.androidbook.parse.IValueValidator.java com.androidbook.parse.LoginActivity.java com.androidbook.parse.ParseApplication.java com.androidbook.parse.ParseObjectWrapperOld1.java com.androidbook.parse.ParseObjectWrapper.java com.androidbook.parse.ParseStarterProjectActivity.java com.androidbook.parse.PasswordFieldRule.java com.androidbook.parse.PasswordResetActivity.java com.androidbook.parse.PasswordResetSuccessActivity.java com.androidbook.parse.SignupActivity.java com.androidbook.parse.SignupSuccessActivity.java com.androidbook.parse.StringUtils.java com.androidbook.parse.UserListActivity.java com.androidbook.parse.WelcomeActivity.java com.androidbook.parse.WordListActivity.java com.androidbook.parse.WordListAdapter.java com.androidbook.parse.WordMeaningListAdapter.java com.androidbook.parse.WordMeaning.java com.androidbook.parse.WordMeaningsListActivity.java com.androidbook.parse.Word.java com.iuriio.demos.expertandroid.ch10search.MainActivity.java com.iuriio.demos.expertandroid.ch10search.SearchActivity.java com.iuriio.demos.expertandroid.ch11searchprovider.MainActivity.java com.iuriio.demos.expertandroid.ch11searchprovider.SearchActivity.java com.iuriio.demos.expertandroid.ch11searchprovider.SimpleSuggestionProvider.java com.iuriio.demos.expertandroid.ch11searchprovider.SuggestUrlProvider.java com.iuriio.demos.expertandroid.ch13parsesimple.BaseActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.LoginActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.MainActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.ParseApp.java com.iuriio.demos.expertandroid.ch13parsesimple.ParseObjectWrapper.java com.iuriio.demos.expertandroid.ch13parsesimple.ParseStarterProjectActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.PasswordResetSuccessActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.ResetPasswordActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.SignupActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.StringUtils.java com.iuriio.demos.expertandroid.ch13parsesimple.WordListActivity.java com.iuriio.demos.expertandroid.ch13parsesimple.Word.java com.iuriio.demos.expertandroid.ch1circleview.AbstractBaseView.java com.iuriio.demos.expertandroid.ch1circleview.CircleView.java com.iuriio.demos.expertandroid.ch1circleview.MainActivity.java com.iuriio.demos.expertandroid.ch2durationcontrol.DatePickerFragment.java com.iuriio.demos.expertandroid.ch2durationcontrol.DurationControl.java com.iuriio.demos.expertandroid.ch2durationcontrol.MainActivity.java com.iuriio.demos.expertandroid.ch3flowlayout.FlowLayout.java com.iuriio.demos.expertandroid.ch3flowlayout.MainActivity.java com.iuriio.demos.expertandroid.ch4gsonserialization.ChildObject.java com.iuriio.demos.expertandroid.ch4gsonserialization.MainActivity.java com.iuriio.demos.expertandroid.ch4gsonserialization.MainObject.java com.iuriio.demos.expertandroid.ch6forms.BaseActivity.java com.iuriio.demos.expertandroid.ch6forms.Field.java com.iuriio.demos.expertandroid.ch6forms.FormActivity.java com.iuriio.demos.expertandroid.ch6forms.IValidator.java com.iuriio.demos.expertandroid.ch6forms.IValueValidator.java com.iuriio.demos.expertandroid.ch6forms.MainActivity.java com.iuriio.demos.expertandroid.ch6forms.PasswordFieldRule.java com.iuriio.demos.expertandroid.ch6forms.StringUtils.java com.iuriio.demos.expertandroid.ch6forms.WelcomeActivity.java com.iuriio.demos.expertandroid.ch9openglexperiments.AbstractRenderer.java com.iuriio.demos.expertandroid.ch9openglexperiments.AnimatedSimpleTriangleRenderer.java com.iuriio.demos.expertandroid.ch9openglexperiments.ES20AbstractRenderer.java com.iuriio.demos.expertandroid.ch9openglexperiments.ES20ControlledAnimatedTexturedCubeRenderer.java com.iuriio.demos.expertandroid.ch9openglexperiments.ES20SimpleTriangleRenderer.java com.iuriio.demos.expertandroid.ch9openglexperiments.ES20SingleTextureAbstractRenderer.java com.iuriio.demos.expertandroid.ch9openglexperiments.FrustumDimensions.java com.iuriio.demos.expertandroid.ch9openglexperiments.MainActivity.java com.iuriio.demos.expertandroid.ch9openglexperiments.MyApplication.java com.iuriio.demos.expertandroid.ch9openglexperiments.OpenGLES10Activity.java com.iuriio.demos.expertandroid.ch9openglexperiments.OpenGLES20Activity.java com.iuriio.demos.expertandroid.ch9openglexperiments.PolygonRenderer.java com.iuriio.demos.expertandroid.ch9openglexperiments.RegularPolygon.java com.iuriio.demos.expertandroid.ch9openglexperiments.Shape.java com.iuriio.demos.expertandroid.ch9openglexperiments.SimpleTriangleRenderer.java converters.FieldTransporter.java converters.IFieldTransport.java converters.IntegerFieldTransport.java converters.ParseObjectEssentials.java converters.StringFieldTransport.java converters.User.java converters.ValueField.java