Android Open Source - ShoppingList Shopping List Provider






From Project

Back to project page ShoppingList.

License

The source code is released under:

GNU General Public License

If you think the Android project ShoppingList 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 net.sledzdev.shoppinglist.content;
//from  ww  w . j  a  v  a2 s .  c o  m
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteOpenHelper;
import android.net.Uri;
import android.util.SparseArray;

/**
 * Created by Mariusz on 23.11.13.
 */
public class ShoppingListProvider extends ContentProvider {

    private static final int LISTS = 10;
    private static final int LIST_ID = 11;
    private static final int ITEMS = 20;
    private static final int ITEM_ID = 21;
    private static final UriMatcher URI_MATCHER;

    static {
        URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
        URI_MATCHER.addURI(ShoppingProviderContract.AUTHORITY, ListsTable.TABLE_NAME, LISTS);
        URI_MATCHER.addURI(ShoppingProviderContract.AUTHORITY, ListsTable.TABLE_NAME + "/#", LIST_ID);
        URI_MATCHER.addURI(ShoppingProviderContract.AUTHORITY, ItemsTable.TABLE_NAME, ITEMS);
        URI_MATCHER.addURI(ShoppingProviderContract.AUTHORITY, ItemsTable.TABLE_NAME + "/#", ITEM_ID);
    }

    private SQLiteOpenHelper openHelper;
    private SparseArray<UriContentProvider> contentRouter;

    @Override
    public boolean onCreate() {
        openHelper = new DatabaseHelper(getContext());

        contentRouter = new SparseArray<UriContentProvider>();
        contentRouter.put(LISTS, new ListsProvider(LISTS, openHelper));
        contentRouter.put(LIST_ID, new ListRowProvider(LIST_ID, openHelper));
        contentRouter.put(ITEMS, new ItemsProvider(LIST_ID, openHelper));
        contentRouter.put(ITEM_ID, new ItemRowProvider(LIST_ID, openHelper));

        return true;
    }

    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        return matchUriAndGetUriContentProvider(uri).query(uri, projection, selection, selectionArgs, sortOrder);
    }

    @Override
    public String getType(Uri uri) {
        return matchUriAndGetUriContentProvider(uri).getType(uri);
    }

    @Override
    public Uri insert(Uri uri, ContentValues values) {
        return matchUriAndGetUriContentProvider(uri).insert(uri, values);
    }

    @Override
    public int delete(Uri uri, String selection, String[] selectionArgs) {
        return matchUriAndGetUriContentProvider(uri).delete(uri, selection, selectionArgs);
    }

    @Override
    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
        return matchUriAndGetUriContentProvider(uri).update(uri, values, selection, selectionArgs);
    }

    private UriContentProvider matchUriAndGetUriContentProvider(Uri uri) {
        int id = URI_MATCHER.match(uri);
        return getUriContentProviderOrThrow(id);
    }

    private UriContentProvider getUriContentProviderOrThrow(int id) {
        UriContentProvider uriContentProvider = contentRouter.get(id);
        if (uriContentProvider == null) {
            throw new IllegalArgumentException("There is no entry with id: " + id);
        }
        return uriContentProvider;
    }
}




Java Source Code List

net.sledzdev.shoppinglist.DetailFragmentHandlersRegister.java
net.sledzdev.shoppinglist.ItemDialogActivity.java
net.sledzdev.shoppinglist.ShoppingListDetailActivity.java
net.sledzdev.shoppinglist.ShoppingListDetailFragment.java
net.sledzdev.shoppinglist.ShoppingListsActivity.java
net.sledzdev.shoppinglist.ShoppingListsFragment.java
net.sledzdev.shoppinglist.adapter.DataModelAdapter.java
net.sledzdev.shoppinglist.adapter.DataModel.java
net.sledzdev.shoppinglist.adapter.ElementWithId.java
net.sledzdev.shoppinglist.adapter.ItemAdapterEventController.java
net.sledzdev.shoppinglist.adapter.ItemAdapter.java
net.sledzdev.shoppinglist.adapter.ListMapDataModelTest.java
net.sledzdev.shoppinglist.adapter.ListMapDataModel.java
net.sledzdev.shoppinglist.adapter.ShoppingListAdapterEventsHandler.java
net.sledzdev.shoppinglist.adapter.ShoppingListsAdapter.java
net.sledzdev.shoppinglist.content.DatabaseHelper.java
net.sledzdev.shoppinglist.content.DatabaseUriContentProvider.java
net.sledzdev.shoppinglist.content.ItemRowProvider.java
net.sledzdev.shoppinglist.content.ItemsProvider.java
net.sledzdev.shoppinglist.content.ItemsTable.java
net.sledzdev.shoppinglist.content.ListRowProvider.java
net.sledzdev.shoppinglist.content.ListsProvider.java
net.sledzdev.shoppinglist.content.ListsTable.java
net.sledzdev.shoppinglist.content.RowUriProvider.java
net.sledzdev.shoppinglist.content.ShoppingListProviderTest.java
net.sledzdev.shoppinglist.content.ShoppingListProvider.java
net.sledzdev.shoppinglist.content.ShoppingProviderContract.java
net.sledzdev.shoppinglist.content.TableUriProvider.java
net.sledzdev.shoppinglist.content.UriContentProvider.java
net.sledzdev.shoppinglist.event.ClearListEvent.java
net.sledzdev.shoppinglist.event.EventBusFactory.java
net.sledzdev.shoppinglist.event.ItemChangedEvent.java
net.sledzdev.shoppinglist.event.ItemCheckedChangedEvent.java
net.sledzdev.shoppinglist.event.ItemDeleteEvent.java
net.sledzdev.shoppinglist.event.ItemDialogCloseEvent.java
net.sledzdev.shoppinglist.event.ItemDialogOpenRequestEvent.java
net.sledzdev.shoppinglist.event.ListDeleteEvent.java
net.sledzdev.shoppinglist.event.ListSelectedEvent.java
net.sledzdev.shoppinglist.event.ListTitleChangedEvent.java
net.sledzdev.shoppinglist.event.NewItemEvent.java
net.sledzdev.shoppinglist.event.NewListEvent.java
net.sledzdev.shoppinglist.event.NewListRequestEvent.java
net.sledzdev.shoppinglist.event.TextWatcherAdapter.java
net.sledzdev.shoppinglist.event.UpdateListAdapterEvent.java
net.sledzdev.shoppinglist.handlers.ClearListEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemChangedEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemCheckedChangeEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemDeleteEventHandler.java
net.sledzdev.shoppinglist.handlers.ItemDialogOpenRequestEventHandler.java
net.sledzdev.shoppinglist.handlers.ListDeleteEventHandler.java
net.sledzdev.shoppinglist.handlers.ListSelectedEventHandler.java
net.sledzdev.shoppinglist.handlers.ListTitleChangedEventHandler.java
net.sledzdev.shoppinglist.handlers.NewItemEventHandler.java
net.sledzdev.shoppinglist.handlers.NewListEventHandler.java
net.sledzdev.shoppinglist.manager.ContentManagerTests.java
net.sledzdev.shoppinglist.manager.ContentManager.java
net.sledzdev.shoppinglist.manager.ContentTransformer.java
net.sledzdev.shoppinglist.manager.ItemContentTransformer.java
net.sledzdev.shoppinglist.manager.ListsContentTransformer.java
net.sledzdev.shoppinglist.manager.MockContentManager.java
net.sledzdev.shoppinglist.manager.OnUiThreadFutureCallback.java
net.sledzdev.shoppinglist.model.ShoppingItemBuilderTest.java
net.sledzdev.shoppinglist.model.ShoppingItemBuilder.java
net.sledzdev.shoppinglist.model.ShoppingItem.java
net.sledzdev.shoppinglist.model.ShoppingListFactoryTest.java
net.sledzdev.shoppinglist.model.ShoppingListFactory.java
net.sledzdev.shoppinglist.model.ShoppingList.java