Gmail Android App Gets 'Gmail Public Labels API'; Hanging Fiber on Utility Poles in Full Swing; Master/Slave Datastore Deprecates in favor of High-Replication Datastore

Google rolling out a new developer features for the Gmail Android app: "It now includes a public ContentProvider that you can use to retrieve label data," informs Tim Bray on Android developers team blog. This new feature is contained inside of the Gmail Public Labels API. To use the API, the Gmail app needs to […]

Gmail Android App Getting New Developer Features

Google rolling out a new developer features for the Gmail Android app: "It now includes a public ContentProvider that you can use to retrieve label data," informs Tim Bray on Android developers team blog.

This new feature is contained inside of the Gmail Public Labels API. To use the API, the Gmail app needs to be at version 2.3.6 or higher on Froyo or Gingerbread; 4.0.5 or higher on Honeycomb and Ice Cream Sandwich.

You can use this to access up-to-date unread counts for specific accounts' inboxes and labels.

Before using it, be sure you first check the Gmail app version. Google provided a handy GmailContract.canReadLabels(Context) method to help with this. Your app will need the com.google.android.gm.permission.READ_CONTENT_PROVIDER permission.

To get started, you're going to need a valid Gmail account to build the query for per-label information. You can obtain this through the AccountManager code which can be seen below:

After completing that step, use a ContentProvider URI to query against. Google has created a support class called GmailContact.java to help you in constructing the URI. This allows you to access any label within Gmail including priority inbox, starred, chats, sent, drafts, all mail, spam and trash.

Finally, developers can obtain a Cursor with information on all the labels. You can do this through either a query against the URI or use a CursorLoader. Google also cautions against identifying labels with GmailContract.Labels.NAME, saying that the NAME value can vary by locale. Instead, you should use GmailContract.Labels.CANONICAL_NAME. If you choose the CursorLoader route, Google says it will keep the "label counts up to date as they change over time."

You can find a sample app that makes use of the new API here. The app provides a basic readout of label and message-count information.

In other Google news, Google Fibre team just announced that construction hanging fiber on utility poles throughout Kansas City, KS and Kansas City, MO, is now in full swing and our crews have already hung over 100 miles of fiber!"

To get a better idea of how the build has been going so far, Rachel Hack, Community Manager, Google Fiber talked to John Toccalino, a manager on fiber project and asked him a few questions.

Q: So, John, first can you give a quick explanation about how Google Fiber will work?

A: Sure. Here's a basic diagram of our network. As you can see, we'll be routing fiber connection into Kansas City, KS and Kansas City, MO through several equipment aggregator huts, aka "Google Fiber Huts." From the Google Fiber Huts, the fiber cables will travel along utility poles into neighborhoods and homes.

The benefit of this model is simple: every home that has Google Fiber service will have their very own fiber-optic cable that directly connects all the way back to the Internet backbone.

a diagram of the basic google fiber infrastructure

Also, after almost 4 years after launch, Google announced the deprecation of the Master/Slave Datastore in favor of the High-Replication Datastore (HRD).

"HRD has provided us with higher availability and better, more predictable performance. Many upcoming features will be HRD-only and we strongly encourage you to migrate all your applications as soon as possible using the migration tools found in the Application Settings tab of the Administration Console," notes Max Ross, on behalf of the App Engine Datastore Team.

The deprecation period will follow the guidelines set in the terms of service.