Loading api/current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -12136,9 +12136,11 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory(); method public android.database.DatabaseErrorHandler getErrorHandler(); method public long getIdleConnectionTimeout(); method public java.lang.String getJournalMode(); method public int getLookasideSlotCount(); method public int getLookasideSlotSize(); method public int getOpenFlags(); method public java.lang.String getSynchronousMode(); } public static final class SQLiteDatabase.OpenParams.Builder { Loading @@ -12150,8 +12152,10 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(android.database.DatabaseErrorHandler); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(long); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(java.lang.String); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(int, int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(java.lang.String); } public class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException { Loading Loading @@ -12198,6 +12202,7 @@ package android.database.sqlite { public abstract class SQLiteOpenHelper { ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, int, android.database.sqlite.SQLiteDatabase.OpenParams); method public synchronized void close(); method public java.lang.String getDatabaseName(); method public android.database.sqlite.SQLiteDatabase getReadableDatabase(); api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -12883,9 +12883,11 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory(); method public android.database.DatabaseErrorHandler getErrorHandler(); method public long getIdleConnectionTimeout(); method public java.lang.String getJournalMode(); method public int getLookasideSlotCount(); method public int getLookasideSlotSize(); method public int getOpenFlags(); method public java.lang.String getSynchronousMode(); } public static final class SQLiteDatabase.OpenParams.Builder { Loading @@ -12897,8 +12899,10 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(android.database.DatabaseErrorHandler); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(long); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(java.lang.String); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(int, int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(java.lang.String); } public class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException { Loading Loading @@ -12945,6 +12949,7 @@ package android.database.sqlite { public abstract class SQLiteOpenHelper { ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, int, android.database.sqlite.SQLiteDatabase.OpenParams); method public synchronized void close(); method public java.lang.String getDatabaseName(); method public android.database.sqlite.SQLiteDatabase getReadableDatabase(); api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -12226,9 +12226,11 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory(); method public android.database.DatabaseErrorHandler getErrorHandler(); method public long getIdleConnectionTimeout(); method public java.lang.String getJournalMode(); method public int getLookasideSlotCount(); method public int getLookasideSlotSize(); method public int getOpenFlags(); method public java.lang.String getSynchronousMode(); } public static final class SQLiteDatabase.OpenParams.Builder { Loading @@ -12240,8 +12242,10 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(android.database.DatabaseErrorHandler); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(long); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(java.lang.String); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(int, int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(java.lang.String); } public class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException { Loading Loading @@ -12335,6 +12339,7 @@ package android.database.sqlite { public abstract class SQLiteOpenHelper { ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, int, android.database.sqlite.SQLiteDatabase.OpenParams); method public synchronized void close(); method public java.lang.String getDatabaseName(); method public android.database.sqlite.SQLiteDatabase getReadableDatabase(); core/java/android/database/sqlite/SQLiteConnection.java +13 −10 Original line number Diff line number Diff line Loading @@ -289,14 +289,19 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen private void setWalModeFromConfiguration() { if (!mConfiguration.isInMemoryDb() && !mIsReadOnlyConnection) { boolean walEnabled = final boolean walEnabled = (mConfiguration.openFlags & SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING) != 0; if (walEnabled || mConfiguration.useCompatibilityWal) { // Use compatibility WAL unless an app explicitly set journal/synchronous mode final boolean useCompatibilityWal = mConfiguration.journalMode == null && mConfiguration.syncMode == null && mConfiguration.useCompatibilityWal; if (walEnabled || useCompatibilityWal) { setJournalMode("WAL"); setSyncMode(SQLiteGlobal.getWALSyncMode()); } else { setJournalMode(SQLiteGlobal.getDefaultJournalMode()); setSyncMode(SQLiteGlobal.getDefaultSyncMode()); setJournalMode(mConfiguration.journalMode == null ? SQLiteGlobal.getDefaultJournalMode() : mConfiguration.journalMode); setSyncMode(mConfiguration.syncMode == null ? SQLiteGlobal.getDefaultSyncMode() : mConfiguration.syncMode); } } } Loading @@ -310,12 +315,10 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen } private static String canonicalizeSyncMode(String value) { if (value.equals("0")) { return "OFF"; } else if (value.equals("1")) { return "NORMAL"; } else if (value.equals("2")) { return "FULL"; switch (value) { case "0": return "OFF"; case "1": return "NORMAL"; case "2": return "FULL"; } return value; } Loading core/java/android/database/sqlite/SQLiteDatabase.java +66 −6 Original line number Diff line number Diff line Loading @@ -262,7 +262,8 @@ public final class SQLiteDatabase extends SQLiteClosable { private SQLiteDatabase(final String path, final int openFlags, CursorFactory cursorFactory, DatabaseErrorHandler errorHandler, int lookasideSlotSize, int lookasideSlotCount, long idleConnectionTimeoutMs) { int lookasideSlotSize, int lookasideSlotCount, long idleConnectionTimeoutMs, String journalMode, String syncMode) { mCursorFactory = cursorFactory; mErrorHandler = errorHandler != null ? errorHandler : new DefaultDatabaseErrorHandler(); mConfigurationLocked = new SQLiteDatabaseConfiguration(path, openFlags); Loading @@ -285,6 +286,8 @@ public final class SQLiteDatabase extends SQLiteClosable { } } mConfigurationLocked.idleConnectionTimeoutMs = effectiveTimeoutMs; mConfigurationLocked.journalMode = journalMode; mConfigurationLocked.syncMode = syncMode; mConfigurationLocked.useCompatibilityWal = SQLiteGlobal.isCompatibilityWalSupported(); } Loading Loading @@ -721,7 +724,7 @@ public final class SQLiteDatabase extends SQLiteClosable { SQLiteDatabase db = new SQLiteDatabase(path, openParams.mOpenFlags, openParams.mCursorFactory, openParams.mErrorHandler, openParams.mLookasideSlotSize, openParams.mLookasideSlotCount, openParams.mIdleConnectionTimeout); openParams.mIdleConnectionTimeout, openParams.mJournalMode, openParams.mSyncMode); db.open(); return db; } Loading @@ -747,7 +750,8 @@ public final class SQLiteDatabase extends SQLiteClosable { */ public static SQLiteDatabase openDatabase(@NonNull String path, @Nullable CursorFactory factory, @DatabaseOpenFlags int flags, @Nullable DatabaseErrorHandler errorHandler) { SQLiteDatabase db = new SQLiteDatabase(path, flags, factory, errorHandler, -1, -1, -1); SQLiteDatabase db = new SQLiteDatabase(path, flags, factory, errorHandler, -1, -1, -1, null, null); db.open(); return db; } Loading Loading @@ -2302,17 +2306,21 @@ public final class SQLiteDatabase extends SQLiteClosable { private final DatabaseErrorHandler mErrorHandler; private final int mLookasideSlotSize; private final int mLookasideSlotCount; private long mIdleConnectionTimeout; private final long mIdleConnectionTimeout; private final String mJournalMode; private final String mSyncMode; private OpenParams(int openFlags, CursorFactory cursorFactory, DatabaseErrorHandler errorHandler, int lookasideSlotSize, int lookasideSlotCount, long idleConnectionTimeout) { long idleConnectionTimeout, String journalMode, String syncMode) { mOpenFlags = openFlags; mCursorFactory = cursorFactory; mErrorHandler = errorHandler; mLookasideSlotSize = lookasideSlotSize; mLookasideSlotCount = lookasideSlotCount; mIdleConnectionTimeout = idleConnectionTimeout; mJournalMode = journalMode; mSyncMode = syncMode; } /** Loading Loading @@ -2378,6 +2386,28 @@ public final class SQLiteDatabase extends SQLiteClosable { return mIdleConnectionTimeout; } /** * Returns <a href="https://sqlite.org/pragma.html#pragma_journal_mode">journal mode</a>. * This journal mode will only be used if {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} * flag is not set, otherwise a platform will use "WAL" journal mode. * @see Builder#setJournalMode(String) */ @Nullable public String getJournalMode() { return mJournalMode; } /** * Returns <a href="https://sqlite.org/pragma.html#pragma_synchronous">synchronous mode</a>. * This value will only be used when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag * is not set, otherwise a system wide default will be used. * @see Builder#setSynchronousMode(String) */ @Nullable public String getSynchronousMode() { return mSyncMode; } /** * Creates a new instance of builder {@link Builder#Builder(OpenParams) initialized} with * {@code this} parameters. Loading @@ -2398,6 +2428,8 @@ public final class SQLiteDatabase extends SQLiteClosable { private int mOpenFlags; private CursorFactory mCursorFactory; private DatabaseErrorHandler mErrorHandler; private String mJournalMode; private String mSyncMode; public Builder() { } Loading @@ -2408,6 +2440,8 @@ public final class SQLiteDatabase extends SQLiteClosable { mOpenFlags = params.mOpenFlags; mCursorFactory = params.mCursorFactory; mErrorHandler = params.mErrorHandler; mJournalMode = params.mJournalMode; mSyncMode = params.mSyncMode; } /** Loading Loading @@ -2539,6 +2573,30 @@ public final class SQLiteDatabase extends SQLiteClosable { return this; } /** * Sets <a href="https://sqlite.org/pragma.html#pragma_journal_mode">journal mode</a> * to use when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag is not set. */ @NonNull public Builder setJournalMode(@NonNull String journalMode) { Preconditions.checkNotNull(journalMode); mJournalMode = journalMode; return this; } /** * Sets <a href="https://sqlite.org/pragma.html#pragma_synchronous">synchronous mode</a> * to use when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag is not set. * @return */ @NonNull public Builder setSynchronousMode(@NonNull String syncMode) { Preconditions.checkNotNull(syncMode); mSyncMode = syncMode; return this; } /** * Creates an instance of {@link OpenParams} with the options that were previously set * on this builder Loading @@ -2546,7 +2604,7 @@ public final class SQLiteDatabase extends SQLiteClosable { @NonNull public OpenParams build() { return new OpenParams(mOpenFlags, mCursorFactory, mErrorHandler, mLookasideSlotSize, mLookasideSlotCount, mIdleConnectionTimeout); mLookasideSlotCount, mIdleConnectionTimeout, mJournalMode, mSyncMode); } } } Loading @@ -2561,4 +2619,6 @@ public final class SQLiteDatabase extends SQLiteClosable { }) @Retention(RetentionPolicy.SOURCE) public @interface DatabaseOpenFlags {} } Loading
api/current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -12136,9 +12136,11 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory(); method public android.database.DatabaseErrorHandler getErrorHandler(); method public long getIdleConnectionTimeout(); method public java.lang.String getJournalMode(); method public int getLookasideSlotCount(); method public int getLookasideSlotSize(); method public int getOpenFlags(); method public java.lang.String getSynchronousMode(); } public static final class SQLiteDatabase.OpenParams.Builder { Loading @@ -12150,8 +12152,10 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(android.database.DatabaseErrorHandler); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(long); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(java.lang.String); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(int, int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(java.lang.String); } public class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException { Loading Loading @@ -12198,6 +12202,7 @@ package android.database.sqlite { public abstract class SQLiteOpenHelper { ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, int, android.database.sqlite.SQLiteDatabase.OpenParams); method public synchronized void close(); method public java.lang.String getDatabaseName(); method public android.database.sqlite.SQLiteDatabase getReadableDatabase();
api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -12883,9 +12883,11 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory(); method public android.database.DatabaseErrorHandler getErrorHandler(); method public long getIdleConnectionTimeout(); method public java.lang.String getJournalMode(); method public int getLookasideSlotCount(); method public int getLookasideSlotSize(); method public int getOpenFlags(); method public java.lang.String getSynchronousMode(); } public static final class SQLiteDatabase.OpenParams.Builder { Loading @@ -12897,8 +12899,10 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(android.database.DatabaseErrorHandler); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(long); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(java.lang.String); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(int, int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(java.lang.String); } public class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException { Loading Loading @@ -12945,6 +12949,7 @@ package android.database.sqlite { public abstract class SQLiteOpenHelper { ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, int, android.database.sqlite.SQLiteDatabase.OpenParams); method public synchronized void close(); method public java.lang.String getDatabaseName(); method public android.database.sqlite.SQLiteDatabase getReadableDatabase();
api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -12226,9 +12226,11 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.CursorFactory getCursorFactory(); method public android.database.DatabaseErrorHandler getErrorHandler(); method public long getIdleConnectionTimeout(); method public java.lang.String getJournalMode(); method public int getLookasideSlotCount(); method public int getLookasideSlotSize(); method public int getOpenFlags(); method public java.lang.String getSynchronousMode(); } public static final class SQLiteDatabase.OpenParams.Builder { Loading @@ -12240,8 +12242,10 @@ package android.database.sqlite { method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setCursorFactory(android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setErrorHandler(android.database.DatabaseErrorHandler); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setIdleConnectionTimeout(long); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setJournalMode(java.lang.String); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setLookasideConfig(int, int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setOpenFlags(int); method public android.database.sqlite.SQLiteDatabase.OpenParams.Builder setSynchronousMode(java.lang.String); } public class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException { Loading Loading @@ -12335,6 +12339,7 @@ package android.database.sqlite { public abstract class SQLiteOpenHelper { ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, android.database.sqlite.SQLiteDatabase.CursorFactory, int, android.database.DatabaseErrorHandler); ctor public SQLiteOpenHelper(android.content.Context, java.lang.String, int, android.database.sqlite.SQLiteDatabase.OpenParams); method public synchronized void close(); method public java.lang.String getDatabaseName(); method public android.database.sqlite.SQLiteDatabase getReadableDatabase();
core/java/android/database/sqlite/SQLiteConnection.java +13 −10 Original line number Diff line number Diff line Loading @@ -289,14 +289,19 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen private void setWalModeFromConfiguration() { if (!mConfiguration.isInMemoryDb() && !mIsReadOnlyConnection) { boolean walEnabled = final boolean walEnabled = (mConfiguration.openFlags & SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING) != 0; if (walEnabled || mConfiguration.useCompatibilityWal) { // Use compatibility WAL unless an app explicitly set journal/synchronous mode final boolean useCompatibilityWal = mConfiguration.journalMode == null && mConfiguration.syncMode == null && mConfiguration.useCompatibilityWal; if (walEnabled || useCompatibilityWal) { setJournalMode("WAL"); setSyncMode(SQLiteGlobal.getWALSyncMode()); } else { setJournalMode(SQLiteGlobal.getDefaultJournalMode()); setSyncMode(SQLiteGlobal.getDefaultSyncMode()); setJournalMode(mConfiguration.journalMode == null ? SQLiteGlobal.getDefaultJournalMode() : mConfiguration.journalMode); setSyncMode(mConfiguration.syncMode == null ? SQLiteGlobal.getDefaultSyncMode() : mConfiguration.syncMode); } } } Loading @@ -310,12 +315,10 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen } private static String canonicalizeSyncMode(String value) { if (value.equals("0")) { return "OFF"; } else if (value.equals("1")) { return "NORMAL"; } else if (value.equals("2")) { return "FULL"; switch (value) { case "0": return "OFF"; case "1": return "NORMAL"; case "2": return "FULL"; } return value; } Loading
core/java/android/database/sqlite/SQLiteDatabase.java +66 −6 Original line number Diff line number Diff line Loading @@ -262,7 +262,8 @@ public final class SQLiteDatabase extends SQLiteClosable { private SQLiteDatabase(final String path, final int openFlags, CursorFactory cursorFactory, DatabaseErrorHandler errorHandler, int lookasideSlotSize, int lookasideSlotCount, long idleConnectionTimeoutMs) { int lookasideSlotSize, int lookasideSlotCount, long idleConnectionTimeoutMs, String journalMode, String syncMode) { mCursorFactory = cursorFactory; mErrorHandler = errorHandler != null ? errorHandler : new DefaultDatabaseErrorHandler(); mConfigurationLocked = new SQLiteDatabaseConfiguration(path, openFlags); Loading @@ -285,6 +286,8 @@ public final class SQLiteDatabase extends SQLiteClosable { } } mConfigurationLocked.idleConnectionTimeoutMs = effectiveTimeoutMs; mConfigurationLocked.journalMode = journalMode; mConfigurationLocked.syncMode = syncMode; mConfigurationLocked.useCompatibilityWal = SQLiteGlobal.isCompatibilityWalSupported(); } Loading Loading @@ -721,7 +724,7 @@ public final class SQLiteDatabase extends SQLiteClosable { SQLiteDatabase db = new SQLiteDatabase(path, openParams.mOpenFlags, openParams.mCursorFactory, openParams.mErrorHandler, openParams.mLookasideSlotSize, openParams.mLookasideSlotCount, openParams.mIdleConnectionTimeout); openParams.mIdleConnectionTimeout, openParams.mJournalMode, openParams.mSyncMode); db.open(); return db; } Loading @@ -747,7 +750,8 @@ public final class SQLiteDatabase extends SQLiteClosable { */ public static SQLiteDatabase openDatabase(@NonNull String path, @Nullable CursorFactory factory, @DatabaseOpenFlags int flags, @Nullable DatabaseErrorHandler errorHandler) { SQLiteDatabase db = new SQLiteDatabase(path, flags, factory, errorHandler, -1, -1, -1); SQLiteDatabase db = new SQLiteDatabase(path, flags, factory, errorHandler, -1, -1, -1, null, null); db.open(); return db; } Loading Loading @@ -2302,17 +2306,21 @@ public final class SQLiteDatabase extends SQLiteClosable { private final DatabaseErrorHandler mErrorHandler; private final int mLookasideSlotSize; private final int mLookasideSlotCount; private long mIdleConnectionTimeout; private final long mIdleConnectionTimeout; private final String mJournalMode; private final String mSyncMode; private OpenParams(int openFlags, CursorFactory cursorFactory, DatabaseErrorHandler errorHandler, int lookasideSlotSize, int lookasideSlotCount, long idleConnectionTimeout) { long idleConnectionTimeout, String journalMode, String syncMode) { mOpenFlags = openFlags; mCursorFactory = cursorFactory; mErrorHandler = errorHandler; mLookasideSlotSize = lookasideSlotSize; mLookasideSlotCount = lookasideSlotCount; mIdleConnectionTimeout = idleConnectionTimeout; mJournalMode = journalMode; mSyncMode = syncMode; } /** Loading Loading @@ -2378,6 +2386,28 @@ public final class SQLiteDatabase extends SQLiteClosable { return mIdleConnectionTimeout; } /** * Returns <a href="https://sqlite.org/pragma.html#pragma_journal_mode">journal mode</a>. * This journal mode will only be used if {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} * flag is not set, otherwise a platform will use "WAL" journal mode. * @see Builder#setJournalMode(String) */ @Nullable public String getJournalMode() { return mJournalMode; } /** * Returns <a href="https://sqlite.org/pragma.html#pragma_synchronous">synchronous mode</a>. * This value will only be used when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag * is not set, otherwise a system wide default will be used. * @see Builder#setSynchronousMode(String) */ @Nullable public String getSynchronousMode() { return mSyncMode; } /** * Creates a new instance of builder {@link Builder#Builder(OpenParams) initialized} with * {@code this} parameters. Loading @@ -2398,6 +2428,8 @@ public final class SQLiteDatabase extends SQLiteClosable { private int mOpenFlags; private CursorFactory mCursorFactory; private DatabaseErrorHandler mErrorHandler; private String mJournalMode; private String mSyncMode; public Builder() { } Loading @@ -2408,6 +2440,8 @@ public final class SQLiteDatabase extends SQLiteClosable { mOpenFlags = params.mOpenFlags; mCursorFactory = params.mCursorFactory; mErrorHandler = params.mErrorHandler; mJournalMode = params.mJournalMode; mSyncMode = params.mSyncMode; } /** Loading Loading @@ -2539,6 +2573,30 @@ public final class SQLiteDatabase extends SQLiteClosable { return this; } /** * Sets <a href="https://sqlite.org/pragma.html#pragma_journal_mode">journal mode</a> * to use when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag is not set. */ @NonNull public Builder setJournalMode(@NonNull String journalMode) { Preconditions.checkNotNull(journalMode); mJournalMode = journalMode; return this; } /** * Sets <a href="https://sqlite.org/pragma.html#pragma_synchronous">synchronous mode</a> * to use when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag is not set. * @return */ @NonNull public Builder setSynchronousMode(@NonNull String syncMode) { Preconditions.checkNotNull(syncMode); mSyncMode = syncMode; return this; } /** * Creates an instance of {@link OpenParams} with the options that were previously set * on this builder Loading @@ -2546,7 +2604,7 @@ public final class SQLiteDatabase extends SQLiteClosable { @NonNull public OpenParams build() { return new OpenParams(mOpenFlags, mCursorFactory, mErrorHandler, mLookasideSlotSize, mLookasideSlotCount, mIdleConnectionTimeout); mLookasideSlotCount, mIdleConnectionTimeout, mJournalMode, mSyncMode); } } } Loading @@ -2561,4 +2619,6 @@ public final class SQLiteDatabase extends SQLiteClosable { }) @Retention(RetentionPolicy.SOURCE) public @interface DatabaseOpenFlags {} }