This introduces basic infrastructure that should allow content
providers holding complex data to perform on-demand conversion
of their data to streams of various types. It is achieved through
two new content provider APIs, one to interrogate the possible
stream MIME types the provider can return, and the other to
request a stream of data in a particular MIME type.
Because implementations of this will often need to do on-demand
data conversion, there is also a utility intoduced in ContentProvider
for subclasses to easily run a function to write data into a
pipe that is read by the client.
This feature is mostly intended for cut and paste and drag and
drop, as the complex data interchange allowing the source and
destination to negotiate data types and copy (possible large)
data between them. However because it is fundamental facility
of ContentProvider, it can be used in other places, such as for
more advanced GET_CONTENT data exchanges.
An example implementation of this would be in ContactsProvider,
which can now provider a data stream when a client opens certain
pieces of it data, to return data as flat text, a vcard, or other
format.
Change-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2
This introduces a whole new way to use PreferenceActivity, as
a container for PreferenceFragments that the user can switch
between from a list of headers.
Change-Id: I1c79b7c78b86790dc460a1414a999aba5de80628
Merge commit 'c6d83cafed6e60223c28da328f845998e27bfae0'
* commit 'c6d83cafed6e60223c28da328f845998e27bfae0':
Fix a bug that could cause flings to last too long using a Scroller
Merge commit 'a0ae8bc5c62b12269f20cbebdb0d8614e4e8eb1a' into gingerbread-plus-aosp
* commit 'a0ae8bc5c62b12269f20cbebdb0d8614e4e8eb1a':
Fix a bug that could cause flings to last too long using a Scroller
Context menu entries have been moved to a contextual mode in the action bar.
Change Input Method has been removed and *should be added to the system bar instead*.
Add word to dictionnary has also been removed and should now be done using the suggestioni
bar "tap on word to add" feature.
Change-Id: I767373f53515b2d6a06500321b4b12ed0b05a9b6
Editable TextView now display a cursor controller under the insertion
point so that it can be precisely moved.
Change-Id: Ia2e6ddc57d249647ff6683e10e4226db3df27223
Prior to this change, every singleLine TextView would create, draw
and compose a layer on every draw dispatch. This was unnecessary and
expensive.
Change-Id: Ia4f79d7fc8f485784fe6b795f0f196d38d579838
Merge commit 'b29e3b9cd00ced686a74121d3ca9c7380754793f' into gingerbread-plus-aosp
* commit 'b29e3b9cd00ced686a74121d3ca9c7380754793f':
Change CursorTreeAdapter to close the cursors rather than deactivating them. Fix SimpleCursorTreeAdapter to allow a null cursor as an argument.
Not closing the cursors was a bit of a bug since the documenation explicitly says that it would close the cursors. This will get rid of all the warnings that are printed out in the finalizer about the cursor not being closed.
Not closing the cursors was a bit of a bug since the documenation explicitly says that it would close the cursors. This will get rid of all the warnings that are printed out in the finalizer about the cursor not being closed.
Change-Id: I8dcedbdf7378cea7407502445269b5b0bded1a3d
Merge commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7'
* commit 'bc337d2f675e8417be5534439e1b4ed1bc45a9c7':
Fix a bug where requestDisallowInterceptTouchEvent does not get called
Minor changes in the Adapters.java helper class.
Extracts data out of a XML document using an XPath-like syntax.
Change-Id: I0617b0783f11c86118b42cd8485d54440810c805
Merge commit '73ccafb5b843cdcf9c8f761fc72a69b4b7942aaf' into gingerbread-plus-aosp
* commit '73ccafb5b843cdcf9c8f761fc72a69b4b7942aaf':
Fix a bug where requestDisallowInterceptTouchEvent does not get called
Previous CL https://android-git.corp.google.com/g/55138 was submitted
before the suggested change was uploaded.
setSelection() was called twice by onTouchEvent, once to the previous
position, and then to the new position (unless the IME got displayed,
so that in that case the cursor is not moved).
The second call was actually triggering a call for a scroll of 0 since
the view is already displaying the cursor. This scroll is filtered out by a
shortcut in ScrollView. The first setSelection's scroll does not have
the same issue (since the previous cursor's position is out of screen
and requires a scroll) and it is then applied, effectively moving the cursor
to a new position but scrolling to the previous position.
The fix is to call setSelection only once, after the IME has been asked
to display. The cursor is moved to the old/new position depending on the
resultCode in onReceiveResult in CommitSelectionReceiver.
Bug: http://b/issue?id=2778954
Change-Id: I157d7ae451574e8a6fffb894eb1d6880acfe01d1
setSelection() was called twice by onTouchEvent, once to the previous
position, and then to the new position (unless the IME got displayed,
so that in that case the cursor is not moved).
The second call was actually triggering a call for a scroll of 0 since
view is already displaying the cursor. This scroll is filtered out by a
shortcut in ScrollView. The first setSelection's scroll does not have
the same issue (since the previous cursor's position is out of screen
and requires a scroll) and it then applied, effectively moving the cursor
to a new position but the scrolling to the previous position.
The fix is to call setSelection only once, after the IME has been asked
to display. The cursor is moved to the old/new position depending on the
resultCode in onReceiveResult in CommitSelectionReceiver.
Bug: http://b/issue?id=2778954
Change-Id: I0983fdf18993e63b230e093e703f95efe6e2d7a8
onLoadClass(Class ) was replaced by onLoadClass(Class<?> ) in CL 54712.
This changes the API and may introduce errors in users' implementations.
Change reverted.
Change-Id: Ie578a444168423959b44857f22e13f004e108965