Commit Graph

438 Commits

Author SHA1 Message Date
Steve McKay
4677c2b7f0 Remove support for auto-paging of cursors.
Auto-paging of cursors is being removed in favor of a support lib component.
Rationale:
    1) Auto-paging as implemented has potential to negatively impact system health.
    2) Similar functionality w/o system health concerns can be provided
       specific to RecyclerView.

Test: Removed. CTS coverage updated.
Bug: 30927484
Change-Id: I43e62181d8ceeeba6265d44536967a2102751320
2017-04-12 13:51:50 -07:00
Tobias Thierer
8283da42a4 Merge "Document the fact that StatFs.restat() and ctor can throw." am: 183c93f6a0 am: e11ed001dd
am: a426851da0

Change-Id: Ife49443ed8e5e4e90723e4e46c0e8c48a6ee5547
2017-04-05 21:14:46 +00:00
Tobias Thierer
0ad48dc8aa Document the fact that StatFs.restat() and ctor can throw.
StatFs.restat() and the StatFs constructor can throw
IllegalArgumentException. This was not previously documented;
not all callers took this into account, for example:
   http://r.android.com/251290

This CL adds documentation to those methods. It also adds
comments to two of the callers.

Separately from this CL, we may in addition consider adding
new API StatFs.checkedRestat() and StatFs.checkedCreate()
or similar that throw IOException; we cannot change the
existing constructor and method since they are public.

Test: Checked that "make" still completed successfully.

Change-Id: I6a0b3cb7718939408937c61de7c3b000b948fa59
2017-04-05 20:52:04 +00:00
TreeHugger Robot
9a8eb3db62 Merge "Add honored args when auto-paging." 2017-03-28 03:26:01 +00:00
Steve McKay
d39da943da Add honored args when auto-paging.
Increase test coverage.

Test: Improved!
Change-Id: Icba97c5e821e6cb60157e0c8a5b204d0d2813bc8
2017-03-25 07:43:37 -07:00
Mike Tsao
c74ee2f8d3 Replace possibly-expensive size() == 0 with isEmpty()
Bug: 36596458
Change-Id: Ieb0ea65be056bb8ce0613280e6213c330fbf783c
Test: added ContentValuesTest
2017-03-24 15:10:41 -07:00
Steve McKay
57b0fe44e0 Verify paging is by auto-pager in CTS.
Remove VisibleForTesting (even though already committed)
  but oh well.

Test: CTS coverage expanded (in topic).
Change-Id: Ife75260dca298aea880f1c02a9578e691455fd91
2017-03-23 12:58:23 -07:00
Steve McKay
f3be60a6b3 Update PageViewCursor to correctly load window.
Bug: 36485764
Test: CTS updated and passing.
Change-Id: I2b615d97fdaedef441065889ce3a2988b718795c
2017-03-21 15:33:38 -07:00
Steve McKay
e5f868fd31 Adapt unpaged cursors to paged requests.
Allow all client targeting Android O to assume paging
    support for any provider.
Adds a new PageViewCursor that adapts an unpaged cursor
    to a paged request.
Updates ContentProviderNative to perform wrapping on
    unpaged results.

Bug: 30927484
Change-Id: I4e225dc16761793c85ef8a195bf049113c79cd20
Test: Added for new class. Run info @ frameworks/base/core/tests/coretests/README
2017-03-15 15:29:52 -07:00
Michael Wright
794cf190aa Also parse "1" as true for ContentValues#getAsBoolean
SQLite's internal representation for booleans is an integer with a value
of 0 or 1, so without this check, boolean values obtained via
DatabaseUtils#cursorRowToContentValues will always return false.

Bug: 34365384
Test: demo app, cts
Change-Id: I6c0829c992252ca5ee16bd5eac48668507fd4089
2017-01-19 16:19:28 +00:00
Suprabh Shukla
6222176963 Added minimum supported version in SQLiteOpenHelper
Added a convenience mechanism to delete the whole database if it is of
a version that is so old that the application does not want to support
upgrading it. SQLiteOpenHelper now automatically deletes such a database
and creates a fresh one with the newest version provided. A callback
onBeforeDelete is added if the application wants to collect some data
from the db before it is deleted.

Test: Tested by upgrading contacts database using ContactsDatabaseHelper

Bug: 31559016
Change-Id: I3f924d247cdca2015c4244cc987de2538a086651
2016-10-07 13:23:31 -07:00
Mark Lu
b920dc4968 docs: improve docs for sqlite package summary am: 59640a9f1c am: 195099dc32
am: 2f90f2c53a

Change-Id: I2f7c459d979e802996e60611c678c3dbf9ab2b3f
2016-09-26 17:53:18 +00:00
Mark Lu
1289f9919c docs: Update docs for SQLiteDatabase replace methods am: 1e20208d90 am: 5dc8052df6
am: 901e97e133

Change-Id: Ife8ddd36653e9e336b7bcd3f2e6bab251f015021
2016-09-26 17:46:25 +00:00
Hemal Patel
94f938a56f Fixed a typo in the code sample am: 247d1c9ea8 am: 9fa6e02d2d
am: 7829ef7cf0

Change-Id: Ic82a377c8d517c35697c1d27e038bbaec82c6598
2016-09-26 17:34:20 +00:00
Mark Lu
195099dc32 docs: improve docs for sqlite package summary
am: 59640a9f1c

Change-Id: I9ec1851274071cb1882839df68e27d1c9b98f8f7
2016-09-26 17:24:06 +00:00
Mark Lu
5dc8052df6 docs: Update docs for SQLiteDatabase replace methods
am: 1e20208d90

Change-Id: I8222fae7025d5a546b0b3d6b0ebbb7abae66ba8b
2016-09-26 17:22:45 +00:00
Hemal Patel
247d1c9ea8 Fixed a typo in the code sample
Bug: 6062536
Change-Id: I1f6a91534cf18b9fba4e00f3a4b84983f2c223a3
2016-09-16 15:28:42 -07:00
Mark Lu
1e20208d90 docs: Update docs for SQLiteDatabase replace methods
- Mention that if the row does not exist, the method performs insert
- Add parameter info for initialValues. It was incomplete

Bug: 2321632
2016-08-30 17:41:25 -07:00
Mark Lu
59640a9f1c docs: improve docs for sqlite package summary
- Update the sqlite version info
- Describe how to get sqlite version info
- Remove reference to out-of-date Notepad sample
- Update sqlite3 folder location and add link to relevant documentation

Bug: 30833403
Bug: 17393931
Change-Id: Ic58e88a119919f43ed90a70c559da8eacef4ebe0
2016-08-30 13:15:55 -07:00
Aurimas Liutikas
514c5ef8d5 Add missing @Deprecated annotations.
Add missing @Deprecated annotations for methods with @deprecated tag
in javadoc.

Change-Id: I35b78ccb97832d86b914c21a300444ba29e33844
2016-05-24 15:22:55 -07:00
Steve Pomeroy
c240b607f7 Fix documentation bug in SQLiteDatabase
The documentation incorrectly states that, "[insertWithOnConflict
returns] the primary key of the existing row if the input param
'conflictAlgorithm' = CONFLICT_IGNORE". Unfortunately, SQLite does
not provide such functionality.

Close: https://code.google.com/p/android/issues/detail?id=13045

Signed-off-by: Steve Pomeroy <steve@staticfree.info>

(cherry picked from commit 8fc3144fa5)

Change-Id: I89e56428e612d667259744e2bc3df124e5a2aa0e
2016-05-12 16:53:10 -07:00
Steve Pomeroy
88968cc3ba Merge "Fix documentation bug in SQLiteDatabase" am: 21d061ec2e
am: b654fae4db

* commit 'b654fae4dbff8b384ef3074ff762f0ed5b8b1034':
  Fix documentation bug in SQLiteDatabase

Change-Id: I8917758d9d0a41105be1adc596d3468cff22c739
2016-05-12 22:31:52 +00:00
Steve Pomeroy
8fc3144fa5 Fix documentation bug in SQLiteDatabase
The documentation incorrectly states that, "[insertWithOnConflict
returns] the primary key of the existing row if the input param
'conflictAlgorithm' = CONFLICT_IGNORE". Unfortunately, SQLite does
not provide such functionality.

Close: https://code.google.com/p/android/issues/detail?id=13045

Change-Id: Ife919c4dcf7bf703b692d338d1fb5844a532dd39
Signed-off-by: Steve Pomeroy <steve@staticfree.info>
2016-05-12 21:16:55 +00:00
Makoto Onuki
3443670828 Fix sqlite time measurement.
SystemClock.uptimeMillis() should be used to calculate duration.

Bug 28054535

Change-Id: Idadee1ee47cea22d58dba2163cb843402e39b196
2016-04-07 09:42:17 -07:00
Makoto Onuki
60df01c522 Merge "Add SQLiteDatabase.validateSql()" 2015-12-16 22:31:44 +00:00
Makoto Onuki
17aa1b7ac7 Add SQLiteDatabase.validateSql()
This API checks the SQL syntax by compiling it.  This is useful to
detect SQL injection, for example.

Change-Id: I956548a34f664950246856966e5601dcac3daf00
2015-12-16 14:18:28 -08:00
Greg Hackmann
e12350faf7 Trace SQLite operations
Inefficient SQLite use can have non-obvious effects on performance.  For
example, insert and update operations can trigger a surprising number of
fsync() calls, especially if they're not grouped together into
transactions.

Add tracepoints around SQLite operations, to make it easier to pinpoint
their effects on the rest of the system.

Change-Id: I30cc3d02eca264e46dcc09ca7512a32519543834
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2015-12-14 12:32:26 -08:00
Jeff Brown
bb8c841e90 Terminate loop properly when cursor window is full.
The existing code exits the column-filling loop immediately but
may continue to try to fill rows.  Ordinarily this should fail
too but it's possible for the process to continue and then
blow up a little later.  Fixed this problem by exiting the row-
filling loop promptly.

Bug: 21406130
Change-Id: Ifab59188d5d1b40f3c1f5c97604dd48da71bf37b
2015-06-01 16:33:24 -07:00
Andreas Gampe
0db3cdc59a am 5b0c0964: am fb861b6c: am 31fb202e: Merge "Frameworks/base: Compile-time optimize SQLiteConnection"
* commit '5b0c0964d843319b1b89767cd3d3f1daa984df51':
  Frameworks/base: Compile-time optimize SQLiteConnection
2015-04-22 00:23:51 +00:00
Andreas Gampe
4f47b40e05 Frameworks/base: Compile-time optimize SQLiteConnection
Do not cache compiled regular expression and date formatter. Both
cannot be compile-time created, are expensive at preloading time,
and only used in the rare case of dumping the connection (mainly
on errors).

Bug: 19498458
Bug: 19542228
Change-Id: Ia38491a3f852ccf699b815ff05289b338e932f2a
2015-04-21 16:01:00 -07:00
Jeff Brown
4e0951ef7a Expose Cursor.setExtras().
Bug: 19369537
Change-Id: I78e319667cbfaeb51f471d18c4fefeac01d49d80
2015-04-09 19:48:11 -07:00
Jeff Brown
8faab36fdd Clean up AbstractCursor API.
Deprecated three protected fields that should not have been
exposed in the API.

Bug: 6353797
Change-Id: Ic6710f880a452dd1508abf0613907a1d2b1fb557
2015-04-09 19:48:10 -07:00
Jeff Brown
4670513e70 Remove deprecated fields in AbstractCursor.
Bug: 6353797
Change-Id: Ibf760f0aeef82c176e3c659a2ced3de07f8e8abe
2015-04-09 19:48:10 -07:00
John Spurlock
bc4cf00dc5 Fix a few found doc problems.
Change-Id: I98567f4a0fc96f501c00bf361688e2c55232f78d
2015-03-24 21:51:20 -04:00
Narayan Kamath
3bdd327f85 Move apache specific portions of android.net.http to external/apache-http.
We continue to compile external/apache-http into ext.jar. This contains
a few changes apart fom the classes moving around :

- Makefile changes to build docs and api-stubs for now. A future change
  will revert these changes and remove these classes from stubs and
  docs.
- Hardcode event IDs in legacyerrorstrings to avoid a dependency between
  the frameworks and apache. These strings are on their way out and will
  never change anyway.
- Remove imports due to {@link} tags and use {@code} instead.
- Remove an accidental(?) dependency on apache commons code that's a
  part of apache-http.

bug: 18027885

Change-Id: I51cd038d846ec7d02c283a4541b10a6a9cf62ecf
2015-02-12 11:15:49 +00:00
Svetoslav
86b1df2343 Print services setting changes not handled for managed profiles.
We keep per user settings for enabled print services which are
observed to update the print manager service state. We were listening
to all user changes but the handling code was not updating the state
of the user whose settings changed, rather the current user.

Added hidden APIs in content observer to know which user changed
and now the print manager serivce handles content changes for the
correct user.

bug:16977006

Change-Id: I71ec88c8f3f38cb405844c13ab83695c2029eb79
2014-08-26 18:19:13 -07:00
Narayan Kamath
3bd2c6ffea am b4606676: am 49538def: am 79e0206e: Merge "Init the static member when first used for CursorWindow."
* commit 'b4606676a8e357f7b6de049099a04438f7c1b4eb':
  Init the static member when first used for CursorWindow.
2014-05-16 12:34:48 +00:00
Narayan Kamath
b4606676a8 am 49538def: am 79e0206e: Merge "Init the static member when first used for CursorWindow."
* commit '49538def98520eb57d4fb634bf09b2f3104e7953':
  Init the static member when first used for CursorWindow.
2014-05-16 12:29:59 +00:00
yingying
1ec4f36060 Init the static member when first used for CursorWindow.
As the CursorWindow will be preloaded by zygote, and there is one static
member need use the system resource to initialize. But actually the zygote
do not preload the resource now. (In fact, the zygote will preload classes
first, then preload the resource.) We need ensure the zygote to create the
system resource first.

So change to init this static member as -1, and it will be evaluated when
first used.

Change-Id: Ibccb84e3c410c73788ac682fe76b720306e81dc4
2014-05-07 23:00:28 +08:00
Jeff Brown
548061e5b6 am df8b604e: Merge "Fix NPE in deleteDatabase()." into klp-modular-dev
* commit 'df8b604e9bf49bcf9a620e4fe19ccf19c2c49487':
  Fix NPE in deleteDatabase().
2014-01-28 00:13:27 +00:00
Jeff Brown
fce5890a11 Fix NPE in deleteDatabase().
If the directory containing the database does not exist then
listFiles() will return null.  Tolerate this situation instead
of crashing.

Bug: 12600784
Change-Id: I5d83a867a5e8478f50887e5798b42c5f6859b77c
2014-01-24 13:20:57 -08:00
Narayan Kamath
ee864c0a04 am 55a12adc: am 72a8fe6d: am 74661ff1: am b5558817: am 002ae75b: Merge "AArch64: Use long for pointers"
* commit '55a12adc19b15df4068b90439dccb868534002c7':
  AArch64: Use long for pointers
2014-01-08 12:38:30 +00:00
Ashok Bhat
738702d28a AArch64: Use long for pointers
For storing pointers, long is used in CursorWindow
and SQLiteConnection classes as native pointers can
be 64-bit.

Change-Id: Ia686006a7b8bdc7b95e5de0d0a294b155034a921
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-08 11:53:21 +00:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Jeff Sharkey
b7757a6b32 Rename offer() to add(), remove/hide some APIs.
Change MatrixCursor offer() to add() based on review feedback.  Remove
some now-unused XML metadata.  Hide document creation, since it's not
supported in initial version.

Bug: 10577809, 10461706, 10678563
Change-Id: I7b3f4c6899c28f633471ef816bee22bf032aa0d2
2013-09-09 17:55:10 -07:00
Jeff Brown
511cd35fcc Docs changes pursuant to API review feedback.
Change-Id: I74c51791192f7fefad4e299d25c91438cbf6ab73
2013-08-23 17:44:47 -07:00
Jeff Sharkey
9d0843df7e Resized thumbnails; async; extend MatrixCursor.
When requesting thumbnails, check if their dimensions are larger
than requested, and downscale to avoid memory pressure.  Load them
async and with LruCache.

Extend MatrixCursor so that RowBuilder can offer() columns without
requiring they know the projection map.  This makes it easier to
respond to query() calls, where the remote side controls the
projection map.  Use it to handle custom projections in external
storage backend.

Update date/time formatting to match spec.

Bug: 10333418, 10331689
Change-Id: I7e947a8e8068af8a39b55e6766b3241de4f3fc16
2013-08-17 19:05:07 -07:00
Marco Nelissen
d6aa247155 am ca4553d3: am 7ffbcb28: am ca5d99ac: Merge "Guarantee that all db related files are deleted together."
* commit 'ca4553d33fe779dcdf2daad4590e4dbcfec7b62f':
  Guarantee that all db related files are deleted together.
2013-08-08 14:14:06 -07:00
Marco Nelissen
ca5d99ac41 Merge "Guarantee that all db related files are deleted together." 2013-08-07 15:30:51 +00:00
jangwon.lee
740c1dd97e Guarantee that all db related files are deleted together.
When deleting a db file, all db related files has to be deleted together
like journal, wal, shm etc.

Change-Id: I49d4581673d03fe669e9e0eaa2b50f7b9d3c34a4
Signed-off-by: jangwon.lee <jangwon.lee@lge.com>
2013-08-07 09:50:43 +09:00