// Path: app/src/main/java/com/ghostflying/portalwaitinglist/dao/DataProvider.java
// public class DataProvider extends ContentProvider {
//     public static final String AUTHORITY = BuildConfig.APPLICATION_ID;
// 
//     private DbHelper mDbHelper;
//     private SQLiteDatabase mDatabase;
// 
//     public DataProvider() {
// 
//     }
// 
//     private static final UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH){
//         {
//             addURI(AUTHORITY, PortalEventDbInfo.TABLE_NAME, PortalEventDbInfo.ID);
//         }
//     };
// 
//     private String getTableName(Uri uri){
//         switch (mUriMatcher.match(uri)){
//             case PortalEventDbInfo.ID:
//                 return PortalEventDbInfo.TABLE_NAME;
//             default:
//                 return "";
//         }
//     }
// 
//     private DbHelper getDbHelper(){
//         if (mDbHelper == null)
//             mDbHelper = new DbHelper(getContext());
//         return mDbHelper;
//     }
// 
//     private SQLiteDatabase getDb(){
//         DbHelper mHelper = getDbHelper();
//         if (mDatabase == null)
//             mDatabase = mHelper.getWritableDatabase();
//         return mDatabase;
//     }
// 
//     @Override
//     public int delete(Uri uri, String selection, String[] selectionArgs) {
//         // Implement this to handle requests to delete one or more rows.
//         throw new UnsupportedOperationException("Delete is not supported");
//     }
// 
//     @Override
//     public String getType(Uri uri) {
//         return null;
//     }
// 
//     @Override
//     public Uri insert(Uri uri, ContentValues values){
//         synchronized (DataProvider.class){
//             SQLiteDatabase mDb = getDb();
//             mDb.beginTransaction();
//             long rowId = 0;
//             try{
//                 rowId = mDb.insert(getTableName(uri), null, values);
//                 mDb.setTransactionSuccessful();
//             }
//             catch (Exception e){
//                 e.printStackTrace();
//             }
//             finally {
//                 mDb.endTransaction();
//             }
//             if (rowId > 0){
//                 Uri returnUri = ContentUris.withAppendedId(uri, rowId);
//                 getContext().getContentResolver().notifyChange(uri, null);
//                 return returnUri;
//             }
//             throw new SQLException("Failed to insert to " + uri);
//         }
//     }
// 
//     @Override
//     public int bulkInsert(Uri uri, @NonNull ContentValues[] values){
//         synchronized (DataProvider.class){
//             SQLiteDatabase mDb = getDb();
//             mDb.beginTransaction();
//             try{
//                 for (ContentValues each : values){
//                     mDb.insertWithOnConflict(
//                             getTableName(uri),
//                             null,
//                             each,
//                             SQLiteDatabase.CONFLICT_IGNORE
//                     );
//                 }
//                 mDb.setTransactionSuccessful();
//                 getContext().getContentResolver().notifyChange(uri, null);
//                 return values.length;
//             }
//             catch (Exception e){
//                 e.printStackTrace();
//             }
//             finally {
//                 mDb.endTransaction();
//             }
//             throw new SQLException("Failed to insert to " + uri);
//         }
//     }
// 
//     @Override
//     public boolean onCreate() {
//         return true;
//     }
// 
//     @Override
//     public Cursor query(Uri uri, String[] projection, String selection,
//                         String[] selectionArgs, String sortOrder) {
//         synchronized (DataProvider.class){
//             SQLiteQueryBuilder mQueryBuilder = new SQLiteQueryBuilder();
//             mQueryBuilder.setTables(getTableName(uri));
//             SQLiteDatabase mDb = getDb();
//             Cursor mCursor = mQueryBuilder.query(
//                     mDb,
//                     projection,
//                     selection,
//                     selectionArgs,
//                     null,
//                     null,
//                     sortOrder
//             );
//             mCursor.setNotificationUri(getContext().getContentResolver(), uri);
//             return mCursor;
//         }
//     }
// 
//     @Override
//     public int update(Uri uri, ContentValues values, String selection,
//                       String[] selectionArgs) {
//         // TODO: Implement this to handle requests to update one or more rows.
//         throw new UnsupportedOperationException("Not yet implemented");
//     }
// }


import android.content.ContentValues;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import com.ghostflying.portalwaitinglist.dao.DataProvider;
package com.ghostflying.portalwaitinglist.dao.datahelper;



/**
 * Created by ghostflying on 1/19/15.
 */
public abstract class BaseHelper {
    Context mContext;
    Uri mUri;

    public BaseHelper(Context context){
        mContext = context;
// Path: app/src/main/java/com/ghostflying/portalwaitinglist/dao/DataProvider.java
// public class DataProvider extends ContentProvider {
//     public static final String AUTHORITY = BuildConfig.APPLICATION_ID;
// 
//     private DbHelper mDbHelper;
//     private SQLiteDatabase mDatabase;
// 
//     public DataProvider() {
// 
//     }
// 
//     private static final UriMatcher mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH){
//         {
//             addURI(AUTHORITY, PortalEventDbInfo.TABLE_NAME, PortalEventDbInfo.ID);
//         }
//     };
// 
//     private String getTableName(Uri uri){
//         switch (mUriMatcher.match(uri)){
//             case PortalEventDbInfo.ID:
//                 return PortalEventDbInfo.TABLE_NAME;
//             default:
//                 return "";
//         }
//     }
// 
//     private DbHelper getDbHelper(){
//         if (mDbHelper == null)
//             mDbHelper = new DbHelper(getContext());
//         return mDbHelper;
//     }
// 
//     private SQLiteDatabase getDb(){
//         DbHelper mHelper = getDbHelper();
//         if (mDatabase == null)
//             mDatabase = mHelper.getWritableDatabase();
//         return mDatabase;
//     }
// 
//     @Override
//     public int delete(Uri uri, String selection, String[] selectionArgs) {
//         // Implement this to handle requests to delete one or more rows.
//         throw new UnsupportedOperationException("Delete is not supported");
//     }
// 
//     @Override
//     public String getType(Uri uri) {
//         return null;
//     }
// 
//     @Override
//     public Uri insert(Uri uri, ContentValues values){
//         synchronized (DataProvider.class){
//             SQLiteDatabase mDb = getDb();
//             mDb.beginTransaction();
//             long rowId = 0;
//             try{
//                 rowId = mDb.insert(getTableName(uri), null, values);
//                 mDb.setTransactionSuccessful();
//             }
//             catch (Exception e){
//                 e.printStackTrace();
//             }
//             finally {
//                 mDb.endTransaction();
//             }
//             if (rowId > 0){
//                 Uri returnUri = ContentUris.withAppendedId(uri, rowId);
//                 getContext().getContentResolver().notifyChange(uri, null);
//                 return returnUri;
//             }
//             throw new SQLException("Failed to insert to " + uri);
//         }
//     }
// 
//     @Override
//     public int bulkInsert(Uri uri, @NonNull ContentValues[] values){
//         synchronized (DataProvider.class){
//             SQLiteDatabase mDb = getDb();
//             mDb.beginTransaction();
//             try{
//                 for (ContentValues each : values){
//                     mDb.insertWithOnConflict(
//                             getTableName(uri),
//                             null,
//                             each,
//                             SQLiteDatabase.CONFLICT_IGNORE
//                     );
//                 }
//                 mDb.setTransactionSuccessful();
//                 getContext().getContentResolver().notifyChange(uri, null);
//                 return values.length;
//             }
//             catch (Exception e){
//                 e.printStackTrace();
//             }
//             finally {
//                 mDb.endTransaction();
//             }
//             throw new SQLException("Failed to insert to " + uri);
//         }
//     }
// 
//     @Override
//     public boolean onCreate() {
//         return true;
//     }
// 
//     @Override
//     public Cursor query(Uri uri, String[] projection, String selection,
//                         String[] selectionArgs, String sortOrder) {
//         synchronized (DataProvider.class){
//             SQLiteQueryBuilder mQueryBuilder = new SQLiteQueryBuilder();
//             mQueryBuilder.setTables(getTableName(uri));
//             SQLiteDatabase mDb = getDb();
//             Cursor mCursor = mQueryBuilder.query(
//                     mDb,
//                     projection,
//                     selection,
//                     selectionArgs,
//                     null,
//                     null,
//                     sortOrder
//             );
//             mCursor.setNotificationUri(getContext().getContentResolver(), uri);
//             return mCursor;
//         }
//     }
// 
//     @Override
//     public int update(Uri uri, ContentValues values, String selection,
//                       String[] selectionArgs) {
//         // TODO: Implement this to handle requests to update one or more rows.
//         throw new UnsupportedOperationException("Not yet implemented");
//     }
// }


// Path: app/src/main/java/com/ghostflying/portalwaitinglist/dao/datahelper/BaseHelper.java
import android.content.ContentValues;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import com.ghostflying.portalwaitinglist.dao.DataProvider;

package com.ghostflying.portalwaitinglist.dao.datahelper;



/**
 * Created by ghostflying on 1/19/15.
 */
public abstract class BaseHelper {
    Context mContext;
    Uri mUri;

    public BaseHelper(Context context){
        mContext = context;
        mUri = Uri.parse("content://" + DataProvider.AUTHORITY + "/" + getTableName());