Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch android-studio-15 Excluding Merge-Ins
This is equivalent to a diff from c44bb26627 to da94157b9a
2016-05-20
| ||
18:45 | Update to Android Studio and gradle build system. (Closed-Leaf check-in: f82877032c user: dan tags: api-level-15) | |
18:43 | Update to Android Studio and gradle build system. (check-in: 345de238a6 user: dan tags: trunk) | |
18:40 | Create a branch that supports API level 15 and up. (Closed-Leaf check-in: da94157b9a user: dan tags: android-studio-15) | |
17:31 | Update the SQLite version bundled with this module to 3.13.0. (Closed-Leaf check-in: c44bb26627 user: dan tags: android-studio) | |
17:27 | Documentation updates to take the changes on this branch into account. (check-in: 546c601489 user: dan tags: android-studio) | |
Changes to sqlite3/build.gradle.
1 2 3 | apply plugin: 'com.android.library' android { | | < | < < > | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | apply plugin: 'com.android.library' android { compileSdkVersion 15 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets.main.jni.srcDirs = [] //disable automatic ndk-build call sourceSets.main { jniLibs.srcDir 'src/main/libs' } productFlavors { } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' } |
Added sqlite3/src/main/aidl/org/sqlite/os/ICancellationSignal.aidl.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ** Modified to support SQLite extensions by the SQLite developers: ** sqlite-dev@sqlite.org. */ package org.sqlite.os; /** * @hide */ interface ICancellationSignal { oneway void cancel(); } |
Changes to sqlite3/src/main/java/org/sqlite/database/ExtraUtils.java.
︙ | ︙ | |||
32 33 34 35 36 37 38 | import org.sqlite.database.sqlite.SQLiteDatabase; import org.sqlite.database.sqlite.SQLiteDatabaseCorruptException; import org.sqlite.database.sqlite.SQLiteDiskIOException; import org.sqlite.database.sqlite.SQLiteException; import org.sqlite.database.sqlite.SQLiteFullException; import org.sqlite.database.sqlite.SQLiteProgram; import org.sqlite.database.sqlite.SQLiteStatement; | | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import org.sqlite.database.sqlite.SQLiteDatabase; import org.sqlite.database.sqlite.SQLiteDatabaseCorruptException; import org.sqlite.database.sqlite.SQLiteDiskIOException; import org.sqlite.database.sqlite.SQLiteException; import org.sqlite.database.sqlite.SQLiteFullException; import org.sqlite.database.sqlite.SQLiteProgram; import org.sqlite.database.sqlite.SQLiteStatement; import org.sqlite.os.OperationCanceledException; import android.os.Parcel; import android.os.ParcelFileDescriptor; import android.text.TextUtils; import android.util.Log; import java.io.FileNotFoundException; import java.io.PrintStream; |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteConnection.java.
︙ | ︙ | |||
24 25 26 27 28 29 30 | import org.sqlite.database.sqlite.CloseGuard; import android.database.Cursor; import android.database.CursorWindow; import android.database.DatabaseUtils; import org.sqlite.database.ExtraUtils; import org.sqlite.database.sqlite.SQLiteDebug.DbStats; | | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import org.sqlite.database.sqlite.CloseGuard; import android.database.Cursor; import android.database.CursorWindow; import android.database.DatabaseUtils; import org.sqlite.database.ExtraUtils; import org.sqlite.database.sqlite.SQLiteDebug.DbStats; import org.sqlite.os.CancellationSignal; import org.sqlite.os.OperationCanceledException; import android.os.ParcelFileDescriptor; import android.util.Log; import android.util.LruCache; import android.util.Printer; import java.text.SimpleDateFormat; import java.util.ArrayList; |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteConnectionPool.java.
︙ | ︙ | |||
19 20 21 22 23 24 25 | */ package org.sqlite.database.sqlite; import org.sqlite.database.sqlite.CloseGuard; import org.sqlite.database.sqlite.SQLiteDebug.DbStats; | | | | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | */ package org.sqlite.database.sqlite; import org.sqlite.database.sqlite.CloseGuard; import org.sqlite.database.sqlite.SQLiteDebug.DbStats; import org.sqlite.os.CancellationSignal; import org.sqlite.os.OperationCanceledException; import android.os.SystemClock; import android.util.Log; /* import android.util.PrefixPrinter; */ import android.util.Printer; import java.io.Closeable; import java.util.ArrayList; |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteDatabase.java.
︙ | ︙ | |||
24 25 26 27 28 29 30 | import android.database.Cursor; import org.sqlite.database.DatabaseErrorHandler; import android.database.DatabaseUtils; import org.sqlite.database.ExtraUtils; import org.sqlite.database.DefaultDatabaseErrorHandler; import org.sqlite.database.SQLException; import org.sqlite.database.sqlite.SQLiteDebug.DbStats; | | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import android.database.Cursor; import org.sqlite.database.DatabaseErrorHandler; import android.database.DatabaseUtils; import org.sqlite.database.ExtraUtils; import org.sqlite.database.DefaultDatabaseErrorHandler; import org.sqlite.database.SQLException; import org.sqlite.database.sqlite.SQLiteDebug.DbStats; import org.sqlite.os.CancellationSignal; import android.os.Looper; import org.sqlite.os.OperationCanceledException; import android.text.TextUtils; import android.util.EventLog; import android.util.Log; import android.util.Pair; import android.util.Printer; import org.sqlite.database.sqlite.CloseGuard; |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteDirectCursorDriver.java.
︙ | ︙ | |||
18 19 20 21 22 23 24 | ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.Cursor; import org.sqlite.database.sqlite.SQLiteDatabase.CursorFactory; | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.Cursor; import org.sqlite.database.sqlite.SQLiteDatabase.CursorFactory; import org.sqlite.os.CancellationSignal; /** * A cursor driver that uses the given query directly. * * @hide */ public final class SQLiteDirectCursorDriver implements SQLiteCursorDriver { |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteProgram.java.
︙ | ︙ | |||
17 18 19 20 21 22 23 | ** Modified to support SQLite extensions by the SQLite developers: ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.DatabaseUtils; | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | ** Modified to support SQLite extensions by the SQLite developers: ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.DatabaseUtils; import org.sqlite.os.CancellationSignal; import java.util.Arrays; /** * A base class for compiled SQLite programs. * <p> * This class is not thread-safe. |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteQuery.java.
︙ | ︙ | |||
17 18 19 20 21 22 23 | ** Modified to support SQLite extensions by the SQLite developers: ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.CursorWindow; | | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ** Modified to support SQLite extensions by the SQLite developers: ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.CursorWindow; import org.sqlite.os.CancellationSignal; import org.sqlite.os.OperationCanceledException; import android.util.Log; /** * Represents a query that reads the resulting rows into a {@link SQLiteQuery}. * This class is used by {@link SQLiteCursor} and isn't useful itself. * <p> * This class is not thread-safe. |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteQueryBuilder.java.
︙ | ︙ | |||
18 19 20 21 22 23 24 | ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.Cursor; import android.database.DatabaseUtils; | | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.Cursor; import android.database.DatabaseUtils; import org.sqlite.os.CancellationSignal; import org.sqlite.os.OperationCanceledException; import android.provider.BaseColumns; import android.text.TextUtils; import android.util.Log; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; |
︙ | ︙ |
Changes to sqlite3/src/main/java/org/sqlite/database/sqlite/SQLiteSession.java.
︙ | ︙ | |||
18 19 20 21 22 23 24 | ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.CursorWindow; import android.database.DatabaseUtils; | | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ** sqlite-dev@sqlite.org. */ package org.sqlite.database.sqlite; import android.database.CursorWindow; import android.database.DatabaseUtils; import org.sqlite.os.CancellationSignal; import org.sqlite.os.OperationCanceledException; import android.os.ParcelFileDescriptor; /** * Provides a single client the ability to use a database. * * <h2>About database sessions</h2> * <p> |
︙ | ︙ |
Added sqlite3/src/main/java/org/sqlite/os/CancellationSignal.java.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 | /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ** Modified to support SQLite extensions by the SQLite developers: ** sqlite-dev@sqlite.org. */ package org.sqlite.os; import org.sqlite.os.ICancellationSignal; import android.os.RemoteException; /** * Provides the ability to cancel an operation in progress. */ public final class CancellationSignal { private boolean mIsCanceled; private OnCancelListener mOnCancelListener; private ICancellationSignal mRemote; private boolean mCancelInProgress; /** * Creates a cancellation signal, initially not canceled. */ public CancellationSignal() { } /** * Returns true if the operation has been canceled. * * @return True if the operation has been canceled. */ public boolean isCanceled() { synchronized (this) { return mIsCanceled; } } /** * Throws {@link OperationCanceledException} if the operation has been canceled. * * @throws OperationCanceledException if the operation has been canceled. */ public void throwIfCanceled() { if (isCanceled()) { throw new OperationCanceledException(); } } /** * Cancels the operation and signals the cancellation listener. * If the operation has not yet started, then it will be canceled as soon as it does. */ public void cancel() { final OnCancelListener listener; final ICancellationSignal remote; synchronized (this) { if (mIsCanceled) { return; } mIsCanceled = true; mCancelInProgress = true; listener = mOnCancelListener; remote = mRemote; } try { if (listener != null) { listener.onCancel(); } if (remote != null) { try { remote.cancel(); } catch (RemoteException ex) { } } } finally { synchronized (this) { mCancelInProgress = false; notifyAll(); } } } /** * Sets the cancellation listener to be called when canceled. * * This method is intended to be used by the recipient of a cancellation signal * such as a database or a content provider to handle cancellation requests * while performing a long-running operation. This method is not intended to be * used by applications themselves. * * If {@link CancellationSignal#cancel} has already been called, then the provided * listener is invoked immediately. * * This method is guaranteed that the listener will not be called after it * has been removed. * * @param listener The cancellation listener, or null to remove the current listener. */ public void setOnCancelListener(OnCancelListener listener) { synchronized (this) { waitForCancelFinishedLocked(); if (mOnCancelListener == listener) { return; } mOnCancelListener = listener; if (!mIsCanceled || listener == null) { return; } } listener.onCancel(); } /** * Sets the remote transport. * * If {@link CancellationSignal#cancel} has already been called, then the provided * remote transport is canceled immediately. * * This method is guaranteed that the remote transport will not be called after it * has been removed. * * @param remote The remote transport, or null to remove. * * @hide */ public void setRemote(ICancellationSignal remote) { synchronized (this) { waitForCancelFinishedLocked(); if (mRemote == remote) { return; } mRemote = remote; if (!mIsCanceled || remote == null) { return; } } try { remote.cancel(); } catch (RemoteException ex) { } } private void waitForCancelFinishedLocked() { while (mCancelInProgress) { try { wait(); } catch (InterruptedException ex) { } } } /** * Creates a transport that can be returned back to the caller of * a Binder function and subsequently used to dispatch a cancellation signal. * * @return The new cancellation signal transport. * * @hide */ public static ICancellationSignal createTransport() { return new Transport(); } /** * Given a locally created transport, returns its associated cancellation signal. * * @param transport The locally created transport, or null if none. * @return The associated cancellation signal, or null if none. * * @hide */ public static CancellationSignal fromTransport(ICancellationSignal transport) { if (transport instanceof Transport) { return ((Transport)transport).mCancellationSignal; } return null; } /** * Listens for cancellation. */ public interface OnCancelListener { /** * Called when {@link CancellationSignal#cancel} is invoked. */ void onCancel(); } private static final class Transport extends ICancellationSignal.Stub { final CancellationSignal mCancellationSignal = new CancellationSignal(); @Override public void cancel() throws RemoteException { mCancellationSignal.cancel(); } } } |
Added sqlite3/src/main/java/org/sqlite/os/OperationCanceledException.java.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ** Modified to support SQLite extensions by the SQLite developers: ** sqlite-dev@sqlite.org. */ package org.sqlite.os; /** * An exception type that is thrown when an operation in progress is canceled. * * @see CancellationSignal */ public class OperationCanceledException extends RuntimeException { public OperationCanceledException() { this(null); } public OperationCanceledException(String message) { super(message != null ? message : "The operation has been canceled."); } } |
Changes to sqlite3test/build.gradle.
1 2 3 | apply plugin: 'com.android.application' android { | | < | > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | apply plugin: 'com.android.application' android { compileSdkVersion 15 buildToolsVersion "23.0.3" defaultConfig { applicationId "org.sqlite.customsqlitetest" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' |
︙ | ︙ |
Changes to sqlite3test/src/main/java/org/sqlite/customsqlitetest/MainActivity.java.
︙ | ︙ | |||
372 373 374 375 376 377 378 | test_result("see_test_2.5", db_is_encrypted(), "encrypted"); } public void run_the_tests(View view){ System.loadLibrary("sqliteX"); DB_PATH = getApplicationContext().getDatabasePath("test.db"); | | | 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 | test_result("see_test_2.5", db_is_encrypted(), "encrypted"); } public void run_the_tests(View view){ System.loadLibrary("sqliteX"); DB_PATH = getApplicationContext().getDatabasePath("test.db"); DB_PATH.mkdirs(); myTV.setText(""); myNErr = 0; myNTest = 0; try { report_version(); |
︙ | ︙ |