package com.code44.finance.data.providers; import android.content.ContentProvider; import android.content.UriMatcher; import android.database.sqlite.SQLiteDatabase; import com.code44.finance.App; import com.code44.finance.BuildConfig; import com.code44.finance.data.db.DBHelper; import javax.inject.Inject; public abstract class BaseProvider extends ContentProvider { protected static final String CONTENT_URI_BASE = "content://"; protected static final String TYPE_LIST_BASE = "vnd.android.cursor.dir/vnd.code44."; protected static final String TYPE_ITEM_BASE = "vnd.android.cursor.item/vnd.code44."; protected final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); protected SQLiteDatabase database; @Inject DBHelper dbHelper; protected static String getAuthority(Class<? extends BaseProvider> cls) { return BuildConfig.APPLICATION_ID + ".data.providers." + cls.getSimpleName(); } @Override public boolean onCreate() { return true; } protected String getAuthority() { return getAuthority(getClass()); } protected SQLiteDatabase getDatabase() { if (database == null) { App.with(getContext()).inject(this); database = dbHelper.getWritableDatabase(); } return database; } }