@Override public DatabaseConnection getSpecialConnection(String tableName) { return cs.getSpecialConnection(tableName); }
/** * Satisfies the {@link SQLiteOpenHelper#onCreate(SQLiteDatabase)} interface method. */ @Override public final void onCreate(SQLiteDatabase db) { ConnectionSource cs = getConnectionSource(); /* * The method is called by Android database helper's get-database calls when Android detects that we need to * create or update the database. So we have to use the database argument and save a connection to it on the * AndroidConnectionSource, otherwise it will go recursive if the subclass calls getConnectionSource(). */ DatabaseConnection conn = cs.getSpecialConnection(null); boolean clearSpecial = false; if (conn == null) { conn = new AndroidDatabaseConnection(db, true, cancelQueriesEnabled); try { cs.saveSpecialConnection(conn); clearSpecial = true; } catch (SQLException e) { throw new IllegalStateException("Could not save special connection", e); } } try { onCreate(db, cs); } finally { if (clearSpecial) { cs.clearSpecialConnection(conn); } } }
/** * Satisfies the {@link SQLiteOpenHelper#onUpgrade(SQLiteDatabase, int, int)} interface method. */ @Override public final void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { ConnectionSource cs = getConnectionSource(); /* * The method is called by Android database helper's get-database calls when Android detects that we need to * create or update the database. So we have to use the database argument and save a connection to it on the * AndroidConnectionSource, otherwise it will go recursive if the subclass calls getConnectionSource(). */ DatabaseConnection conn = cs.getSpecialConnection(null); boolean clearSpecial = false; if (conn == null) { conn = new AndroidDatabaseConnection(db, true, cancelQueriesEnabled); try { cs.saveSpecialConnection(conn); clearSpecial = true; } catch (SQLException e) { throw new IllegalStateException("Could not save special connection", e); } } try { onUpgrade(db, cs, oldVersion, newVersion); } finally { if (clearSpecial) { cs.clearSpecialConnection(conn); } } }