FeedBurner makes it easy to receive content updates in My Yahoo!, Newsgator, Bloglines, and other news readers.
Learn more about syndication and FeedBurner...
Keystroke | Action |
h | Toggle the issue preview window. |
j or k | Select the next or previous issue. |
f, n, p, l | Scroll to the first, next, previous, or last comment in an issue. |
1, 2, 3, 4, 5 | Select a recent command. If you modify the command or comment, it will be stored in that numbered slot for later reuse. |
m | Focus on the command text field. |
e | Execute the command and show the issue comment that it generated. |
<link rel="stylesheet">
tag to specify the font you want, then add styles to your CSS that use the font.{ "name”: "Box Uploader", ... "file_browser_handlers": [ { "id”: "upload", "default_title": "Save to Gallery", // What the button will display "file_filters": [ ] } ],2. In the Chrome manifest, we specified the relevant file types to which the service applies. In our case, that's most file types, as seen below. Specialized services may just want certain types, such as images for Picasa.
"file_browser_handlers": [ { "id": "upload", "default_title": "Save to Box", "file_filters": [ "filesystem:*.*" ] } ],3. With some JavaScript code connecting to the file browser handler, we set up a way to upload files through Box’s Quick Importer.
var fm = new FileManager(); fm.uploadServer = 'https://www.box.net/<...>'; if (bgPage && bgPage.filesToUpload.length) { var entry; while(entry = bgPage.filesToUpload.pop()) { entry.file(function(file) { fm.uploadFile(file); }); } }That's actually all there was to the integration.
CountryProvider
, according to the format required by Android Search framework. This content provider consists of 238 country names."com.google.android.apps.gesturesearch.SEARCH"
and the URI of the content provider. If the data is protected (for example, see AndroidManifest.xml), we also need to grant read permission for the content URI to Gesture Search. We then call startActivityForResult
to invoke Gesture Search.public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, GESTURE_SEARCH_ID, 0, R.string.menu_gesture_search) .setShortcut('0', 'g').setIcon(android.R.drawable.ic_menu_search); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case GESTURE_SEARCH_ID: try { Intent intent = new Intent(); intent.setAction("com.google.android.apps.gesturesearch.SEARCH"); intent.setData(SuggestionProvider.CONTENT_URI); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.putExtra(SHOW_MODE, SHOW_ALL); intent.putExtra(THEME, THEME_LIGHT); startActivityForResult(intent, GESTURE_SEARCH_ID); } catch (ActivityNotFoundException e) { Log.e("GestureSearchExample", "Gesture Search is not installed"); } break; } return super.onOptionsItemSelected(item); }In the code snippet above, we also specify that we want to show all of the country names when Gesture Search is brought up by
intent.putExtra(SHOW_MODE, SHOW_ALL)
. The parameter name and its possible values are defined as follows:/** * Optionally, specify what should be shown when launching Gesture Search. * If this is not specified, SHOW_HISTORY will be used as a default value. */ private static String SHOW_MODE = "show"; /** Possible values for invoking mode */ // Show the visited items private static final int SHOW_HISTORY = 0; // Show nothing (a blank screen) private static final int SHOW_NONE = 1; // Show all of date items private static final int SHOW_ALL = 2; /** * The theme of Gesture Search can be light or dark. * By default, Gesture Search will use a dark theme. */ private static final String THEME = "theme"; private static final int THEME_LIGHT = 0; private static final int THEME_DARK = 1; /** Keys for results returned by Gesture Search */ private static final String SELECTED_ITEM_ID = "selected_item_id"; private static final String SELECTED_ITEM_NAME = "selected_item_name";As you can see in the code, when Gesture Search appears, we can show a recently selected country name, or nothing. Gesture Search then appears with a list of all the country names. The user can draw gestures directly on top of the list and a target item will pop up at the top. When a user taps a country name, Gesture Search exits and returns the result to the calling app. The following method is invoked for processing the user selection result, reading the Id and the name of the chosen data item.
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == Activity.RESULT_OK) { switch (requestCode) { case GESTURE_SEARCH_ID: long selectedItemId = data.getLongExtra(SELECTED_ITEM_ID, -1); String selectedItemName = data.getStringExtra(SELECTED_ITEM_NAME); // Print out the Id and name of the item that is selected // by the user in Gesture Search Log.d("GestureSearchExample", selectedItemId + ": " + selectedItemName); break; } } }To use the Gesture Search API, you must be sure Gesture Search is installed. To test this condition, catch
ActivityNotFoundException
as shown in the above code snippet and display a MessageBox asking the user to install Gesture Search. Cross-posted from the Google Checkout Blog
By Amit Fulay, Product Manager and Mikhail Seregine, Software Engineer
Cross-posted from the Google Apps Developer Blog
Google Tasks helps many of us to remember all those things that keep us busy. Towards the end of last year we asked our users what they wanted to see improved with Google Tasks and an overwhelming request was for the ability to access tasks from anywhere — be it on the move, on the desktop, or through their favorite Web apps.
Today, we’re checking off a big to-do from our list and are inviting you to try out the new Google Tasks API. Using the Google Tasks API, developers can — for the very first time — create rich applications which integrate directly with Google Tasks.
The Google Tasks API provides developers with a powerful set of API endpoints for retrieving and modifying Google Tasks content and metadata. It offers a simple, RESTful interface and supports all basic operations required to query, manage and sync a user’s tasks and task lists. The API uses JSON for data representation and works with multiple authentication mechanisms including OAuth 2.0.
Plain HTTP using JSON | Using Google API Client Library for Java |
POST /tasks/v1/lists/<list-ID>/tasks Content-Type: application/json ... { title: "Publish blog post" } | Task task = new Task(); task.setTitle("Publish blog post"); client.tasks.insert( "list-ID", task).execute(); |
Want to weigh in on this topic? Discuss on Buzz
Posted by Fabian Schlup & Nicolas Garnier Google Tasks API Team |
Sundar |
Linus |