// Path: app/src/main/java/org/researchstack/sampleapp/bridge/BridgeEncryptedDatabase.java
// public class BridgeEncryptedDatabase extends SqlCipherDatabaseHelper implements UploadQueue
// {
//     public BridgeEncryptedDatabase(Context context, String name, SQLiteDatabase.CursorFactory cursorFactory, int version, UpdatablePassphraseProvider passphraseProvider)
//     {
//         super(context, name, cursorFactory, version, passphraseProvider);
//     }
// 
//     @Override
//     public void onCreate(SQLiteDatabase sqLiteDatabase)
//     {
//         super.onCreate(sqLiteDatabase);
//         try
//         {
//             TableUtils.createTables(new SQLiteDatabaseImpl(sqLiteDatabase), UploadRequest.class);
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     @Override
//     public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion)
//     {
//         super.onUpgrade(sqLiteDatabase, oldVersion, newVersion);
//         // handle future db upgrades here
//     }
// 
//     public void saveUploadRequest(UploadRequest uploadRequest)
//     {
//         LogExt.d(this.getClass(), "saveUploadRequest() id: " + uploadRequest.id);
// 
//         try
//         {
//             this.getDao(UploadRequest.class).createOrUpdate(uploadRequest);
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     public List<UploadRequest> loadUploadRequests()
//     {
//         try
//         {
//             return this.getDao(UploadRequest.class).queryForAll().orderBy("id DESC").list();
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     public void deleteUploadRequest(UploadRequest request)
//     {
// 
//         LogExt.d(this.getClass(), "deleteUploadRequest() id: " + request.id);
// 
//         try
//         {
//             this.getDao(UploadRequest.class).delete(request);
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// }


import android.content.Context;
import net.sqlcipher.database.SQLiteDatabase;
import org.researchstack.backbone.storage.database.AppDatabase;
import org.researchstack.backbone.storage.database.sqlite.SqlCipherDatabaseHelper;
import org.researchstack.backbone.storage.database.sqlite.UpdatablePassphraseProvider;
import org.researchstack.backbone.storage.file.EncryptionProvider;
import org.researchstack.backbone.storage.file.FileAccess;
import org.researchstack.backbone.storage.file.PinCodeConfig;
import org.researchstack.backbone.storage.file.SimpleFileAccess;
import org.researchstack.backbone.storage.file.aes.AesProvider;
import org.researchstack.sampleapp.bridge.BridgeEncryptedDatabase;
import org.researchstack.skin.AppPrefs;
import org.researchstack.skin.DataProvider;
import org.researchstack.skin.PermissionRequestManager;
import org.researchstack.skin.ResearchStack;
import org.researchstack.skin.ResourceManager;
import org.researchstack.skin.TaskProvider;
import org.researchstack.skin.UiManager;
import org.researchstack.skin.notification.NotificationConfig;
import org.researchstack.skin.notification.SimpleNotificationConfig;
package org.researchstack.sampleapp;




public class SampleResearchStack extends ResearchStack
{

    @Override
    protected AppDatabase createAppDatabaseImplementation(Context context)
    {
        SQLiteDatabase.loadLibs(context);
// Path: app/src/main/java/org/researchstack/sampleapp/bridge/BridgeEncryptedDatabase.java
// public class BridgeEncryptedDatabase extends SqlCipherDatabaseHelper implements UploadQueue
// {
//     public BridgeEncryptedDatabase(Context context, String name, SQLiteDatabase.CursorFactory cursorFactory, int version, UpdatablePassphraseProvider passphraseProvider)
//     {
//         super(context, name, cursorFactory, version, passphraseProvider);
//     }
// 
//     @Override
//     public void onCreate(SQLiteDatabase sqLiteDatabase)
//     {
//         super.onCreate(sqLiteDatabase);
//         try
//         {
//             TableUtils.createTables(new SQLiteDatabaseImpl(sqLiteDatabase), UploadRequest.class);
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     @Override
//     public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion)
//     {
//         super.onUpgrade(sqLiteDatabase, oldVersion, newVersion);
//         // handle future db upgrades here
//     }
// 
//     public void saveUploadRequest(UploadRequest uploadRequest)
//     {
//         LogExt.d(this.getClass(), "saveUploadRequest() id: " + uploadRequest.id);
// 
//         try
//         {
//             this.getDao(UploadRequest.class).createOrUpdate(uploadRequest);
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     public List<UploadRequest> loadUploadRequests()
//     {
//         try
//         {
//             return this.getDao(UploadRequest.class).queryForAll().orderBy("id DESC").list();
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// 
//     public void deleteUploadRequest(UploadRequest request)
//     {
// 
//         LogExt.d(this.getClass(), "deleteUploadRequest() id: " + request.id);
// 
//         try
//         {
//             this.getDao(UploadRequest.class).delete(request);
//         }
//         catch(SQLException e)
//         {
//             throw new RuntimeException(e);
//         }
//     }
// }


// Path: app/src/main/java/org/researchstack/sampleapp/SampleResearchStack.java
import android.content.Context;
import net.sqlcipher.database.SQLiteDatabase;
import org.researchstack.backbone.storage.database.AppDatabase;
import org.researchstack.backbone.storage.database.sqlite.SqlCipherDatabaseHelper;
import org.researchstack.backbone.storage.database.sqlite.UpdatablePassphraseProvider;
import org.researchstack.backbone.storage.file.EncryptionProvider;
import org.researchstack.backbone.storage.file.FileAccess;
import org.researchstack.backbone.storage.file.PinCodeConfig;
import org.researchstack.backbone.storage.file.SimpleFileAccess;
import org.researchstack.backbone.storage.file.aes.AesProvider;
import org.researchstack.sampleapp.bridge.BridgeEncryptedDatabase;
import org.researchstack.skin.AppPrefs;
import org.researchstack.skin.DataProvider;
import org.researchstack.skin.PermissionRequestManager;
import org.researchstack.skin.ResearchStack;
import org.researchstack.skin.ResourceManager;
import org.researchstack.skin.TaskProvider;
import org.researchstack.skin.UiManager;
import org.researchstack.skin.notification.NotificationConfig;
import org.researchstack.skin.notification.SimpleNotificationConfig;

package org.researchstack.sampleapp;




public class SampleResearchStack extends ResearchStack
{

    @Override
    protected AppDatabase createAppDatabaseImplementation(Context context)
    {
        SQLiteDatabase.loadLibs(context);
        return new BridgeEncryptedDatabase(context,