diff options
| author | Fyodor Kupolov <fkupolov@google.com> | 2018-02-14 21:09:49 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-02-14 21:09:49 +0000 |
| commit | 33fd6b59cc8919d3c3592b71779459d071f323dc (patch) | |
| tree | 2fb50e58d22c91172a9ca993b7509813361a2854 /core/java/android | |
| parent | 4c7dd5ea3322ea35bef87d2f6816bcc0227b5190 (diff) | |
| parent | ab05b143ba6fb0ec71c71582a0c229a585f31b48 (diff) | |
Merge "Added SQLiteOpenHelper.setOpenParams"
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/database/sqlite/SQLiteOpenHelper.java | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/core/java/android/database/sqlite/SQLiteOpenHelper.java b/core/java/android/database/sqlite/SQLiteOpenHelper.java index a2991e6e9cb6..64e9e5db7c4b 100644 --- a/core/java/android/database/sqlite/SQLiteOpenHelper.java +++ b/core/java/android/database/sqlite/SQLiteOpenHelper.java @@ -58,7 +58,7 @@ public abstract class SQLiteOpenHelper { private SQLiteDatabase mDatabase; private boolean mIsInitializing; - private final SQLiteDatabase.OpenParams.Builder mOpenParamsBuilder; + private SQLiteDatabase.OpenParams.Builder mOpenParamsBuilder; /** * Create a helper object to create, open, and/or manage a database. @@ -163,8 +163,7 @@ public abstract class SQLiteOpenHelper { mName = name; mNewVersion = version; mMinimumSupportedVersion = Math.max(0, minimumSupportedVersion); - mOpenParamsBuilder = openParamsBuilder; - mOpenParamsBuilder.addOpenFlags(SQLiteDatabase.CREATE_IF_NECESSARY); + setOpenParamsBuilder(openParamsBuilder); } /** @@ -230,6 +229,30 @@ public abstract class SQLiteOpenHelper { } /** + * Sets configuration parameters that are used for opening {@link SQLiteDatabase}. + * <p>Please note that {@link SQLiteDatabase#CREATE_IF_NECESSARY} flag will always be set when + * opening the database + * + * @param openParams configuration parameters that are used for opening {@link SQLiteDatabase}. + * @throws IllegalStateException if the database is already open + */ + public void setOpenParams(@NonNull SQLiteDatabase.OpenParams openParams) { + Preconditions.checkNotNull(openParams); + synchronized (this) { + if (mDatabase != null && mDatabase.isOpen()) { + throw new IllegalStateException( + "OpenParams cannot be set after opening the database"); + } + setOpenParamsBuilder(new SQLiteDatabase.OpenParams.Builder(openParams)); + } + } + + private void setOpenParamsBuilder(SQLiteDatabase.OpenParams.Builder openParamsBuilder) { + mOpenParamsBuilder = openParamsBuilder; + mOpenParamsBuilder.addOpenFlags(SQLiteDatabase.CREATE_IF_NECESSARY); + } + + /** * Sets the maximum number of milliseconds that SQLite connection is allowed to be idle * before it is closed and removed from the pool. * |
