Back to project page Sunshine.
The source code is released under:
MIT License
If you think the Android project Sunshine listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.example.android.sunshine.app.data; import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; import android.content.UriMatcher; import android.database.Cursor; import android.net.Uri; /*from ww w. jav a 2 s . co m*/ /** * Created by damodar on 12/12/14. */ public class WeatherProvider extends ContentProvider { private static final int WEATHER = 100; private static final int WEATHER_WITH_LOCATION = 101; private static final int WEATHER_WITH_LOCATION_AND_DATE = 102; private static final int LOCATION = 300; private static final int LOCATION_ID = 301; private static final UriMatcher sUriMatcher = buildUriMatcher(); private WeatherDbHelper mOpenHelper; private static UriMatcher buildUriMatcher() { final UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH); final String authority = WeatherContract.CONTENT_AUTHORITY; matcher.addURI(authority, WeatherContract.PATH_WEATHER, WEATHER); matcher.addURI(authority, WeatherContract.PATH_WEATHER + "/*", WEATHER_WITH_LOCATION); matcher.addURI(authority, WeatherContract.PATH_WEATHER + "/*/*", WEATHER_WITH_LOCATION_AND_DATE); matcher.addURI(authority, WeatherContract.PATH_LOCATION, LOCATION); matcher.addURI(authority, WeatherContract.PATH_LOCATION + "/#", LOCATION_ID); return matcher; } @Override public boolean onCreate() { mOpenHelper = new WeatherDbHelper(getContext()); return true; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { Cursor retCursor; switch (sUriMatcher.match(uri)) { // weather/*/* case WEATHER_WITH_LOCATION_AND_DATE: { retCursor = null; break; } // weather/* case WEATHER_WITH_LOCATION: { retCursor = null; break; } // weather case WEATHER: { retCursor = mOpenHelper.getReadableDatabase().query(WeatherContract.WeatherEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } // location case LOCATION: { retCursor = mOpenHelper.getReadableDatabase().query(WeatherContract.LocationEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } // location/* case LOCATION_ID: { retCursor = mOpenHelper.getReadableDatabase().query(WeatherContract.LocationEntry.TABLE_NAME, projection, WeatherContract.LocationEntry._ID + " = '" + ContentUris.parseId(uri) + "'", null, null, null, sortOrder); break; } default: throw new UnsupportedOperationException("Unknown uri: " + uri); } retCursor.setNotificationUri(getContext().getContentResolver(), uri); return retCursor; } @Override public String getType(Uri uri) { final int match = sUriMatcher.match(uri); switch (match) { case WEATHER_WITH_LOCATION_AND_DATE: return WeatherContract.WeatherEntry.CONTENT_ITEM_TYPE; case WEATHER_WITH_LOCATION: return WeatherContract.WeatherEntry.CONTENT_TYPE; case WEATHER: return WeatherContract.WeatherEntry.CONTENT_TYPE; case LOCATION: return WeatherContract.LocationEntry.CONTENT_TYPE; case LOCATION_ID: return WeatherContract.LocationEntry.CONTENT_ITEM_TYPE; default: throw new UnsupportedOperationException("Unknown Uri : " + uri); } } @Override public Uri insert(Uri uri, ContentValues contentValues) { return null; } @Override public int delete(Uri uri, String s, String[] strings) { return 0; } @Override public int update(Uri uri, ContentValues contentValues, String s, String[] strings) { return 0; } }