Merge "Settings shows it is connected to A2DP, though the device is not actually connected" into jb-mr1.1-dev
diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java
index 787fbdb..070e105 100644
--- a/cmds/content/src/com/android/commands/content/Content.java
+++ b/cmds/content/src/com/android/commands/content/Content.java
@@ -83,14 +83,14 @@
+ " Example:\n"
+ " # Change \"new_setting\" secure setting to \"newer_value\".\n"
+ " adb shell content update --uri content://settings/secure --bind"
- + " value:s:newer_value --where \"name=\'new_setting\'\"\n"
+ + " value:s:newer_value --where \"name=\\'new_setting\\'\"\n"
+ "\n"
+ "usage: adb shell content delete --uri <URI> [--user <USER_ID>] --bind <BINDING>"
+ " [--bind <BINDING>...] [--where <WHERE>]\n"
+ " Example:\n"
+ " # Remove \"new_setting\" secure setting.\n"
+ " adb shell content delete --uri content://settings/secure "
- + "--where \"name=\'new_setting\'\"\n"
+ + "--where \"name=\\'new_setting\\'\"\n"
+ "\n"
+ "usage: adb shell content query --uri <URI> [--user <USER_ID>]"
+ " [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]\n"
@@ -101,7 +101,7 @@
+ " # Select \"name\" and \"value\" columns from secure settings where \"name\" is "
+ "equal to \"new_setting\" and sort the result by name in ascending order.\n"
+ " adb shell content query --uri content://settings/secure --projection name:value"
- + " --where \"name=\'new_setting\'\" --sort \"name ASC\"\n"
+ + " --where \"name=\\'new_setting\\'\" --sort \"name ASC\"\n"
+ "\n";
private static class Parser {
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 67d3930..61b2067 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -1701,6 +1701,21 @@
return true;
}
+ case GET_INTENT_FOR_INTENT_SENDER_TRANSACTION: {
+ data.enforceInterface(IActivityManager.descriptor);
+ IIntentSender r = IIntentSender.Stub.asInterface(
+ data.readStrongBinder());
+ Intent intent = getIntentForIntentSender(r);
+ reply.writeNoException();
+ if (intent != null) {
+ reply.writeInt(1);
+ intent.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
+ } else {
+ reply.writeInt(0);
+ }
+ return true;
+ }
+
case UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
Configuration config = Configuration.CREATOR.createFromParcel(data);
@@ -3977,6 +3992,20 @@
return res;
}
+ public Intent getIntentForIntentSender(IIntentSender sender) throws RemoteException {
+ Parcel data = Parcel.obtain();
+ Parcel reply = Parcel.obtain();
+ data.writeInterfaceToken(IActivityManager.descriptor);
+ data.writeStrongBinder(sender.asBinder());
+ mRemote.transact(GET_INTENT_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0);
+ reply.readException();
+ Intent res = reply.readInt() != 0
+ ? Intent.CREATOR.createFromParcel(reply) : null;
+ data.recycle();
+ reply.recycle();
+ return res;
+ }
+
public void updatePersistentConfiguration(Configuration values) throws RemoteException
{
Parcel data = Parcel.obtain();
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index 8fc1c86..8af17a4 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -341,6 +341,8 @@
public boolean isIntentSenderAnActivity(IIntentSender sender) throws RemoteException;
+ public Intent getIntentForIntentSender(IIntentSender sender) throws RemoteException;
+
public void updatePersistentConfiguration(Configuration values) throws RemoteException;
public long[] getProcessPss(int[] pids) throws RemoteException;
@@ -621,4 +623,5 @@
int REQUEST_BUG_REPORT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+157;
int INPUT_DISPATCHING_TIMED_OUT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+158;
int CLEAR_PENDING_BACKUP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+159;
+ int GET_INTENT_FOR_INTENT_SENDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+160;
}
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index e79b214..8f8df0a 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -95,16 +95,16 @@
/**
* A timestamp related to this notification, in milliseconds since the epoch.
- *
+ *
* Default value: {@link System#currentTimeMillis() Now}.
*
* Choose a timestamp that will be most relevant to the user. For most finite events, this
* corresponds to the time the event happened (or will happen, in the case of events that have
* yet to occur but about which the user is being informed). Indefinite events should be
- * timestamped according to when the activity began.
- *
+ * timestamped according to when the activity began.
+ *
* Some examples:
- *
+ *
* <ul>
* <li>Notification of a new chat message should be stamped when the message was received.</li>
* <li>Notification of an ongoing file download (with a progress bar, for example) should be stamped when the download started.</li>
@@ -112,8 +112,8 @@
* <li>Notification of an upcoming meeting should be stamped with the time the meeting will begin (that is, in the future).</li>
* <li>Notification of an ongoing stopwatch (increasing timer) should be stamped with the watch's start time.
* <li>Notification of an ongoing countdown timer should be stamped with the timer's end time.
- * </ul>
- *
+ * </ul>
+ *
*/
public long when;
@@ -135,13 +135,13 @@
/**
* The number of events that this notification represents. For example, in a new mail
* notification, this could be the number of unread messages.
- *
+ *
* The system may or may not use this field to modify the appearance of the notification. For
* example, before {@link android.os.Build.VERSION_CODES#HONEYCOMB}, this number was
* superimposed over the icon in the status bar. Starting with
* {@link android.os.Build.VERSION_CODES#HONEYCOMB}, the template used by
* {@link Notification.Builder} has displayed the number in the expanded notification view.
- *
+ *
* If the number is 0 or negative, it is never shown.
*/
public int number;
@@ -343,7 +343,7 @@
/**
* Obsolete flag indicating high-priority notifications; use the priority field instead.
- *
+ *
* @deprecated Use {@link #priority} with a positive value.
*/
public static final int FLAG_HIGH_PRIORITY = 0x00000080;
@@ -384,15 +384,15 @@
/**
* Relative priority for this notification.
- *
+ *
* Priority is an indication of how much of the user's valuable attention should be consumed by
* this notification. Low-priority notifications may be hidden from the user in certain
* situations, while the user might be interrupted for a higher-priority notification. The
- * system will make a determination about how to interpret notification priority as described in
- * MUMBLE MUMBLE.
+ * system will make a determination about how to interpret this priority when presenting
+ * the notification.
*/
public int priority;
-
+
/**
* @hide
* Notification type: incoming call (voice or video) or similar synchronous communication request.
@@ -643,7 +643,7 @@
that.flags = this.flags;
that.priority = this.priority;
-
+
final String[] thiskind = this.kind;
if (thiskind != null) {
final int N = thiskind.length;
@@ -742,9 +742,9 @@
}
parcel.writeInt(priority);
-
+
parcel.writeStringArray(kind); // ok for null
-
+
if (extras != null) {
parcel.writeInt(1);
extras.writeToParcel(parcel, 0);
@@ -846,7 +846,9 @@
}
// TODO(dsandler): defaults take precedence over local values, so reorder the branches below
sb.append(" vibrate=");
- if (this.vibrate != null) {
+ if ((this.defaults & DEFAULT_VIBRATE) != 0) {
+ sb.append("default");
+ } else if (this.vibrate != null) {
int N = this.vibrate.length-1;
sb.append("[");
for (int i=0; i<N; i++) {
@@ -857,16 +859,14 @@
sb.append(this.vibrate[N]);
}
sb.append("]");
- } else if ((this.defaults & DEFAULT_VIBRATE) != 0) {
- sb.append("default");
} else {
sb.append("null");
}
sb.append(" sound=");
- if (this.sound != null) {
- sb.append(this.sound.toString());
- } else if ((this.defaults & DEFAULT_SOUND) != 0) {
+ if ((this.defaults & DEFAULT_SOUND) != 0) {
sb.append("default");
+ } else if (this.sound != null) {
+ sb.append(this.sound.toString());
} else {
sb.append("null");
}
@@ -912,16 +912,16 @@
/**
* Builder class for {@link Notification} objects.
- *
+ *
* Provides a convenient way to set the various fields of a {@link Notification} and generate
* content views using the platform's notification layout template. If your app supports
* versions of Android as old as API level 4, you can instead use
* {@link android.support.v4.app.NotificationCompat.Builder NotificationCompat.Builder},
* available in the <a href="{@docRoot}tools/extras/support-library.html">Android Support
* library</a>.
- *
+ *
* <p>Example:
- *
+ *
* <pre class="prettyprint">
* Notification noti = new Notification.Builder(mContext)
* .setContentTitle("New mail from " + sender.toString())
@@ -1021,8 +1021,8 @@
/**
* Show the {@link Notification#when} field as a stopwatch.
- *
- * Instead of presenting <code>when</code> as a timestamp, the notification will show an
+ *
+ * Instead of presenting <code>when</code> as a timestamp, the notification will show an
* automatically updating display of the minutes and seconds since <code>when</code>.
*
* Useful when showing an elapsed time (like an ongoing phone call).
@@ -1088,7 +1088,7 @@
}
/**
- * Set the third line of text in the platform notification template.
+ * Set the third line of text in the platform notification template.
* Don't use if you're also using {@link #setProgress(int, int, boolean)}; they occupy the same location in the standard template.
*/
public Builder setSubText(CharSequence text) {
@@ -1350,12 +1350,12 @@
mPriority = pri;
return this;
}
-
+
/**
* @hide
- *
+ *
* Add a kind (category) to this notification. Optional.
- *
+ *
* @see Notification#kind
*/
public Builder addKind(String k) {
@@ -1381,6 +1381,8 @@
/**
* Add an action to this notification. Actions are typically displayed by
* the system as a button adjacent to the notification content.
+ * <br>
+ * A notification displays up to 3 actions, from left to right in the order they were added.
*
* @param icon Resource ID of a drawable that represents the action.
* @param title Text describing the action.
@@ -1563,7 +1565,7 @@
private RemoteViews generateActionButton(Action action) {
final boolean tombstone = (action.actionIntent == null);
- RemoteViews button = new RemoteViews(mContext.getPackageName(),
+ RemoteViews button = new RemoteViews(mContext.getPackageName(),
tombstone ? R.layout.notification_action_tombstone
: R.layout.notification_action);
button.setTextViewCompoundDrawables(R.id.action0, action.icon, 0, 0, 0);
@@ -1722,7 +1724,7 @@
/**
* Helper class for generating large-format notifications that include a large image attachment.
- *
+ *
* This class is a "rebuilder": It consumes a Builder object and modifies its behavior, like so:
* <pre class="prettyprint">
* Notification noti = new Notification.BigPictureStyle(
@@ -1734,7 +1736,7 @@
* .bigPicture(aBigBitmap)
* .build();
* </pre>
- *
+ *
* @see Notification#bigContentView
*/
public static class BigPictureStyle extends Style {
@@ -1805,7 +1807,7 @@
/**
* Helper class for generating large-format notifications that include a lot of text.
- *
+ *
* This class is a "rebuilder": It consumes a Builder object and modifies its behavior, like so:
* <pre class="prettyprint">
* Notification noti = new Notification.BigTextStyle(
@@ -1817,7 +1819,7 @@
* .bigText(aVeryLongString)
* .build();
* </pre>
- *
+ *
* @see Notification#bigContentView
*/
public static class BigTextStyle extends Style {
@@ -1862,7 +1864,7 @@
mBuilder.mContentText = null;
RemoteViews contentView = getStandardView(R.layout.notification_template_big_text);
-
+
if (hadThreeLines) {
// vertical centering
contentView.setViewPadding(R.id.line1, 0, 0, 0, 0);
@@ -1886,7 +1888,7 @@
/**
* Helper class for generating large-format notifications that include a list of (up to 5) strings.
- *
+ *
* This class is a "rebuilder": It consumes a Builder object and modifies its behavior, like so:
* <pre class="prettyprint">
* Notification noti = new Notification.InboxStyle(
@@ -1901,7 +1903,7 @@
* .setSummaryText("+3 more")
* .build();
* </pre>
- *
+ *
* @see Notification#bigContentView
*/
public static class InboxStyle extends Style {
diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java
index d36d99d..5c75aff 100644
--- a/core/java/android/app/PendingIntent.java
+++ b/core/java/android/app/PendingIntent.java
@@ -790,6 +790,20 @@
}
/**
+ * @hide
+ * Return the Intent of this PendingIntent.
+ */
+ public Intent getIntent() {
+ try {
+ return ActivityManagerNative.getDefault()
+ .getIntentForIntentSender(mTarget);
+ } catch (RemoteException e) {
+ // Should never happen.
+ return null;
+ }
+ }
+
+ /**
* Comparison operator on two PendingIntent objects, such that true
* is returned then they both represent the same operation from the
* same package. This allows you to use {@link #getActivity},
diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java
index 43a163d..6382cee 100644
--- a/core/java/android/app/SearchManager.java
+++ b/core/java/android/app/SearchManager.java
@@ -858,6 +858,9 @@
*/
public Intent getAssistIntent(Context context, int userHandle) {
try {
+ if (mService == null) {
+ return null;
+ }
ComponentName comp = mService.getAssistIntent(userHandle);
if (comp == null) {
return null;
diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java
index cb61a71..24fd2e4 100644
--- a/core/java/android/appwidget/AppWidgetHost.java
+++ b/core/java/android/appwidget/AppWidgetHost.java
@@ -224,6 +224,22 @@
}
}
+ /**
+ * Gets a list of all the appWidgetIds that are bound to the current host
+ *
+ * @hide
+ */
+ public int[] getAppWidgetIds() {
+ try {
+ if (sService == null) {
+ bindService();
+ }
+ return sService.getAppWidgetIdsForHost(mHostId);
+ } catch (RemoteException e) {
+ throw new RuntimeException("system server dead?", e);
+ }
+ }
+
private static void checkCallerIsSystem() {
int uid = Process.myUid();
if (UserHandle.getAppId(uid) == Process.SYSTEM_UID || uid == 0) {
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index 977b461..e4b4b97 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -58,6 +58,7 @@
import android.util.Slog;
import com.android.internal.R;
+import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.IndentingPrintWriter;
import com.google.android.collect.Lists;
import com.google.android.collect.Maps;
@@ -155,7 +156,7 @@
private SyncStorageEngine mSyncStorageEngine;
- // @GuardedBy("mSyncQueue")
+ @GuardedBy("mSyncQueue")
private final SyncQueue mSyncQueue;
protected final ArrayList<ActiveSyncContext> mActiveSyncContexts = Lists.newArrayList();
diff --git a/core/java/android/content/SyncStorageEngine.java b/core/java/android/content/SyncStorageEngine.java
index 10e7bff..bdc5a3f 100644
--- a/core/java/android/content/SyncStorageEngine.java
+++ b/core/java/android/content/SyncStorageEngine.java
@@ -16,6 +16,7 @@
package android.content;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FastXmlSerializer;
@@ -74,7 +75,7 @@
private static final long DEFAULT_POLL_FREQUENCY_SECONDS = 60 * 60 * 24; // One day
- // @VisibleForTesting
+ @VisibleForTesting
static final long MILLIS_IN_4WEEKS = 1000L * 60 * 60 * 24 * 7 * 4;
/** Enum value for a sync start event. */
diff --git a/core/java/android/content/pm/RegisteredServicesCache.java b/core/java/android/content/pm/RegisteredServicesCache.java
index 6def4a1..a07a865 100644
--- a/core/java/android/content/pm/RegisteredServicesCache.java
+++ b/core/java/android/content/pm/RegisteredServicesCache.java
@@ -34,6 +34,7 @@
import android.util.SparseArray;
import android.util.Xml;
+import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.FastXmlSerializer;
import com.google.android.collect.Lists;
import com.google.android.collect.Maps;
@@ -77,15 +78,15 @@
private final Object mServicesLock = new Object();
- // @GuardedBy("mServicesLock")
+ @GuardedBy("mServicesLock")
private boolean mPersistentServicesFileDidNotExist;
- // @GuardedBy("mServicesLock")
+ @GuardedBy("mServicesLock")
private final SparseArray<UserServices<V>> mUserServices = new SparseArray<UserServices<V>>();
private static class UserServices<V> {
- // @GuardedBy("mServicesLock")
+ @GuardedBy("mServicesLock")
public final Map<V, Integer> persistentServices = Maps.newHashMap();
- // @GuardedBy("mServicesLock")
+ @GuardedBy("mServicesLock")
public Map<V, ServiceInfo<V>> services = null;
}
diff --git a/core/java/android/hardware/display/WifiDisplay.java b/core/java/android/hardware/display/WifiDisplay.java
index 0138b1c..2fd52b8 100644
--- a/core/java/android/hardware/display/WifiDisplay.java
+++ b/core/java/android/hardware/display/WifiDisplay.java
@@ -107,6 +107,15 @@
&& Objects.equal(mDeviceAlias, other.mDeviceAlias);
}
+ /**
+ * Returns true if the other display is not null and has the same address as this one.
+ * Can be used to perform identity comparisons on displays ignoring properties
+ * that might change during a connection such as the name or alias.
+ */
+ public boolean hasSameAddress(WifiDisplay other) {
+ return other != null && mDeviceAddress.equals(other.mDeviceAddress);
+ }
+
@Override
public int hashCode() {
// The address on its own should be sufficiently unique for hashing purposes.
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index f07002e..6f1cc94 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -930,11 +930,13 @@
*/
public void onConfigureWindow(Window win, boolean isFullscreen,
boolean isCandidatesOnly) {
- if (isFullscreen) {
- mWindow.getWindow().setLayout(MATCH_PARENT, MATCH_PARENT);
- } else {
- mWindow.getWindow().setLayout(MATCH_PARENT, WRAP_CONTENT);
+ final int currentHeight = mWindow.getWindow().getAttributes().height;
+ final int newHeight = isFullscreen ? MATCH_PARENT : WRAP_CONTENT;
+ if (mIsInputViewShown && currentHeight != newHeight) {
+ Log.w(TAG, "Window size has been changed. This may cause jankiness of resizing window: "
+ + currentHeight + " -> " + newHeight);
}
+ mWindow.getWindow().setLayout(MATCH_PARENT, newHeight);
}
/**
@@ -997,10 +999,11 @@
}
void updateExtractFrameVisibility() {
- int vis;
+ final int vis;
if (isFullscreenMode()) {
vis = mExtractViewHidden ? View.INVISIBLE : View.VISIBLE;
- mExtractFrame.setVisibility(View.VISIBLE);
+ // "vis" should be applied for the extract frame as well in the fullscreen mode.
+ mExtractFrame.setVisibility(vis);
} else {
vis = View.VISIBLE;
mExtractFrame.setVisibility(View.GONE);
diff --git a/core/java/android/net/NetworkStats.java b/core/java/android/net/NetworkStats.java
index 446bbf0..c757605 100644
--- a/core/java/android/net/NetworkStats.java
+++ b/core/java/android/net/NetworkStats.java
@@ -21,6 +21,7 @@
import android.os.SystemClock;
import android.util.SparseBooleanArray;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.Objects;
@@ -190,14 +191,14 @@
return clone;
}
- // @VisibleForTesting
+ @VisibleForTesting
public NetworkStats addIfaceValues(
String iface, long rxBytes, long rxPackets, long txBytes, long txPackets) {
return addValues(
iface, UID_ALL, SET_DEFAULT, TAG_NONE, rxBytes, rxPackets, txBytes, txPackets, 0L);
}
- // @VisibleForTesting
+ @VisibleForTesting
public NetworkStats addValues(String iface, int uid, int set, int tag, long rxBytes,
long rxPackets, long txBytes, long txPackets, long operations) {
return addValues(new Entry(
@@ -269,7 +270,7 @@
return size;
}
- // @VisibleForTesting
+ @VisibleForTesting
public int internalSize() {
return iface.length;
}
@@ -335,7 +336,7 @@
* Find first stats index that matches the requested parameters, starting
* search around the hinted index as an optimization.
*/
- // @VisibleForTesting
+ @VisibleForTesting
public int findIndexHinted(String iface, int uid, int set, int tag, int hintIndex) {
for (int offset = 0; offset < size; offset++) {
final int halfOffset = offset / 2;
diff --git a/core/java/android/net/NetworkTemplate.java b/core/java/android/net/NetworkTemplate.java
index d8e53d5..d3839ad 100644
--- a/core/java/android/net/NetworkTemplate.java
+++ b/core/java/android/net/NetworkTemplate.java
@@ -33,6 +33,7 @@
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.Objects;
/**
@@ -63,7 +64,7 @@
private static boolean sForceAllNetworkTypes = false;
- // @VisibleForTesting
+ @VisibleForTesting
public static void forceAllNetworkTypes() {
sForceAllNetworkTypes = true;
}
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index 54f2fe3..9821824 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -18,6 +18,8 @@
import java.io.PrintWriter;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Formatter;
import java.util.List;
import java.util.Map;
@@ -1127,8 +1129,10 @@
if (totalTimeMillis != 0) {
sb.append(linePrefix);
formatTimeMs(sb, totalTimeMillis);
- if (name != null) sb.append(name);
- sb.append(' ');
+ if (name != null) {
+ sb.append(name);
+ sb.append(' ');
+ }
sb.append('(');
sb.append(count);
sb.append(" times)");
@@ -1440,8 +1444,21 @@
}
}
+ static final class TimerEntry {
+ final String mName;
+ final int mId;
+ final BatteryStats.Timer mTimer;
+ final long mTime;
+ TimerEntry(String name, int id, BatteryStats.Timer timer, long time) {
+ mName = name;
+ mId = id;
+ mTimer = timer;
+ mTime = time;
+ }
+ }
+
@SuppressWarnings("unused")
- public final void dumpLocked(PrintWriter pw, String prefix, int which, int reqUid) {
+ public final void dumpLocked(PrintWriter pw, String prefix, final int which, int reqUid) {
final long rawUptime = SystemClock.uptimeMillis() * 1000;
final long rawRealtime = SystemClock.elapsedRealtime() * 1000;
final long batteryUptime = getBatteryUptime(rawUptime);
@@ -1516,19 +1533,43 @@
long txTotal = 0;
long fullWakeLockTimeTotalMicros = 0;
long partialWakeLockTimeTotalMicros = 0;
-
+
+ final Comparator<TimerEntry> timerComparator = new Comparator<TimerEntry>() {
+ @Override
+ public int compare(TimerEntry lhs, TimerEntry rhs) {
+ long lhsTime = lhs.mTime;
+ long rhsTime = rhs.mTime;
+ if (lhsTime < rhsTime) {
+ return 1;
+ }
+ if (lhsTime > rhsTime) {
+ return -1;
+ }
+ return 0;
+ }
+ };
+
if (reqUid < 0) {
Map<String, ? extends BatteryStats.Timer> kernelWakelocks = getKernelWakelockStats();
if (kernelWakelocks.size() > 0) {
+ final ArrayList<TimerEntry> timers = new ArrayList<TimerEntry>();
for (Map.Entry<String, ? extends BatteryStats.Timer> ent : kernelWakelocks.entrySet()) {
-
+ BatteryStats.Timer timer = ent.getValue();
+ long totalTimeMillis = computeWakeLock(timer, batteryRealtime, which);
+ if (totalTimeMillis > 0) {
+ timers.add(new TimerEntry(ent.getKey(), 0, timer, totalTimeMillis));
+ }
+ }
+ Collections.sort(timers, timerComparator);
+ for (int i=0; i<timers.size(); i++) {
+ TimerEntry timer = timers.get(i);
String linePrefix = ": ";
sb.setLength(0);
sb.append(prefix);
sb.append(" Kernel Wake lock ");
- sb.append(ent.getKey());
- linePrefix = printWakeLock(sb, ent.getValue(), batteryRealtime, null, which,
- linePrefix);
+ sb.append(timer.mName);
+ linePrefix = printWakeLock(sb, timer.mTimer, batteryRealtime, null,
+ which, linePrefix);
if (!linePrefix.equals(": ")) {
sb.append(" realtime");
// Only print out wake locks that were held
@@ -1537,7 +1578,9 @@
}
}
}
-
+
+ final ArrayList<TimerEntry> timers = new ArrayList<TimerEntry>();
+
for (int iu = 0; iu < NU; iu++) {
Uid u = uidStats.valueAt(iu);
rxTotal += u.getTcpBytesReceived(which);
@@ -1557,8 +1600,18 @@
Timer partialWakeTimer = wl.getWakeTime(WAKE_TYPE_PARTIAL);
if (partialWakeTimer != null) {
- partialWakeLockTimeTotalMicros += partialWakeTimer.getTotalTimeLocked(
+ long totalTimeMicros = partialWakeTimer.getTotalTimeLocked(
batteryRealtime, which);
+ if (totalTimeMicros > 0) {
+ if (reqUid < 0) {
+ // Only show the ordered list of all wake
+ // locks if the caller is not asking for data
+ // about a specific uid.
+ timers.add(new TimerEntry(ent.getKey(), u.getUid(),
+ partialWakeTimer, totalTimeMicros));
+ }
+ partialWakeLockTimeTotalMicros += totalTimeMicros;
+ }
}
}
}
@@ -1571,7 +1624,7 @@
sb.append(prefix);
sb.append(" Total full wakelock time: "); formatTimeMs(sb,
(fullWakeLockTimeTotalMicros + 500) / 1000);
- sb.append(", Total partial waklock time: "); formatTimeMs(sb,
+ sb.append(", Total partial wakelock time: "); formatTimeMs(sb,
(partialWakeLockTimeTotalMicros + 500) / 1000);
pw.println(sb.toString());
@@ -1676,9 +1729,26 @@
pw.println(getDischargeAmountScreenOnSinceCharge());
pw.print(prefix); pw.print(" Amount discharged while screen off: ");
pw.println(getDischargeAmountScreenOffSinceCharge());
- pw.println(" ");
+ pw.println();
}
-
+
+ if (timers.size() > 0) {
+ Collections.sort(timers, timerComparator);
+ pw.print(prefix); pw.println(" All partial wake locks:");
+ for (int i=0; i<timers.size(); i++) {
+ TimerEntry timer = timers.get(i);
+ sb.setLength(0);
+ sb.append(" Wake lock #");
+ sb.append(timer.mId);
+ sb.append(" ");
+ sb.append(timer.mName);
+ printWakeLock(sb, timer.mTimer, batteryRealtime, null, which, ": ");
+ sb.append(" realtime");
+ pw.println(sb.toString());
+ }
+ timers.clear();
+ pw.println();
+ }
for (int iu=0; iu<NU; iu++) {
final int uid = uidStats.keyAt(iu);
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index 88529f8..1bada67 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -22,6 +22,8 @@
import android.text.TextUtils;
import android.util.Log;
+import com.android.internal.annotations.GuardedBy;
+
import java.io.File;
/**
@@ -47,7 +49,7 @@
private static final Object sLock = new Object();
- // @GuardedBy("sLock")
+ @GuardedBy("sLock")
private static volatile StorageVolume sPrimaryVolume;
private static StorageVolume getPrimaryVolume() {
diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java
index 3e90dfc..ec660ee 100644
--- a/core/java/android/os/ParcelFileDescriptor.java
+++ b/core/java/android/os/ParcelFileDescriptor.java
@@ -15,6 +15,9 @@
*/
package android.os;
+
+import dalvik.system.CloseGuard;
+
import java.io.Closeable;
import java.io.File;
import java.io.FileDescriptor;
@@ -31,12 +34,16 @@
*/
public class ParcelFileDescriptor implements Parcelable, Closeable {
private final FileDescriptor mFileDescriptor;
- private boolean mClosed;
- //this field is to create wrapper for ParcelFileDescriptor using another
- //PartialFileDescriptor but avoid invoking close twice
- //consider ParcelFileDescriptor A(fileDescriptor fd), ParcelFileDescriptor B(A)
- //in this particular case fd.close might be invoked twice.
- private final ParcelFileDescriptor mParcelDescriptor;
+
+ /**
+ * Wrapped {@link ParcelFileDescriptor}, if any. Used to avoid
+ * double-closing {@link #mFileDescriptor}.
+ */
+ private final ParcelFileDescriptor mWrapped;
+
+ private volatile boolean mClosed;
+
+ private final CloseGuard mGuard = CloseGuard.get();
/**
* For use with {@link #open}: if {@link #MODE_CREATE} has been supplied
@@ -289,13 +296,15 @@
if (mClosed) {
throw new IllegalStateException("Already closed");
}
- if (mParcelDescriptor != null) {
- int fd = mParcelDescriptor.detachFd();
+ if (mWrapped != null) {
+ int fd = mWrapped.detachFd();
mClosed = true;
+ mGuard.close();
return fd;
}
int fd = getFd();
mClosed = true;
+ mGuard.close();
Parcel.clearFileDescriptor(mFileDescriptor);
return fd;
}
@@ -307,15 +316,16 @@
* @throws IOException
* If an error occurs attempting to close this ParcelFileDescriptor.
*/
+ @Override
public void close() throws IOException {
- synchronized (this) {
- if (mClosed) return;
- mClosed = true;
- }
- if (mParcelDescriptor != null) {
+ if (mClosed) return;
+ mClosed = true;
+ mGuard.close();
+
+ if (mWrapped != null) {
// If this is a proxy to another file descriptor, just call through to its
// close method.
- mParcelDescriptor.close();
+ mWrapped.close();
} else {
Parcel.closeFileDescriptor(mFileDescriptor);
}
@@ -374,6 +384,9 @@
@Override
protected void finalize() throws Throwable {
+ if (mGuard != null) {
+ mGuard.warnIfOpen();
+ }
try {
if (!mClosed) {
close();
@@ -384,21 +397,22 @@
}
public ParcelFileDescriptor(ParcelFileDescriptor descriptor) {
- super();
- mParcelDescriptor = descriptor;
- mFileDescriptor = mParcelDescriptor.mFileDescriptor;
+ mWrapped = descriptor;
+ mFileDescriptor = mWrapped.mFileDescriptor;
+ mGuard.open("close");
}
- /*package */ParcelFileDescriptor(FileDescriptor descriptor) {
- super();
+ /** {@hide} */
+ public ParcelFileDescriptor(FileDescriptor descriptor) {
if (descriptor == null) {
throw new NullPointerException("descriptor must not be null");
}
+ mWrapped = null;
mFileDescriptor = descriptor;
- mParcelDescriptor = null;
+ mGuard.open("close");
}
- /* Parcelable interface */
+ @Override
public int describeContents() {
return Parcelable.CONTENTS_FILE_DESCRIPTOR;
}
@@ -408,6 +422,7 @@
* If {@link Parcelable#PARCELABLE_WRITE_RETURN_VALUE} is set in flags,
* the file descriptor will be closed after a copy is written to the Parcel.
*/
+ @Override
public void writeToParcel(Parcel out, int flags) {
out.writeFileDescriptor(mFileDescriptor);
if ((flags&PARCELABLE_WRITE_RETURN_VALUE) != 0 && !mClosed) {
@@ -421,12 +436,14 @@
public static final Parcelable.Creator<ParcelFileDescriptor> CREATOR
= new Parcelable.Creator<ParcelFileDescriptor>() {
+ @Override
public ParcelFileDescriptor createFromParcel(Parcel in) {
return in.readFileDescriptor();
}
+
+ @Override
public ParcelFileDescriptor[] newArray(int size) {
return new ParcelFileDescriptor[size];
}
};
-
}
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 4a01113..736762f 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -182,6 +182,8 @@
* </p><p>
* Since not all devices have proximity sensors, use {@link #isWakeLockLevelSupported}
* to determine whether this wake lock level is supported.
+ * </p><p>
+ * Cannot be used with {@link #ACQUIRE_CAUSES_WAKEUP}.
* </p>
*
* {@hide}
diff --git a/core/java/android/os/Trace.java b/core/java/android/os/Trace.java
index ed51818..0ca9183 100644
--- a/core/java/android/os/Trace.java
+++ b/core/java/android/os/Trace.java
@@ -44,6 +44,7 @@
public static final long TRACE_TAG_AUDIO = 1L << 8;
public static final long TRACE_TAG_VIDEO = 1L << 9;
public static final long TRACE_TAG_CAMERA = 1L << 10;
+ private static final long TRACE_TAG_NOT_READY = 1L << 63;
public static final int TRACE_FLAGS_START_BIT = 1;
public static final String[] TRACE_TAGS = {
@@ -53,11 +54,8 @@
public static final String PROPERTY_TRACE_TAG_ENABLEFLAGS = "debug.atrace.tags.enableflags";
- // This works as a "not ready" flag because TRACE_TAG_ALWAYS is always set.
- private static final long TRACE_FLAGS_NOT_READY = 0;
-
// Must be volatile to avoid word tearing.
- private static volatile long sEnabledTags = TRACE_FLAGS_NOT_READY;
+ private static volatile long sEnabledTags = TRACE_TAG_NOT_READY;
private static native long nativeGetEnabledTags();
private static native void nativeTraceCounter(long tag, String name, int value);
@@ -99,7 +97,7 @@
*/
private static long cacheEnabledTags() {
long tags = nativeGetEnabledTags();
- if (tags == TRACE_FLAGS_NOT_READY) {
+ if (tags == TRACE_TAG_NOT_READY) {
Log.w(TAG, "Unexpected value from nativeGetEnabledTags: " + tags);
// keep going
}
@@ -115,7 +113,7 @@
*/
public static boolean isTagEnabled(long traceTag) {
long tags = sEnabledTags;
- if (tags == TRACE_FLAGS_NOT_READY) {
+ if (tags == TRACE_TAG_NOT_READY) {
tags = cacheEnabledTags();
}
return (tags & traceTag) != 0;
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index 6c9290b..f6b6c89 100644
--- a/core/java/android/service/dreams/DreamService.java
+++ b/core/java/android/service/dreams/DreamService.java
@@ -44,13 +44,13 @@
import com.android.internal.policy.PolicyManager;
/**
- * Extend this class to implement a custom Dream (displayed to the user as a "Sleep Mode").
+ * Extend this class to implement a custom dream (available to the user as a "Daydream").
*
* <p>Dreams are interactive screensavers launched when a charging device is idle, or docked in a
* desk dock. Dreams provide another modality for apps to express themselves, tailored for
* an exhibition/lean-back experience.</p>
*
- * <p>The Dream lifecycle is as follows:</p>
+ * <p>The {@code DreamService} lifecycle is as follows:</p>
* <ol>
* <li>{@link #onAttachedToWindow}
* <p>Use this for initial setup, such as calling {@link #setContentView setContentView()}.</li>
@@ -59,14 +59,15 @@
* <li>{@link #onDreamingStopped}
* <p>Use this to stop the things you started in {@link #onDreamingStarted}.</li>
* <li>{@link #onDetachedFromWindow}
- * <p>Use this to dismantle resources your dream set up. For example, detach from handlers
- * and listeners.</li>
+ * <p>Use this to dismantle resources (for example, detach from handlers
+ * and listeners).</li>
* </ol>
*
* <p>In addition, onCreate and onDestroy (from the Service interface) will also be called, but
* initialization and teardown should be done by overriding the hooks above.</p>
*
- * <p>To be available to the system, Dreams should be declared in the manifest as follows:</p>
+ * <p>To be available to the system, your {@code DreamService} should be declared in the
+ * manifest as follows:</p>
* <pre>
* <service
* android:name=".MyDream"
diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java
index 1060bd8..bcce61d 100644
--- a/core/java/android/text/format/DateUtils.java
+++ b/core/java/android/text/format/DateUtils.java
@@ -607,6 +607,30 @@
}
/**
+ * Return given duration in a human-friendly format. For example, "4
+ * minutes" or "1 second". Returns only largest meaningful unit of time,
+ * from seconds up to hours.
+ *
+ * @hide
+ */
+ public static CharSequence formatDuration(long millis) {
+ final Resources res = Resources.getSystem();
+ if (millis >= HOUR_IN_MILLIS) {
+ final int hours = (int) ((millis + 1800000) / HOUR_IN_MILLIS);
+ return res.getQuantityString(
+ com.android.internal.R.plurals.duration_hours, hours, hours);
+ } else if (millis >= MINUTE_IN_MILLIS) {
+ final int minutes = (int) ((millis + 30000) / MINUTE_IN_MILLIS);
+ return res.getQuantityString(
+ com.android.internal.R.plurals.duration_minutes, minutes, minutes);
+ } else {
+ final int seconds = (int) ((millis + 500) / SECOND_IN_MILLIS);
+ return res.getQuantityString(
+ com.android.internal.R.plurals.duration_seconds, seconds, seconds);
+ }
+ }
+
+ /**
* Formats an elapsed time in the form "MM:SS" or "H:MM:SS"
* for display on the call-in-progress screen.
* @param elapsedSeconds the elapsed time in seconds.
diff --git a/core/java/android/util/IntProperty.java b/core/java/android/util/IntProperty.java
index 459d6b2..17977ca 100644
--- a/core/java/android/util/IntProperty.java
+++ b/core/java/android/util/IntProperty.java
@@ -42,7 +42,7 @@
@Override
final public void set(T object, Integer value) {
- set(object, value.intValue());
+ setValue(object, value.intValue());
}
}
\ No newline at end of file
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index fdaf39e..0fe2a8e3 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -1,16 +1,16 @@
/*
** Copyright 2006, 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
+** 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
+** 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
+** 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.
*/
@@ -107,7 +107,7 @@
Configuration updateOrientationFromAppTokens(in Configuration currentConfig,
IBinder freezeThisOneIfNeeded);
void setNewConfiguration(in Configuration config);
-
+
void startFreezingScreen(int exitAnim, int enterAnim);
void stopFreezingScreen();
@@ -121,13 +121,13 @@
void dismissKeyguard();
void closeSystemDialogs(String reason);
-
+
// These can only be called with the SET_ANIMATON_SCALE permission.
float getAnimationScale(int which);
float[] getAnimationScales();
void setAnimationScale(int which, float scale);
void setAnimationScales(in float[] scales);
-
+
// For testing
void setInTouchMode(boolean showFocus);
@@ -161,7 +161,7 @@
* {@link android.view.Surface}.
*/
int getRotation();
-
+
/**
* Watch the rotation of the screen. Returns the current rotation,
* calls back when it changes.
@@ -175,24 +175,24 @@
*/
int getPreferredOptionsPanelGravity();
- /**
- * Lock the device orientation to the specified rotation, or to the
- * current rotation if -1. Sensor input will be ignored until
- * thawRotation() is called.
- * @hide
- */
- void freezeRotation(int rotation);
+ /**
+ * Lock the device orientation to the specified rotation, or to the
+ * current rotation if -1. Sensor input will be ignored until
+ * thawRotation() is called.
+ * @hide
+ */
+ void freezeRotation(int rotation);
- /**
- * Release the orientation lock imposed by freezeRotation().
- * @hide
- */
- void thawRotation();
+ /**
+ * Release the orientation lock imposed by freezeRotation().
+ * @hide
+ */
+ void thawRotation();
- /**
- * Create a screenshot of the applications currently displayed.
- */
- Bitmap screenshotApplications(IBinder appToken, int displayId, int maxWidth, int maxHeight);
+ /**
+ * Create a screenshot of the applications currently displayed.
+ */
+ Bitmap screenshotApplications(IBinder appToken, int displayId, int maxWidth, int maxHeight);
/**
* Called by the status bar to notify Views of changes to System UI visiblity.
@@ -259,4 +259,10 @@
* Device is in safe mode.
*/
boolean isSafeModeEnabled();
+
+ /**
+ * Tell keyguard to show the assistant (Intent.ACTION_ASSIST) after asking for the user's
+ * credentials.
+ */
+ void showAssistant();
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index ff44475..1747627 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -623,6 +623,7 @@
* @attr ref android.R.styleable#View_hapticFeedbackEnabled
* @attr ref android.R.styleable#View_keepScreenOn
* @attr ref android.R.styleable#View_layerType
+ * @attr ref android.R.styleable#View_layoutDirection
* @attr ref android.R.styleable#View_longClickable
* @attr ref android.R.styleable#View_minHeight
* @attr ref android.R.styleable#View_minWidth
@@ -660,6 +661,7 @@
* @attr ref android.R.styleable#View_soundEffectsEnabled
* @attr ref android.R.styleable#View_tag
* @attr ref android.R.styleable#View_textAlignment
+ * @attr ref android.R.styleable#View_textDirection
* @attr ref android.R.styleable#View_transformPivotX
* @attr ref android.R.styleable#View_transformPivotY
* @attr ref android.R.styleable#View_translationX
@@ -5854,6 +5856,7 @@
* {@link #LAYOUT_DIRECTION_RTL},
* {@link #LAYOUT_DIRECTION_INHERIT} or
* {@link #LAYOUT_DIRECTION_LOCALE}.
+ *
* @attr ref android.R.styleable#View_layoutDirection
*
* @hide
@@ -5909,6 +5912,8 @@
*
* For compatibility, this will return {@link #LAYOUT_DIRECTION_LTR} if API version
* is lower than {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1}.
+ *
+ * @attr ref android.R.styleable#View_layoutDirection
*/
@ViewDebug.ExportedProperty(category = "layout", mapping = {
@ViewDebug.IntToString(from = LAYOUT_DIRECTION_LTR, to = "RESOLVED_DIRECTION_LTR"),
@@ -16627,6 +16632,8 @@
* {@link #TEXT_DIRECTION_RTL},
* {@link #TEXT_DIRECTION_LOCALE}
*
+ * @attr ref android.R.styleable#View_textDirection
+ *
* @hide
*/
@ViewDebug.ExportedProperty(category = "text", mapping = {
@@ -16656,6 +16663,8 @@
* Resolution will be done if the value is set to TEXT_DIRECTION_INHERIT. The resolution
* proceeds up the parent chain of the view to get the value. If there is no parent, then it will
* return the default {@link #TEXT_DIRECTION_FIRST_STRONG}.
+ *
+ * @attr ref android.R.styleable#View_textDirection
*/
public void setTextDirection(int textDirection) {
if (getRawTextDirection() != textDirection) {
@@ -16684,6 +16693,8 @@
* {@link #TEXT_DIRECTION_LTR},
* {@link #TEXT_DIRECTION_RTL},
* {@link #TEXT_DIRECTION_LOCALE}
+ *
+ * @attr ref android.R.styleable#View_textDirection
*/
public int getTextDirection() {
return (mPrivateFlags2 & PFLAG2_TEXT_DIRECTION_RESOLVED_MASK) >> PFLAG2_TEXT_DIRECTION_RESOLVED_MASK_SHIFT;
@@ -16816,6 +16827,8 @@
* {@link #TEXT_ALIGNMENT_VIEW_START},
* {@link #TEXT_ALIGNMENT_VIEW_END}
*
+ * @attr ref android.R.styleable#View_textAlignment
+ *
* @hide
*/
@ViewDebug.ExportedProperty(category = "text", mapping = {
@@ -16879,6 +16892,8 @@
* {@link #TEXT_ALIGNMENT_TEXT_END},
* {@link #TEXT_ALIGNMENT_VIEW_START},
* {@link #TEXT_ALIGNMENT_VIEW_END}
+ *
+ * @attr ref android.R.styleable#View_textAlignment
*/
@ViewDebug.ExportedProperty(category = "text", mapping = {
@ViewDebug.IntToString(from = TEXT_ALIGNMENT_INHERIT, to = "INHERIT"),
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index 4ccb502..26739b3 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -1136,4 +1136,10 @@
* @param args additional arguments to the dump request.
*/
public void dump(String prefix, PrintWriter writer, String[] args);
+
+ /**
+ * Ask keyguard to invoke the assist intent after dismissing keyguard
+ * {@link android.content.Intent#ACTION_ASSIST}
+ */
+ public void showAssistant();
}
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java
index b1a44c5..85972c3 100644
--- a/core/java/android/widget/Editor.java
+++ b/core/java/android/widget/Editor.java
@@ -291,6 +291,7 @@
mErrorWasChanged = true;
if (mError == null) {
+ setErrorIcon(null);
if (mErrorPopup != null) {
if (mErrorPopup.isShowing()) {
mErrorPopup.dismiss();
@@ -299,21 +300,24 @@
mErrorPopup = null;
}
- setErrorIcon(null);
- } else if (mTextView.isFocused()) {
- showError();
+ } else {
setErrorIcon(icon);
+ if (mTextView.isFocused()) {
+ showError();
+ }
}
}
private void setErrorIcon(Drawable icon) {
- final Drawables dr = mTextView.mDrawables;
- if (dr != null) {
- mTextView.setCompoundDrawables(dr.mDrawableLeft, dr.mDrawableTop, icon,
- dr.mDrawableBottom);
- } else {
- mTextView.setCompoundDrawables(null, null, icon, null);
+ Drawables dr = mTextView.mDrawables;
+ if (dr == null) {
+ mTextView.mDrawables = dr = new Drawables();
}
+ dr.setErrorDrawable(icon, mTextView);
+
+ mTextView.resetResolvedDrawables();
+ mTextView.invalidate();
+ mTextView.requestLayout();
}
private void hideError() {
@@ -321,15 +325,13 @@
if (mErrorPopup.isShowing()) {
mErrorPopup.dismiss();
}
-
- setErrorIcon(null);
}
mShowErrorAfterAttach = false;
}
/**
- * Returns the Y offset to make the pointy top of the error point
+ * Returns the X offset to make the pointy top of the error point
* at the middle of the error icon.
*/
private int getErrorX() {
@@ -340,8 +342,23 @@
final float scale = mTextView.getResources().getDisplayMetrics().density;
final Drawables dr = mTextView.mDrawables;
- return mTextView.getWidth() - mErrorPopup.getWidth() - mTextView.getPaddingRight() -
- (dr != null ? dr.mDrawableSizeRight : 0) / 2 + (int) (25 * scale + 0.5f);
+
+ final int layoutDirection = mTextView.getLayoutDirection();
+ int errorX;
+ int offset;
+ switch (layoutDirection) {
+ default:
+ case View.LAYOUT_DIRECTION_LTR:
+ offset = - (dr != null ? dr.mDrawableSizeRight : 0) / 2 + (int) (25 * scale + 0.5f);
+ errorX = mTextView.getWidth() - mErrorPopup.getWidth() -
+ mTextView.getPaddingRight() + offset;
+ break;
+ case View.LAYOUT_DIRECTION_RTL:
+ offset = (dr != null ? dr.mDrawableSizeLeft : 0) / 2 - (int) (25 * scale + 0.5f);
+ errorX = mTextView.getPaddingLeft() + offset;
+ break;
+ }
+ return errorX;
}
/**
@@ -358,16 +375,27 @@
mTextView.getCompoundPaddingBottom() - compoundPaddingTop;
final Drawables dr = mTextView.mDrawables;
- int icontop = compoundPaddingTop +
- (vspace - (dr != null ? dr.mDrawableHeightRight : 0)) / 2;
+
+ final int layoutDirection = mTextView.getLayoutDirection();
+ int height;
+ switch (layoutDirection) {
+ default:
+ case View.LAYOUT_DIRECTION_LTR:
+ height = (dr != null ? dr.mDrawableHeightRight : 0);
+ break;
+ case View.LAYOUT_DIRECTION_RTL:
+ height = (dr != null ? dr.mDrawableHeightLeft : 0);
+ break;
+ }
+
+ int icontop = compoundPaddingTop + (vspace - height) / 2;
/*
* The "2" is the distance between the point and the top edge
* of the background.
*/
final float scale = mTextView.getResources().getDisplayMetrics().density;
- return icontop + (dr != null ? dr.mDrawableHeightRight : 0) - mTextView.getHeight() -
- (int) (2 * scale + 0.5f);
+ return icontop + height - mTextView.getHeight() - (int) (2 * scale + 0.5f);
}
void createInputContentTypeIfNeeded() {
@@ -3726,7 +3754,7 @@
super(v, width, height);
mView = v;
// Make sure the TextView has a background set as it will be used the first time it is
- // shown and positionned. Initialized with below background, which should have
+ // shown and positioned. Initialized with below background, which should have
// dimensions identical to the above version for this to work (and is more likely).
mPopupInlineErrorBackgroundId = getResourceId(mPopupInlineErrorBackgroundId,
com.android.internal.R.styleable.Theme_errorMessageBackground);
diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java
index 4918e48..ac216717 100644
--- a/core/java/android/widget/NumberPicker.java
+++ b/core/java/android/widget/NumberPicker.java
@@ -1284,7 +1284,12 @@
/**
* Sets the min value of the picker.
*
- * @param minValue The min value.
+ * @param minValue The min value inclusive.
+ *
+ * <strong>Note:</strong> The length of the displayed values array
+ * set via {@link #setDisplayedValues(String[])} must be equal to the
+ * range of selectable numbers which is equal to
+ * {@link #getMaxValue()} - {@link #getMinValue()} + 1.
*/
public void setMinValue(int minValue) {
if (mMinValue == minValue) {
@@ -1317,7 +1322,12 @@
/**
* Sets the max value of the picker.
*
- * @param maxValue The max value.
+ * @param maxValue The max value inclusive.
+ *
+ * <strong>Note:</strong> The length of the displayed values array
+ * set via {@link #setDisplayedValues(String[])} must be equal to the
+ * range of selectable numbers which is equal to
+ * {@link #getMaxValue()} - {@link #getMinValue()} + 1.
*/
public void setMaxValue(int maxValue) {
if (mMaxValue == maxValue) {
@@ -1351,6 +1361,10 @@
* Sets the values to be displayed.
*
* @param displayedValues The displayed values.
+ *
+ * <strong>Note:</strong> The length of the displayed values array
+ * must be equal to the range of selectable numbers which is equal to
+ * {@link #getMaxValue()} - {@link #getMinValue()} + 1.
*/
public void setDisplayedValues(String[] displayedValues) {
if (mDisplayedValues == displayedValues) {
@@ -1361,14 +1375,6 @@
// Allow text entry rather than strictly numeric entry.
mInputText.setRawInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
- // Make sure the min, max, respect the size of the displayed
- // values. This will take care of the current value as well.
- if (getMinValue() >= displayedValues.length) {
- setMinValue(0);
- }
- if (getMaxValue() >= displayedValues.length) {
- setMaxValue(displayedValues.length - 1);
- }
} else {
mInputText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
}
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 5d90400..0a16a66 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -284,15 +284,144 @@
private TextUtils.TruncateAt mEllipsize;
static class Drawables {
+ final static int DRAWABLE_NONE = -1;
+ final static int DRAWABLE_RIGHT = 0;
+ final static int DRAWABLE_LEFT = 1;
+
final Rect mCompoundRect = new Rect();
+
Drawable mDrawableTop, mDrawableBottom, mDrawableLeft, mDrawableRight,
- mDrawableStart, mDrawableEnd;
+ mDrawableStart, mDrawableEnd, mDrawableError, mDrawableTemp;
+
int mDrawableSizeTop, mDrawableSizeBottom, mDrawableSizeLeft, mDrawableSizeRight,
- mDrawableSizeStart, mDrawableSizeEnd;
+ mDrawableSizeStart, mDrawableSizeEnd, mDrawableSizeError, mDrawableSizeTemp;
+
int mDrawableWidthTop, mDrawableWidthBottom, mDrawableHeightLeft, mDrawableHeightRight,
- mDrawableHeightStart, mDrawableHeightEnd;
+ mDrawableHeightStart, mDrawableHeightEnd, mDrawableHeightError, mDrawableHeightTemp;
+
int mDrawablePadding;
+
+ int mDrawableSaved = DRAWABLE_NONE;
+
+ public void resolveWithLayoutDirection(int layoutDirection) {
+ switch(layoutDirection) {
+ case LAYOUT_DIRECTION_RTL:
+ if (mDrawableStart != null) {
+ mDrawableRight = mDrawableStart;
+
+ mDrawableSizeRight = mDrawableSizeStart;
+ mDrawableHeightRight = mDrawableHeightStart;
+ }
+ if (mDrawableEnd != null) {
+ mDrawableLeft = mDrawableEnd;
+
+ mDrawableSizeLeft = mDrawableSizeEnd;
+ mDrawableHeightLeft = mDrawableHeightEnd;
+ }
+ break;
+
+ case LAYOUT_DIRECTION_LTR:
+ default:
+ if (mDrawableStart != null) {
+ mDrawableLeft = mDrawableStart;
+
+ mDrawableSizeLeft = mDrawableSizeStart;
+ mDrawableHeightLeft = mDrawableHeightStart;
+ }
+ if (mDrawableEnd != null) {
+ mDrawableRight = mDrawableEnd;
+
+ mDrawableSizeRight = mDrawableSizeEnd;
+ mDrawableHeightRight = mDrawableHeightEnd;
+ }
+ break;
+ }
+ applyErrorDrawableIfNeeded(layoutDirection);
+ updateDrawablesLayoutDirection(layoutDirection);
+ }
+
+ private void updateDrawablesLayoutDirection(int layoutDirection) {
+ if (mDrawableLeft != null) {
+ mDrawableLeft.setLayoutDirection(layoutDirection);
+ }
+ if (mDrawableRight != null) {
+ mDrawableRight.setLayoutDirection(layoutDirection);
+ }
+ if (mDrawableTop != null) {
+ mDrawableTop.setLayoutDirection(layoutDirection);
+ }
+ if (mDrawableBottom != null) {
+ mDrawableBottom.setLayoutDirection(layoutDirection);
+ }
+ }
+
+ public void setErrorDrawable(Drawable dr, TextView tv) {
+ if (mDrawableError != dr && mDrawableError != null) {
+ mDrawableError.setCallback(null);
+ }
+ mDrawableError = dr;
+
+ final Rect compoundRect = mCompoundRect;
+ int[] state = tv.getDrawableState();
+
+ if (mDrawableError != null) {
+ mDrawableError.setState(state);
+ mDrawableError.copyBounds(compoundRect);
+ mDrawableError.setCallback(tv);
+ mDrawableSizeError = compoundRect.width();
+ mDrawableHeightError = compoundRect.height();
+ } else {
+ mDrawableSizeError = mDrawableHeightError = 0;
+ }
+ }
+
+ private void applyErrorDrawableIfNeeded(int layoutDirection) {
+ // first restore the initial state if needed
+ switch (mDrawableSaved) {
+ case DRAWABLE_LEFT:
+ mDrawableLeft = mDrawableTemp;
+ mDrawableSizeLeft = mDrawableSizeTemp;
+ mDrawableHeightLeft = mDrawableHeightTemp;
+ break;
+ case DRAWABLE_RIGHT:
+ mDrawableRight = mDrawableTemp;
+ mDrawableSizeRight = mDrawableSizeTemp;
+ mDrawableHeightRight = mDrawableHeightTemp;
+ break;
+ case DRAWABLE_NONE:
+ default:
+ }
+ // then, if needed, assign the Error drawable to the correct location
+ if (mDrawableError != null) {
+ switch(layoutDirection) {
+ case LAYOUT_DIRECTION_RTL:
+ mDrawableSaved = DRAWABLE_LEFT;
+
+ mDrawableTemp = mDrawableLeft;
+ mDrawableSizeTemp = mDrawableSizeLeft;
+ mDrawableHeightTemp = mDrawableHeightLeft;
+
+ mDrawableLeft = mDrawableError;
+ mDrawableSizeLeft = mDrawableSizeError;
+ mDrawableHeightLeft = mDrawableHeightError;
+ break;
+ case LAYOUT_DIRECTION_LTR:
+ default:
+ mDrawableSaved = DRAWABLE_RIGHT;
+
+ mDrawableTemp = mDrawableRight;
+ mDrawableSizeTemp = mDrawableSizeRight;
+ mDrawableHeightTemp = mDrawableHeightRight;
+
+ mDrawableRight = mDrawableError;
+ mDrawableSizeRight = mDrawableSizeError;
+ mDrawableHeightRight = mDrawableHeightError;
+ break;
+ }
+ }
+ }
}
+
Drawables mDrawables;
private CharWrapper mCharWrapper;
@@ -8229,9 +8358,8 @@
TextDirectionHeuristic getTextDirectionHeuristic() {
if (hasPasswordTransformationMethod()) {
- // TODO: take care of the content direction to show the password text and dots justified
- // to the left or to the right
- return TextDirectionHeuristics.LOCALE;
+ // passwords fields should be LTR
+ return TextDirectionHeuristics.LTR;
}
// Always need to resolve layout direction first
@@ -8264,63 +8392,10 @@
return;
}
mLastLayoutDirection = layoutDirection;
- // No drawable to resolve
- if (mDrawables == null) {
- return;
- }
- // No relative drawable to resolve
- if (mDrawables.mDrawableStart == null && mDrawables.mDrawableEnd == null) {
- return;
- }
- Drawables dr = mDrawables;
- switch(layoutDirection) {
- case LAYOUT_DIRECTION_RTL:
- if (dr.mDrawableStart != null) {
- dr.mDrawableRight = dr.mDrawableStart;
-
- dr.mDrawableSizeRight = dr.mDrawableSizeStart;
- dr.mDrawableHeightRight = dr.mDrawableHeightStart;
- }
- if (dr.mDrawableEnd != null) {
- dr.mDrawableLeft = dr.mDrawableEnd;
-
- dr.mDrawableSizeLeft = dr.mDrawableSizeEnd;
- dr.mDrawableHeightLeft = dr.mDrawableHeightEnd;
- }
- break;
-
- case LAYOUT_DIRECTION_LTR:
- default:
- if (dr.mDrawableStart != null) {
- dr.mDrawableLeft = dr.mDrawableStart;
-
- dr.mDrawableSizeLeft = dr.mDrawableSizeStart;
- dr.mDrawableHeightLeft = dr.mDrawableHeightStart;
- }
- if (dr.mDrawableEnd != null) {
- dr.mDrawableRight = dr.mDrawableEnd;
-
- dr.mDrawableSizeRight = dr.mDrawableSizeEnd;
- dr.mDrawableHeightRight = dr.mDrawableHeightEnd;
- }
- break;
- }
- updateDrawablesLayoutDirection(dr, layoutDirection);
- }
-
- private void updateDrawablesLayoutDirection(Drawables dr, int layoutDirection) {
- if (dr.mDrawableLeft != null) {
- dr.mDrawableLeft.setLayoutDirection(layoutDirection);
- }
- if (dr.mDrawableRight != null) {
- dr.mDrawableRight.setLayoutDirection(layoutDirection);
- }
- if (dr.mDrawableTop != null) {
- dr.mDrawableTop.setLayoutDirection(layoutDirection);
- }
- if (dr.mDrawableBottom != null) {
- dr.mDrawableBottom.setLayoutDirection(layoutDirection);
+ // Resolve drawables
+ if (mDrawables != null) {
+ mDrawables.resolveWithLayoutDirection(layoutDirection);
}
}
@@ -8328,6 +8403,7 @@
* @hide
*/
protected void resetResolvedDrawables() {
+ super.resetResolvedDrawables();
mLastLayoutDirection = -1;
}
diff --git a/core/java/android/widget/VideoView.java b/core/java/android/widget/VideoView.java
index 7c8196d..329b0df 100644
--- a/core/java/android/widget/VideoView.java
+++ b/core/java/android/widget/VideoView.java
@@ -54,7 +54,6 @@
// settable by the client
private Uri mUri;
private Map<String, String> mHeaders;
- private int mDuration;
// all possible internal states
private static final int STATE_ERROR = -1;
@@ -229,7 +228,6 @@
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setOnPreparedListener(mPreparedListener);
mMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener);
- mDuration = -1;
mMediaPlayer.setOnCompletionListener(mCompletionListener);
mMediaPlayer.setOnErrorListener(mErrorListener);
mMediaPlayer.setOnInfoListener(mOnInfoListener);
@@ -608,17 +606,12 @@
openVideo();
}
- // cache duration as mDuration for faster access
public int getDuration() {
if (isInPlaybackState()) {
- if (mDuration > 0) {
- return mDuration;
- }
- mDuration = mMediaPlayer.getDuration();
- return mDuration;
+ return mMediaPlayer.getDuration();
}
- mDuration = -1;
- return mDuration;
+
+ return -1;
}
public int getCurrentPosition() {
diff --git a/core/java/com/android/internal/annotations/GuardedBy.java b/core/java/com/android/internal/annotations/GuardedBy.java
new file mode 100644
index 0000000..fc61945
--- /dev/null
+++ b/core/java/com/android/internal/annotations/GuardedBy.java
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+
+package com.android.internal.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation type used to mark a method or field that can only be accessed when
+ * holding the referenced lock.
+ */
+@Target({ ElementType.FIELD, ElementType.METHOD })
+@Retention(RetentionPolicy.CLASS)
+public @interface GuardedBy {
+ String value();
+}
diff --git a/core/java/com/android/internal/annotations/Immutable.java b/core/java/com/android/internal/annotations/Immutable.java
new file mode 100644
index 0000000..b424275
--- /dev/null
+++ b/core/java/com/android/internal/annotations/Immutable.java
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+package com.android.internal.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Annotation type used to mark a class which is immutable.
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.CLASS)
+public @interface Immutable {
+}
diff --git a/core/java/com/android/internal/annotations/VisibleForTesting.java b/core/java/com/android/internal/annotations/VisibleForTesting.java
new file mode 100644
index 0000000..bc3121c
--- /dev/null
+++ b/core/java/com/android/internal/annotations/VisibleForTesting.java
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+
+package com.android.internal.annotations;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Denotes that the class, method or field has its visibility relaxed so
+ * that unit tests can access it.
+ * <p/>
+ * The <code>visibility</code> argument can be used to specific what the original
+ * visibility should have been if it had not been made public or package-private for testing.
+ * The default is to consider the element private.
+ */
+@Retention(RetentionPolicy.SOURCE)
+public @interface VisibleForTesting {
+ /**
+ * Intended visibility if the element had not been made public or package-private for
+ * testing.
+ */
+ enum Visibility {
+ /** The element should be considered protected. */
+ PROTECTED,
+ /** The element should be considered package-private. */
+ PACKAGE,
+ /** The element should be considered private. */
+ PRIVATE
+ }
+
+ /**
+ * Intended visibility if the element had not been made public or package-private for testing.
+ * If not specified, one should assume the element originally intended to be private.
+ */
+ Visibility visibility() default Visibility.PRIVATE;
+}
diff --git a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl
index cfb16fa..b63ad62 100644
--- a/core/java/com/android/internal/appwidget/IAppWidgetService.aidl
+++ b/core/java/com/android/internal/appwidget/IAppWidgetService.aidl
@@ -38,6 +38,7 @@
void deleteHost(int hostId);
void deleteAllHosts();
RemoteViews getAppWidgetViews(int appWidgetId);
+ int[] getAppWidgetIdsForHost(int hostId);
//
// for AppWidgetManager
diff --git a/core/java/com/android/internal/net/NetworkStatsFactory.java b/core/java/com/android/internal/net/NetworkStatsFactory.java
index 8b222f0..c517a68 100644
--- a/core/java/com/android/internal/net/NetworkStatsFactory.java
+++ b/core/java/com/android/internal/net/NetworkStatsFactory.java
@@ -25,6 +25,7 @@
import android.os.StrictMode;
import android.os.SystemClock;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ProcFileReader;
import java.io.File;
@@ -53,7 +54,7 @@
this(new File("/proc/"));
}
- // @VisibleForTesting
+ @VisibleForTesting
public NetworkStatsFactory(File procRoot) {
mStatsXtIfaceAll = new File(procRoot, "net/xt_qtaguid/iface_stat_all");
mStatsXtIfaceFmt = new File(procRoot, "net/xt_qtaguid/iface_stat_fmt");
diff --git a/core/java/com/android/internal/util/LocalLog.java b/core/java/com/android/internal/util/LocalLog.java
new file mode 100644
index 0000000..f0e6171
--- /dev/null
+++ b/core/java/com/android/internal/util/LocalLog.java
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+
+package com.android.internal.util;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import android.util.Slog;
+
+/**
+ * Helper class for logging serious issues, which also keeps a small
+ * snapshot of the logged events that can be printed later, such as part
+ * of a system service's dumpsys output.
+ * @hide
+ */
+public class LocalLog {
+ private final String mTag;
+ private final int mMaxLines = 20;
+ private final ArrayList<String> mLines = new ArrayList<String>(mMaxLines);
+
+ public LocalLog(String tag) {
+ mTag = tag;
+ }
+
+ public void w(String msg) {
+ synchronized (mLines) {
+ Slog.w(mTag, msg);
+ if (mLines.size() >= mMaxLines) {
+ mLines.remove(0);
+ }
+ mLines.add(msg);
+ }
+ }
+
+ public boolean dump(PrintWriter pw, String header, String prefix) {
+ synchronized (mLines) {
+ if (mLines.size() <= 0) {
+ return false;
+ }
+ if (header != null) {
+ pw.println(header);
+ }
+ for (int i=0; i<mLines.size(); i++) {
+ if (prefix != null) {
+ pw.print(prefix);
+ }
+ pw.println(mLines.get(i));
+ }
+ return true;
+ }
+ }
+}
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index 030dfef..5fa0b78 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -116,16 +116,6 @@
public static final String KEYGUARD_SHOW_APPWIDGET = "showappwidget";
/**
- * Options used to lock the device upon user switch.
- */
- public static final Bundle USER_SWITCH_LOCK_OPTIONS = new Bundle();
-
- static {
- USER_SWITCH_LOCK_OPTIONS.putBoolean(KEYGUARD_SHOW_USER_SWITCHER, true);
- USER_SWITCH_LOCK_OPTIONS.putBoolean(KEYGUARD_SHOW_SECURITY_CHALLENGE, true);
- }
-
- /**
* The bit in LOCK_BIOMETRIC_WEAK_FLAGS to be used to indicate whether liveliness should
* be used
*/
@@ -1167,6 +1157,10 @@
public boolean removeAppWidget(int widgetId) {
int[] widgets = getAppWidgets();
+ if (widgets.length == 0) {
+ return false;
+ }
+
int[] newWidgets = new int[widgets.length - 1];
for (int i = 0, j = 0; i < widgets.length; i++) {
if (widgets[i] == widgetId) {
@@ -1331,7 +1325,7 @@
public boolean getPowerButtonInstantlyLocks() {
return getBoolean(LOCKSCREEN_POWER_BUTTON_INSTANTLY_LOCKS, true);
}
-
+
public static boolean isSafeModeEnabled() {
try {
return IWindowManager.Stub.asInterface(
diff --git a/core/java/com/android/internal/widget/TransportControlView.java b/core/java/com/android/internal/widget/TransportControlView.java
index 2f52585..c33f038 100644
--- a/core/java/com/android/internal/widget/TransportControlView.java
+++ b/core/java/com/android/internal/widget/TransportControlView.java
@@ -23,7 +23,6 @@
import android.app.PendingIntent;
import android.app.PendingIntent.CanceledException;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
@@ -193,7 +192,7 @@
public TransportControlView(Context context, AttributeSet attrs) {
super(context, attrs);
- Log.v(TAG, "Create TCV " + this);
+ if (DEBUG) Log.v(TAG, "Create TCV " + this);
mAudioManager = new AudioManager(mContext);
mCurrentPlayState = RemoteControlClient.PLAYSTATE_NONE; // until we get a callback
mIRCD = new IRemoteControlDisplayWeak(mHandler);
diff --git a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
index e4d6d8b..aad285a 100644
--- a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
+++ b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
@@ -114,6 +114,7 @@
private int mMaxTargetHeight;
private int mMaxTargetWidth;
private float mRingScaleFactor = 1f;
+ private boolean mAllowScaling;
private float mOuterRadius = 0.0f;
private float mSnapMargin = 0.0f;
@@ -222,6 +223,7 @@
mVibrationDuration);
mFeedbackCount = a.getInt(R.styleable.GlowPadView_feedbackCount,
mFeedbackCount);
+ mAllowScaling = a.getBoolean(R.styleable.GlowPadView_allowScaling, false);
TypedValue handle = a.peekValue(R.styleable.GlowPadView_handleDrawable);
mHandleDrawable = new TargetDrawable(res, handle != null ? handle.resourceId : 0);
mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE);
@@ -793,8 +795,12 @@
}
private void updateGlowPosition(float x, float y) {
- mPointCloud.glowManager.setX(x);
- mPointCloud.glowManager.setY(y);
+ float dx = x - mOuterRing.getX();
+ float dy = y - mOuterRing.getY();
+ dx *= 1f / mRingScaleFactor;
+ dy *= 1f / mRingScaleFactor;
+ mPointCloud.glowManager.setX(mOuterRing.getX() + dx);
+ mPointCloud.glowManager.setY(mOuterRing.getY() + dy);
}
private void handleDown(MotionEvent event) {
@@ -863,7 +869,7 @@
if (mDragging) {
// For multiple targets, snap to the one that matches
- final float snapRadius = mOuterRadius - mSnapMargin;
+ final float snapRadius = mRingScaleFactor * mOuterRadius - mSnapMargin;
final float snapDistance2 = snapRadius * snapRadius;
// Find first target in range
for (int i = 0; i < ntargets; i++) {
@@ -948,7 +954,8 @@
onTouchEvent(event);
event.setAction(action);
}
- return super.onHoverEvent(event);
+ super.onHoverEvent(event);
+ return true;
}
/**
@@ -1034,6 +1041,10 @@
*/
private float computeScaleFactor(int desiredWidth, int desiredHeight,
int actualWidth, int actualHeight) {
+
+ // Return unity if scaling is not allowed.
+ if (!mAllowScaling) return 1f;
+
final int layoutDirection = getLayoutDirection();
final int absoluteGravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection);
diff --git a/core/res/res/anim/keyguard_action_assist_enter.xml b/core/res/res/anim/keyguard_action_assist_enter.xml
new file mode 100644
index 0000000..f3333b7
--- /dev/null
+++ b/core/res/res/anim/keyguard_action_assist_enter.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shareInterpolator="false" android:zAdjustment="top">
+
+ <alpha android:fromAlpha="0" android:toAlpha="1.0"
+ android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+ android:interpolator="@android:interpolator/decelerate_cubic"
+ android:duration="300"/>
+
+ <translate android:fromYDelta="100%" android:toYDelta="0"
+ android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"
+ android:interpolator="@android:interpolator/decelerate_cubic"
+ android:duration="300" />
+</set>
diff --git a/core/res/res/anim/keyguard_action_assist_exit.xml b/core/res/res/anim/keyguard_action_assist_exit.xml
new file mode 100644
index 0000000..b4ed278
--- /dev/null
+++ b/core/res/res/anim/keyguard_action_assist_exit.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 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.
+*/
+-->
+
+<translate xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:anim/accelerate_interpolator"
+ android:fromXDelta="0" android:toXDelta="0"
+ android:duration="300" />
diff --git a/core/res/res/drawable-hdpi/kg_add_widget.png b/core/res/res/drawable-hdpi/kg_add_widget.png
index 723d97a..68971a5 100644
--- a/core/res/res/drawable-hdpi/kg_add_widget.png
+++ b/core/res/res/drawable-hdpi/kg_add_widget.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/kg_add_widget_disabled.png b/core/res/res/drawable-hdpi/kg_add_widget_disabled.png
new file mode 100644
index 0000000..f24cf642
--- /dev/null
+++ b/core/res/res/drawable-hdpi/kg_add_widget_disabled.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/kg_add_widget_pressed.png b/core/res/res/drawable-hdpi/kg_add_widget_pressed.png
new file mode 100644
index 0000000..55112ca
--- /dev/null
+++ b/core/res/res/drawable-hdpi/kg_add_widget_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/kg_widget_bg_padded.9.png b/core/res/res/drawable-hdpi/kg_widget_bg_padded.9.png
new file mode 100644
index 0000000..dff1dfa
--- /dev/null
+++ b/core/res/res/drawable-hdpi/kg_widget_bg_padded.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-hdpi/popup_inline_error.9.png b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error.9.png
new file mode 100644
index 0000000..8b43f4e
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above.9.png b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above.9.png
new file mode 100644
index 0000000..20e9002
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above_holo_dark.9.png b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above_holo_dark.9.png
new file mode 100644
index 0000000..b5f397c
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above_holo_light.9.png b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above_holo_light.9.png
new file mode 100644
index 0000000..a04d695
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_above_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_holo_dark.9.png b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_holo_dark.9.png
new file mode 100644
index 0000000..8567b1f
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_holo_light.9.png b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_holo_light.9.png
new file mode 100644
index 0000000..7d1754c
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-hdpi/popup_inline_error_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-ldpi/popup_inline_error.9.png b/core/res/res/drawable-ldrtl-ldpi/popup_inline_error.9.png
new file mode 100644
index 0000000..d2efb62
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-ldpi/popup_inline_error.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-ldpi/popup_inline_error_above.9.png b/core/res/res/drawable-ldrtl-ldpi/popup_inline_error_above.9.png
new file mode 100644
index 0000000..04d200d
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-ldpi/popup_inline_error_above.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-mdpi/popup_inline_error.9.png b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error.9.png
new file mode 100644
index 0000000..27e8d4f
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above.9.png b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above.9.png
new file mode 100644
index 0000000..4ae2b91
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above_holo_dark.9.png b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above_holo_dark.9.png
new file mode 100644
index 0000000..8cc3b69
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above_holo_light.9.png b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above_holo_light.9.png
new file mode 100644
index 0000000..7a84200
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_above_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_holo_dark.9.png b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_holo_dark.9.png
new file mode 100644
index 0000000..8fc2e2e
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_holo_light.9.png b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_holo_light.9.png
new file mode 100644
index 0000000..687a691
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-mdpi/popup_inline_error_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error.9.png b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error.9.png
new file mode 100644
index 0000000..db91a56
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above.9.png b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above.9.png
new file mode 100644
index 0000000..90820b5
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above_holo_dark.9.png b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above_holo_dark.9.png
new file mode 100644
index 0000000..5989975
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above_holo_light.9.png b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above_holo_light.9.png
new file mode 100644
index 0000000..3b3f87d3
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_above_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_holo_dark.9.png b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_holo_dark.9.png
new file mode 100644
index 0000000..75baba2
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_holo_light.9.png b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_holo_light.9.png
new file mode 100644
index 0000000..6c0203d
--- /dev/null
+++ b/core/res/res/drawable-ldrtl-xhdpi/popup_inline_error_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/kg_add_widget.png b/core/res/res/drawable-mdpi/kg_add_widget.png
index 5b0a5a4..136ae17 100644
--- a/core/res/res/drawable-mdpi/kg_add_widget.png
+++ b/core/res/res/drawable-mdpi/kg_add_widget.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/kg_add_widget_disabled.png b/core/res/res/drawable-mdpi/kg_add_widget_disabled.png
new file mode 100644
index 0000000..02e0f0e
--- /dev/null
+++ b/core/res/res/drawable-mdpi/kg_add_widget_disabled.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/kg_add_widget_pressed.png b/core/res/res/drawable-mdpi/kg_add_widget_pressed.png
new file mode 100644
index 0000000..34a7aaa
--- /dev/null
+++ b/core/res/res/drawable-mdpi/kg_add_widget_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/kg_widget_bg_padded.9.png b/core/res/res/drawable-mdpi/kg_widget_bg_padded.9.png
new file mode 100644
index 0000000..c313df1
--- /dev/null
+++ b/core/res/res/drawable-mdpi/kg_widget_bg_padded.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/kg_add_widget.png b/core/res/res/drawable-xhdpi/kg_add_widget.png
index 9c84de2..ca48be2 100644
--- a/core/res/res/drawable-xhdpi/kg_add_widget.png
+++ b/core/res/res/drawable-xhdpi/kg_add_widget.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/kg_add_widget_disabled.png b/core/res/res/drawable-xhdpi/kg_add_widget_disabled.png
new file mode 100644
index 0000000..55fa1ac
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/kg_add_widget_disabled.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/kg_add_widget_pressed.png b/core/res/res/drawable-xhdpi/kg_add_widget_pressed.png
new file mode 100644
index 0000000..4b86727
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/kg_add_widget_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/kg_widget_bg_padded.9.png b/core/res/res/drawable-xhdpi/kg_widget_bg_padded.9.png
new file mode 100644
index 0000000..a84bfa3
--- /dev/null
+++ b/core/res/res/drawable-xhdpi/kg_widget_bg_padded.9.png
Binary files differ
diff --git a/core/res/res/drawable/keyguard_add_widget_button.xml b/core/res/res/drawable/keyguard_add_widget_button.xml
new file mode 100644
index 0000000..c26f81d
--- /dev/null
+++ b/core/res/res/drawable/keyguard_add_widget_button.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true" android:drawable="@drawable/kg_add_widget_pressed" />
+ <item android:state_enabled="false" android:drawable="@drawable/kg_add_widget_disabled" />
+ <item android:drawable="@drawable/kg_add_widget" />
+</selector>
diff --git a/core/res/res/layout-land/keyguard_host_view.xml b/core/res/res/layout-land/keyguard_host_view.xml
index 2f67606..6b36235 100644
--- a/core/res/res/layout-land/keyguard_host_view.xml
+++ b/core/res/res/layout-land/keyguard_host_view.xml
@@ -37,7 +37,8 @@
android:id="@+id/keyguard_widget_pager_delete_target"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="top|center_horizontal" />
+ android:layout_gravity="top|center_horizontal"
+ androidprv:layout_childType="pageDeleteDropTarget" />
<include layout="@layout/keyguard_widget_pager"
android:id="@+id/app_widget_container"
diff --git a/core/res/res/layout-land/keyguard_status_area.xml b/core/res/res/layout-land/keyguard_status_area.xml
index f562d9f..51ee740 100644
--- a/core/res/res/layout-land/keyguard_status_area.xml
+++ b/core/res/res/layout-land/keyguard_status_area.xml
@@ -53,43 +53,4 @@
android:drawablePadding="4dip"
/>
- <TextView
- android:id="@+id/owner_info"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="@dimen/kg_status_line_font_size"
- />
-
- <TextView
- android:id="@+id/status1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="@dimen/kg_status_line_font_size"
- />
-
- <TextView
- android:id="@+id/status_security_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:gravity="right"
- android:layout_marginTop="12dp"
- android:singleLine="false"
- android:maxLines="3"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="16dp"
- />
</LinearLayout>
\ No newline at end of file
diff --git a/core/res/res/layout-port/keyguard_host_view.xml b/core/res/res/layout-port/keyguard_host_view.xml
index 73f07d5..fb25f9c 100644
--- a/core/res/res/layout-port/keyguard_host_view.xml
+++ b/core/res/res/layout-port/keyguard_host_view.xml
@@ -35,7 +35,8 @@
<FrameLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ androidprv:layout_childType="pageDeleteDropTarget">
<include layout="@layout/keyguard_widget_remove_drop_target"
android:id="@+id/keyguard_widget_pager_delete_target"
android:layout_width="wrap_content"
diff --git a/core/res/res/layout-port/keyguard_status_area.xml b/core/res/res/layout-port/keyguard_status_area.xml
index c1f6aab..d274457 100644
--- a/core/res/res/layout-port/keyguard_status_area.xml
+++ b/core/res/res/layout-port/keyguard_status_area.xml
@@ -56,43 +56,4 @@
/>
</LinearLayout>
- <TextView
- android:id="@+id/owner_info"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="right"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="@dimen/kg_status_line_font_size"
- />
-
- <TextView
- android:id="@+id/status1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="right"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="@dimen/kg_status_line_font_size"
- />
-
- <TextView
- android:id="@+id/status_security_message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="right"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="@dimen/kg_status_line_font_size"
- />
-
</LinearLayout>
diff --git a/core/res/res/layout-sw600dp-port/keyguard_host_view.xml b/core/res/res/layout-sw600dp-port/keyguard_host_view.xml
index a23771b..e3d577d 100644
--- a/core/res/res/layout-sw600dp-port/keyguard_host_view.xml
+++ b/core/res/res/layout-sw600dp-port/keyguard_host_view.xml
@@ -38,7 +38,8 @@
android:id="@+id/keyguard_widget_pager_delete_target"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="top|center_horizontal" />
+ android:layout_gravity="top|center_horizontal"
+ androidprv:layout_childType="pageDeleteDropTarget" />
<include layout="@layout/keyguard_widget_pager"
android:id="@+id/app_widget_container"
diff --git a/core/res/res/layout-sw600dp-port/keyguard_status_area.xml b/core/res/res/layout-sw600dp-port/keyguard_status_area.xml
index 405ac14..88dd760 100644
--- a/core/res/res/layout-sw600dp-port/keyguard_status_area.xml
+++ b/core/res/res/layout-sw600dp-port/keyguard_status_area.xml
@@ -53,29 +53,4 @@
android:drawablePadding="4dip"
/>
- <TextView
- android:id="@+id/owner_info"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="@dimen/kg_status_line_font_size"
- />
-
- <TextView
- android:id="@+id/status1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="@dimen/kg_status_line_font_right_margin"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearance"
- android:textSize="@dimen/kg_status_line_font_size"
- />
</LinearLayout>
diff --git a/core/res/res/layout/keyguard_account_view.xml b/core/res/res/layout/keyguard_account_view.xml
index 17175ca..fa36371 100644
--- a/core/res/res/layout/keyguard_account_view.xml
+++ b/core/res/res/layout/keyguard_account_view.xml
@@ -51,6 +51,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/login"
+ android:layout_toLeftOf="@+id/ok"
android:layout_marginTop="15dip"
android:layout_marginStart="7dip"
android:layout_marginEnd="7dip"
@@ -67,18 +68,20 @@
android:layout_height="wrap_content"
android:layout_margin="7dip"
android:layout_alignParentEnd="true"
- android:layout_alignParentBottom="true"
+ android:layout_below="@id/login"
android:text="@string/kg_login_submit_button"
/>
</RelativeLayout>
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <!-- no room for ECA on this screen right now
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="bottom|center_horizontal"
android:gravity="center_horizontal" />
+ -->
</com.android.internal.policy.impl.keyguard.KeyguardAccountView>
diff --git a/core/res/res/layout/keyguard_add_widget.xml b/core/res/res/layout/keyguard_add_widget.xml
index db166ac..d043fdb 100644
--- a/core/res/res/layout/keyguard_add_widget.xml
+++ b/core/res/res/layout/keyguard_add_widget.xml
@@ -36,7 +36,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="24dp"
- android:src="@drawable/kg_add_widget"
+ android:src="@drawable/keyguard_add_widget_button"
android:contentDescription="@string/keyguard_accessibility_add_widget"/>
</FrameLayout>
</com.android.internal.policy.impl.keyguard.KeyguardWidgetFrame>
diff --git a/core/res/res/layout/keyguard_emergency_carrier_area_empty.xml b/core/res/res/layout/keyguard_emergency_carrier_area_empty.xml
new file mode 100644
index 0000000..2f4adae
--- /dev/null
+++ b/core/res/res/layout/keyguard_emergency_carrier_area_empty.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 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.
+*/
+-->
+
+<!-- This is a blank layout to simplify implementation on landscape on phones
+ it is referenced indirectly by keyguard_eca -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="0dip"
+ android:layout_height="0dip"
+ android:orientation="vertical"
+ android:gravity="center"
+ android:layout_gravity="center_horizontal"
+ android:layout_alignParentBottom="true">
+
+</LinearLayout>
diff --git a/core/res/res/layout/keyguard_face_unlock_view.xml b/core/res/res/layout/keyguard_face_unlock_view.xml
index 12b6052..c9f1176 100644
--- a/core/res/res/layout/keyguard_face_unlock_view.xml
+++ b/core/res/res/layout/keyguard_face_unlock_view.xml
@@ -68,7 +68,7 @@
</com.android.internal.widget.FaceUnlockView>
</FrameLayout>
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/core/res/res/layout/keyguard_glow_pad_container.xml b/core/res/res/layout/keyguard_glow_pad_container.xml
index 376d0e9..d86707f 100644
--- a/core/res/res/layout/keyguard_glow_pad_container.xml
+++ b/core/res/res/layout/keyguard_glow_pad_container.xml
@@ -22,5 +22,5 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
- android:layout_marginBottom="-80dp"/>
+ android:layout_marginBottom="-60dp"/>
</merge>
\ No newline at end of file
diff --git a/core/res/res/layout/keyguard_glow_pad_view.xml b/core/res/res/layout/keyguard_glow_pad_view.xml
index ef1c133..cfd8160 100644
--- a/core/res/res/layout/keyguard_glow_pad_view.xml
+++ b/core/res/res/layout/keyguard_glow_pad_view.xml
@@ -42,4 +42,5 @@
prvandroid:feedbackCount="1"
prvandroid:vibrationDuration="20"
prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
- prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot" />
+ prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+ prvandroid:allowScaling="true" />
diff --git a/core/res/res/layout/keyguard_password_view.xml b/core/res/res/layout/keyguard_password_view.xml
index b9a0553..aab54c3 100644
--- a/core/res/res/layout/keyguard_password_view.xml
+++ b/core/res/res/layout/keyguard_password_view.xml
@@ -93,7 +93,7 @@
android:layout_weight="1"
/>
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/core/res/res/layout/keyguard_pattern_view.xml b/core/res/res/layout/keyguard_pattern_view.xml
index 7eb7698..1bd3e4e 100644
--- a/core/res/res/layout/keyguard_pattern_view.xml
+++ b/core/res/res/layout/keyguard_pattern_view.xml
@@ -35,16 +35,17 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
- <include layout="@layout/keyguard_message_area"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
-
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_gravity="center">
+ <include layout="@layout/keyguard_message_area"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ />
+
<FrameLayout
android:id="@+id/keyguard_bouncer_frame"
android:background="@*android:drawable/kg_bouncer_bg_white"
@@ -64,7 +65,7 @@
android:gravity="center"
android:contentDescription="@string/keyguard_accessibility_pattern_area" />
</FrameLayout>
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/core/res/res/layout/keyguard_pin_view.xml b/core/res/res/layout/keyguard_pin_view.xml
index 5c26a53..6a3b9e6 100644
--- a/core/res/res/layout/keyguard_pin_view.xml
+++ b/core/res/res/layout/keyguard_pin_view.xml
@@ -39,6 +39,7 @@
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="1"
+ android:layoutDirection="ltr"
>
<LinearLayout
android:layout_width="match_parent"
@@ -212,7 +213,7 @@
/>
</LinearLayout>
</LinearLayout>
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/core/res/res/layout/keyguard_selector_view.xml b/core/res/res/layout/keyguard_selector_view.xml
index a36e80b..dfacb6a 100644
--- a/core/res/res/layout/keyguard_selector_view.xml
+++ b/core/res/res/layout/keyguard_selector_view.xml
@@ -24,7 +24,7 @@
android:id="@+id/keyguard_selector_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_maxWidth="@dimen/keyguard_security_width"
+ android:layout_maxWidth="420dp"
android:layout_maxHeight="@dimen/keyguard_security_height"
android:clipChildren="false"
android:clipToPadding="false"
@@ -43,9 +43,17 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
+ <View
+ android:id="@+id/keyguard_selector_view_frame"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="16dp"
+ android:layout_marginRight="16dp"
+ android:background="@*android:drawable/kg_bouncer_bg_white"/>
+
<include layout="@layout/keyguard_glow_pad_container" />
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="48dp"
diff --git a/core/res/res/layout/keyguard_sim_pin_view.xml b/core/res/res/layout/keyguard_sim_pin_view.xml
index 1c9c81e..6e6fe08 100644
--- a/core/res/res/layout/keyguard_sim_pin_view.xml
+++ b/core/res/res/layout/keyguard_sim_pin_view.xml
@@ -44,6 +44,7 @@
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="1"
+ android:layoutDirection="ltr"
>
<LinearLayout
android:layout_width="match_parent"
@@ -218,7 +219,7 @@
</LinearLayout>
</LinearLayout>
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/core/res/res/layout/keyguard_sim_puk_view.xml b/core/res/res/layout/keyguard_sim_puk_view.xml
index 06bd014..0412fdc 100644
--- a/core/res/res/layout/keyguard_sim_puk_view.xml
+++ b/core/res/res/layout/keyguard_sim_puk_view.xml
@@ -45,6 +45,7 @@
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="1"
+ android:layoutDirection="ltr"
>
<LinearLayout
android:layout_width="match_parent"
@@ -219,7 +220,7 @@
</LinearLayout>
</LinearLayout>
- <include layout="@layout/keyguard_emergency_carrier_area"
+ <include layout="@layout/keyguard_eca"
android:id="@+id/keyguard_selector_fade_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/core/res/res/layout/keyguard_widget_remove_drop_target.xml b/core/res/res/layout/keyguard_widget_remove_drop_target.xml
index f9f40ab..294c386 100644
--- a/core/res/res/layout/keyguard_widget_remove_drop_target.xml
+++ b/core/res/res/layout/keyguard_widget_remove_drop_target.xml
@@ -19,9 +19,9 @@
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
- android:padding="20dp"
- android:paddingLeft="40dp"
- android:paddingRight="40dp"
+ android:padding="30dp"
+ android:paddingLeft="60dp"
+ android:paddingRight="60dp"
android:drawableLeft="@drawable/kg_widget_delete_drop_target"
android:drawablePadding="4dp"
android:text="@string/kg_reordering_delete_drop_target_text"
diff --git a/core/res/res/mipmap-xxhdpi/sym_def_app_icon.png b/core/res/res/mipmap-xxhdpi/sym_def_app_icon.png
new file mode 100644
index 0000000..e3f3144
--- /dev/null
+++ b/core/res/res/mipmap-xxhdpi/sym_def_app_icon.png
Binary files differ
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 51d23e8..0fa1b13 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"weke"</string>
<string name="year" msgid="4001118221013892076">"jaar"</string>
<string name="years" msgid="6881577717993213522">"jaar"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 sekonde"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> sekondes"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuut"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minute"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 uur"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> ure"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Videoprobleem"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Hierdie video is nie geldig vir stroming na hierdie toestel nie."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Kan nie hierdie video speel nie."</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index f846ffd..e326639 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"ሳምንቶች"</string>
<string name="year" msgid="4001118221013892076">"ዓመት"</string>
<string name="years" msgid="6881577717993213522">"ዓመታት"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 ሰከንድ"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> ሰከንዶች"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 ደቂቃ"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> ደቂቃዎች"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 ሰዓት"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> ሰዓታት"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"የቪዲዮ ችግር"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"ይቅርታ፣ ይህ ቪዲዮ በዚህ መሣሪያ ለመልቀቅ ትክክል አይደለም።"</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"ይሄን ቪዲዮ ማጫወት አልተቻለም።"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index a7c0c50..82902c4 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"أسابيع"</string>
<string name="year" msgid="4001118221013892076">"سنة"</string>
<string name="years" msgid="6881577717993213522">"أعوام"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"ثانية واحدة"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> من الثواني"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"دقيقة واحدة"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> من الدقائق"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"ساعة واحدة"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> من الساعات"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"مشكلة في الفيديو"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"عذرًا، هذا الفيديو غير صالح للبث على هذا الجهاز."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"لا يمكنك تشغيل هذا الفيديو."</string>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 6ae68f9..711dc46 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"тыд."</string>
<string name="year" msgid="4001118221013892076">"год"</string>
<string name="years" msgid="6881577717993213522">"г."</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 секунда"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> с"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 хвіліна"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> хв."</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 гадзіна"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> гадз."</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Праблема з відэа"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Відэа не падыходзіць для патокавай перадачы на гэту прыладу."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Немагчыма прайграць гэта відэа."</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 838f0cf..859614f 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"седмици"</string>
<string name="year" msgid="4001118221013892076">"година"</string>
<string name="years" msgid="6881577717993213522">"години"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 секунда"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> секунди"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 минута"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> минути"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 час"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> часа"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Проблем с видеоклипа"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Този видеоклип не е валиден за поточно предаване към това устройство."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Този видеоклип не може да се пусне."</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index fdc9506..d3e32c3 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"setmanes"</string>
<string name="year" msgid="4001118221013892076">"any"</string>
<string name="years" msgid="6881577717993213522">"anys"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 segon"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> segons"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minut"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minuts"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 hora"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> hores"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problema amb el vídeo"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Aquest vídeo no és vàlid per a la reproducció en aquest dispositiu."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"No es pot reproduir aquest vídeo."</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 374a6d5..f5ccf1e 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -362,7 +362,7 @@
<string name="permlab_deletePackages" msgid="184385129537705938">"smazání aplikací"</string>
<string name="permdesc_deletePackages" msgid="7411480275167205081">"Umožňuje aplikaci smazat balíčky Android. Škodlivé aplikace mohou toto oprávnění použít ke smazání důležitých aplikací."</string>
<string name="permlab_clearAppUserData" msgid="274109191845842756">"smazání dat ostatních aplikací"</string>
- <string name="permdesc_clearAppUserData" msgid="4625323684125459488">"Umožňuje aplikaci smazat data uživatele."</string>
+ <string name="permdesc_clearAppUserData" msgid="4625323684125459488">"Umožňuje aplikaci vymazat data uživatele."</string>
<string name="permlab_deleteCacheFiles" msgid="3128665571837408675">"smazání mezipaměti ostatních aplikací"</string>
<string name="permdesc_deleteCacheFiles" msgid="3812998599006730196">"Umožňuje aplikaci smazat soubory v mezipaměti."</string>
<string name="permlab_getPackageSize" msgid="7472921768357981986">"výpočet místa pro ukládání aplikací"</string>
@@ -446,7 +446,7 @@
<string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Povoluje aplikaci ovládat základní funkce displejů přes Wi-Fi."</string>
<string name="permlab_modifyAudioSettings" msgid="6095859937069146086">"změna vašeho nastavení zvuku"</string>
<string name="permdesc_modifyAudioSettings" msgid="3522565366806248517">"Umožňuje aplikaci změnit globální nastavení zvuku, například hlasitost či reproduktor pro výstup zvuku."</string>
- <string name="permlab_recordAudio" msgid="3876049771427466323">"nahrání zvuku"</string>
+ <string name="permlab_recordAudio" msgid="3876049771427466323">"nahrávání zvuku"</string>
<string name="permdesc_recordAudio" msgid="4906839301087980680">"Umožňuje aplikaci zaznamenat zvuk pomocí mikrofonu. Toto oprávnění umožňuje aplikaci kdykoliv zaznamenat zvuk bez vašeho svolení."</string>
<string name="permlab_camera" msgid="3616391919559751192">"pořizování fotografií a videí"</string>
<string name="permdesc_camera" msgid="8497216524735535009">"Umožňuje aplikaci pořizovat fotografie a videa pomocí fotoaparátu. Toto oprávnění umožňuje aplikaci používat fotoaparát kdykoliv i bez vašeho svolení."</string>
@@ -587,8 +587,8 @@
<string name="permlab_sdcardRead" product="default" msgid="8235341515605559677">"testování přístupu do chráněného úložiště"</string>
<string name="permdesc_sdcardRead" product="nosdcard" msgid="3642473292348132072">"Umožňuje aplikaci testovat oprávnění pro úložiště USB, které bude dostupné v budoucích zařízeních."</string>
<string name="permdesc_sdcardRead" product="default" msgid="5914402684685848828">"Umožňuje aplikaci testovat oprávnění pro kartu SD, která bude dostupná v budoucích zařízeních."</string>
- <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"úprava nebo smazání obsahu v úložišti USB"</string>
- <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"úprava nebo smazání obsahu na kartě SD"</string>
+ <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"úprava nebo mazání obsahu v úložišti USB"</string>
+ <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"úprava nebo mazání obsahu na kartě SD"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Umožňuje aplikaci zapisovat do úložiště USB."</string>
<string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Umožňuje aplikaci zapisovat na kartu SD."</string>
<string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"Upravit/smazat interní úlož."</string>
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"týd."</string>
<string name="year" msgid="4001118221013892076">"rokem"</string>
<string name="years" msgid="6881577717993213522">"lety"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 sekunda"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> s"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuta"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> min"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 hodina"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> h"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Potíže s videem"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Toto video nelze přenášet datovým proudem do tohoto zařízení."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Toto video nelze přehrát."</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index b0fcf8b..a3dd19a 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"uger"</string>
<string name="year" msgid="4001118221013892076">"år"</string>
<string name="years" msgid="6881577717993213522">"år"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"Ét sekund"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> sekunder"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"Ét minut"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutter"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"Én time"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> timer"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Videoproblem"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Denne video kan ikke streames på denne enhed."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Videoen kan ikke afspilles."</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index b4f87efb..48da500 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -121,7 +121,7 @@
<string name="httpErrorRedirectLoop" msgid="8679596090392779516">"Die Seite enthält zu viele Server-Redirects."</string>
<string name="httpErrorUnsupportedScheme" msgid="5015730812906192208">"Das Protokoll wird nicht unterstützt."</string>
<string name="httpErrorFailedSslHandshake" msgid="96549606000658641">"Es konnte keine sichere Verbindung hergestellt werden."</string>
- <string name="httpErrorBadUrl" msgid="3636929722728881972">"Die Seite kann nicht geöffnet werden, da die URL ungültig ist."</string>
+ <string name="httpErrorBadUrl" msgid="3636929722728881972">"Die Seite kann nicht geöffnet werden, weil die URL ungültig ist."</string>
<string name="httpErrorFile" msgid="2170788515052558676">"Auf die Datei konnte nicht zugegriffen werden."</string>
<string name="httpErrorFileNotFound" msgid="6203856612042655084">"Die angeforderte Datei wurde nicht gefunden."</string>
<string name="httpErrorTooManyRequests" msgid="1235396927087188253">"Es werden zurzeit zu viele Anfragen verarbeitet. Versuchen Sie es später erneut."</string>
@@ -382,8 +382,8 @@
<string name="permlab_diagnostic" msgid="8076743953908000342">"Lese-/Schreibberechtigung für zu Diagnosegruppe gehörige Elemente"</string>
<string name="permdesc_diagnostic" msgid="6608295692002452283">"Ermöglicht der App, alle Elemente in der Diagnosegruppe zu lesen und zu bearbeiten, etwa Dateien in \"/dev\". Dies könnte eine potenzielle Gefährdung für die Stabilität und Sicherheit des Systems darstellen und sollte NUR für hardwarespezifische Diagnosen des Herstellers oder Mobilfunkanbieters verwendet werden."</string>
<string name="permlab_changeComponentState" msgid="6335576775711095931">"App-Komponenten aktivieren oder deaktivieren"</string>
- <string name="permdesc_changeComponentState" product="tablet" msgid="8887435740982237294">"Ermöglicht der App, Komponenten einer anderen App zu aktivieren oder zu deaktivieren. Schädliche Apps können so wichtige Tabletfunktionen deaktivieren. Bei der Erteilung dieser Berechtigung ist Vorsicht geboten, da die App-Komponenten unbrauchbar, inkonsistent oder instabil werden können."</string>
- <string name="permdesc_changeComponentState" product="default" msgid="1827232484416505615">"Ermöglicht der App, Komponenten einer anderen App zu aktivieren oder zu deaktivieren. Schädliche Apps können so wichtige Telefonfunktionen deaktivieren. Bei der Erteilung dieser Berechtigung ist Vorsicht geboten, da die App-Komponenten unbrauchbar, inkonsistent oder instabil werden können."</string>
+ <string name="permdesc_changeComponentState" product="tablet" msgid="8887435740982237294">"Ermöglicht der App, Komponenten einer anderen App zu aktivieren oder zu deaktivieren. Schädliche Apps können so wichtige Tabletfunktionen deaktivieren. Bei der Erteilung dieser Berechtigung ist Vorsicht geboten, weil die App-Komponenten unbrauchbar, inkonsistent oder instabil werden können."</string>
+ <string name="permdesc_changeComponentState" product="default" msgid="1827232484416505615">"Ermöglicht der App, Komponenten einer anderen App zu aktivieren oder zu deaktivieren. Schädliche Apps können so wichtige Telefonfunktionen deaktivieren. Bei der Erteilung dieser Berechtigung ist Vorsicht geboten, weil die App-Komponenten unbrauchbar, inkonsistent oder instabil werden können."</string>
<string name="permlab_grantRevokePermissions" msgid="4627315351093508795">"Berechtigungen erteilen oder entziehen"</string>
<string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"Hiermit kann eine App sich selbst oder anderen Apps bestimmte Berechtigungen erteilen oder entziehen. Schädliche Apps können hierdurch Zugriff auf Funktionen erlangen, den Sie nicht gewährt haben."</string>
<string name="permlab_setPreferredApplications" msgid="8463181628695396391">"Bevorzugte Apps festlegen"</string>
@@ -398,8 +398,8 @@
<string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Ermöglicht der App, sich selbst zu starten, sobald das System gebootet wurde. Dadurch kann es länger dauern, bis das Tablet gestartet wird, und durch die ständige Aktivität der App wird die gesamte Leistung des Tablets beeinträchtigt."</string>
<string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Ermöglicht der App, sich selbst zu starten, sobald das System gebootet wurde. Dadurch kann es länger dauern, bis das Telefon gestartet wird, und durch die ständige Aktivität der App wird die gesamte Leistung des Telefons beeinträchtigt."</string>
<string name="permlab_broadcastSticky" msgid="7919126372606881614">"dauerhaften Broadcast senden"</string>
- <string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"Ermöglicht der App, dauerhafte Broadcasts zu senden, die auch nach Ende des Broadcasts bestehen bleiben. Ein zu intensiver Einsatz kann das Tablet langsam oder instabil machen, da zu viel Arbeitsspeicher belegt wird."</string>
- <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"Ermöglicht der App, dauerhafte Broadcasts zu senden, die auch nach Ende des Broadcasts bestehen bleiben. Ein zu intensiver Einsatz kann das Telefon langsam oder instabil machen, da zu viel Arbeitsspeicher belegt wird."</string>
+ <string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"Ermöglicht der App, weiluerhafte Broadcasts zu senden, die auch nach Ende des Broadcasts bestehen bleiben. Ein zu intensiver Einsatz kann das Tablet langsam oder instabil machen, weil zu viel Arbeitsspeicher belegt wird."</string>
+ <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"Ermöglicht der App, weiluerhafte Broadcasts zu senden, die auch nach Ende des Broadcasts bestehen bleiben. Ein zu intensiver Einsatz kann das Telefon langsam oder instabil machen, weil zu viel Arbeitsspeicher belegt wird."</string>
<string name="permlab_readContacts" msgid="8348481131899886131">"Kontakte lesen"</string>
<string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"Ermöglicht der App, Daten zu den auf Ihrem Tablet gespeicherten Kontakten zu lesen, einschließlich der Häufigkeit, mit der Sie bestimmte Personen angerufen, diesen E-Mails gesendet oder anderweitig mit ihnen kommuniziert haben. Die Berechtigung erlaubt Apps, Ihre Kontaktdaten zu speichern, und schädliche Apps können Kontaktdaten ohne Ihr Wissen weiterleiten."</string>
<string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"Ermöglicht der App, Daten zu den auf Ihrem Telefon gespeicherten Kontakten zu lesen, einschließlich der Häufigkeit, mit der Sie bestimmte Personen angerufen, diesen E-Mails gesendet oder anderweitig mit ihnen kommuniziert haben. Die Berechtigung erlaubt Apps, Ihre Kontaktdaten zu speichern, und schädliche Apps können Kontaktdaten ohne Ihr Wissen weiterleiten."</string>
@@ -485,7 +485,7 @@
<string name="permlab_hardware_test" msgid="4148290860400659146">"Hardware testen"</string>
<string name="permdesc_hardware_test" msgid="6597964191208016605">"Ermöglicht der App, verschiedene Peripherie-Geräte zu Hardware-Testzwecken zu steuern"</string>
<string name="permlab_callPhone" msgid="3925836347681847954">"Telefonnummern direkt anrufen"</string>
- <string name="permdesc_callPhone" msgid="3740797576113760827">"Ermöglicht der App, Telefonnummern zu wählen, ohne dass ein Eingreifen Ihrerseits nötig ist. Dies kann zu unerwarteten Kosten und Anrufen führen. Beachten Sie, dass die App keine Notrufnummern wählen kann. Schädliche Apps verursachen möglicherweise Kosten, indem sie Anrufe ohne Ihre Bestätigung tätigen."</string>
+ <string name="permdesc_callPhone" msgid="3740797576113760827">"Ermöglicht der App, ohne Ihr Eingreifen Telefonnummern zu wählen. Dies kann zu unerwarteten Kosten und Anrufen führen. Beachten Sie, dass die App keine Notrufnummern wählen kann. Schädliche Apps verursachen möglicherweise Kosten, indem sie Anrufe ohne Ihre Bestätigung tätigen."</string>
<string name="permlab_callPrivileged" msgid="4198349211108497879">"Alle Telefonnummern direkt anrufen"</string>
<string name="permdesc_callPrivileged" msgid="1689024901509996810">"Ermöglicht der App, ohne Ihr Eingreifen eine beliebige Telefonnummer zu wählen, einschließlich Notrufnummern. Schädliche Apps können so unnötige und illegale Notrufe tätigen."</string>
<string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"CDMA-Tablet-Einrichtung direkt starten"</string>
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"Wochen"</string>
<string name="year" msgid="4001118221013892076">"Jahr"</string>
<string name="years" msgid="6881577717993213522">"Jahre"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 Sekunde"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> Sekunden"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 Minute"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> Minuten"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 Stunde"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> Stunden"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Videoprobleme"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Dieses Video ist nicht für Streaming auf diesem Gerät gültig."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Video kann nicht wiedergegeben werden."</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 32d6d3d..9b350159 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -762,7 +762,7 @@
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Προσπαθήστε ξανά"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Έγινε υπέρβαση του μέγιστου αριθμού προσπαθειών Face Unlock"</string>
<string name="lockscreen_plugged_in" msgid="8057762828355572315">"Φόρτιση, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
- <string name="lockscreen_charged" msgid="321635745684060624">"Χρεώθηκε"</string>
+ <string name="lockscreen_charged" msgid="321635745684060624">"Μπαταρία πλήρης"</string>
<string name="lockscreen_battery_short" msgid="4477264849386850266">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Συνδέστε τον φορτιστή."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Δεν υπάρχει κάρτα SIM"</string>
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"εβδομάδες"</string>
<string name="year" msgid="4001118221013892076">"έτος"</string>
<string name="years" msgid="6881577717993213522">"έτη"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"Πρόβλημα με το βίντεο"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Αυτό το βίντεο δεν είναι έγκυρο για ροή σε αυτή τη συσκευή."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Δεν μπορείτε να αναπαράγετε αυτό το βίντεο."</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index 888e42e..5ceae63 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"weeks"</string>
<string name="year" msgid="4001118221013892076">"year"</string>
<string name="years" msgid="6881577717993213522">"years"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 second"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> seconds"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minute"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutes"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 hour"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> hours"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Video problem"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"This video isn\'t valid for streaming to this device."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Can\'t play this video."</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 47d436d..648f1f6 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"semanas"</string>
<string name="year" msgid="4001118221013892076">"año"</string>
<string name="years" msgid="6881577717993213522">"años"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 segundo"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> segundos"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuto"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutos"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 hora"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> horas"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problemas de video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"No es posible transmitir este video al dispositivo."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"No se puede reproducir el video."</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index c129483..a5f3526 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"semanas"</string>
<string name="year" msgid="4001118221013892076">"año"</string>
<string name="years" msgid="6881577717993213522">"años"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 segundo"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> segundos"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuto"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutos"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 hora"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> horas"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Incidencias con el vídeo"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Este vídeo no se puede transmitir al dispositivo."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"No se puede reproducir el vídeo."</string>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index 5fb21d4..85167ce 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"nädalat"</string>
<string name="year" msgid="4001118221013892076">"aasta"</string>
<string name="years" msgid="6881577717993213522">"aastat"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 sekund"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> sekundit"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minut"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutit"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 tund"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> tundi"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Probleem videoga"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"See video ei sobi voogesituseks selles seadmes."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Videot ei saa esitada."</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index 50d62b9..95d3bfa 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"هفته"</string>
<string name="year" msgid="4001118221013892076">"سال"</string>
<string name="years" msgid="6881577717993213522">"سال"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"مشکل در ویدئو"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"متأسفیم، این ویدئو برای پخش جریانی با این دستگاه معتبر نیست."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"پخش این ویدئو ممکن نیست."</string>
@@ -1128,10 +1134,10 @@
<string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"همیشه مجاز"</string>
<string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"همیشه غیرمجاز"</string>
<string name="sim_removed_title" msgid="6227712319223226185">"سیم کارت برداشته شد"</string>
- <string name="sim_removed_message" msgid="2333164559970958645">"تا وقتی که با یک سیمکارت معتبر راهاندازی مجدد نکنید شبکه تلفن همراه غیر قابل دسترس خواهد بود."</string>
+ <string name="sim_removed_message" msgid="2333164559970958645">"تا وقتی که با یک سیمکارت معتبر راهاندازی مجدد نکنید شبکهٔ تلفن همراه غیر قابل دسترس خواهد بود."</string>
<string name="sim_done_button" msgid="827949989369963775">"انجام شد"</string>
<string name="sim_added_title" msgid="3719670512889674693">"سیم کارت اضافه شد"</string>
- <string name="sim_added_message" msgid="6599945301141050216">"برای دسترسی به شبکه تلفن همراه، دستگاه خود را مجدداً راهاندازی کنید."</string>
+ <string name="sim_added_message" msgid="6599945301141050216">"برای دسترسی به شبکهٔ تلفن همراه، دستگاه خود را مجدداً راهاندازی کنید."</string>
<string name="sim_restart_button" msgid="4722407842815232347">"راهاندازی مجدد"</string>
<string name="time_picker_dialog_title" msgid="8349362623068819295">"تنظیم زمان"</string>
<string name="date_picker_dialog_title" msgid="5879450659453782278">"تاریخ تنظیم"</string>
@@ -1437,7 +1443,7 @@
<string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه کشیدهاید. بعد از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق، از شما خواسته میشود که با استفاده از یک حساب ایمیل قفل رایانه لوحی خود را باز کنید."\n\n" لطفاً پس از <xliff:g id="NUMBER_2">%d</xliff:g> ثانیه دوباره امتحان کنید."</string>
<string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه کشیدهاید. پس از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق، از شما خواسته میشود که با استفاده از یک حساب ایمیل قفل تلفن خود را باز کنید."\n\n" لطفاً پس از <xliff:g id="NUMBER_2">%d</xliff:g> ثانیه دوباره امتحان کنید."</string>
<string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" — "</string>
- <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"برداشتن"</string>
+ <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"حذف"</string>
<string name="safe_media_volume_warning" product="default" msgid="7382971871993371648">"صدا به بالاتر از سطح ایمن افزایش یابد؟"\n"گوش دادن به صدای بلند برای زمانهای طولانی میتواند به شنوایی شما آسیب برساند."</string>
<string name="continue_to_enable_accessibility" msgid="1626427372316070258">"برای فعال کردن قابلیت دسترسی، با دو انگشت خود همچنان به طرف پایین فشار دهید."</string>
<string name="accessibility_enabled" msgid="1381972048564547685">"قابلیت دسترسی فعال شد."</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index 2b08bea..70f5dc5 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"viikkoa"</string>
<string name="year" msgid="4001118221013892076">"vuosi"</string>
<string name="years" msgid="6881577717993213522">"vuotta"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 sekunti"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> sekuntia"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuutti"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minuuttia"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 tunti"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> tuntia"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Video-ongelma"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Tätä videota ei voi suoratoistaa tällä laitteella."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Videota ei voida toistaa."</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 479fe18..c319c6d 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"semaines"</string>
<string name="year" msgid="4001118221013892076">"année"</string>
<string name="years" msgid="6881577717993213522">"années"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 seconde"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> secondes"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minute"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutes"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 heure"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> heures"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problème vidéo"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Impossible de lire cette vidéo en streaming sur cet appareil."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Impossible de lire la vidéo."</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 65aa563..f272ef4 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"सप्ताह"</string>
<string name="year" msgid="4001118221013892076">"वर्ष"</string>
<string name="years" msgid="6881577717993213522">"वर्ष"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 सेकंड"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> सेकंड"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 मिनट"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> मिनट"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 घंटा"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> घंटे"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"वीडियो समस्याएं"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"यह वीडियो इस उपकरण पर स्ट्रीमिंग के लिए मान्य नहीं है."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"यह वीडियो नहीं चलाया जा सकता."</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index e279216..a581517 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"tjedna"</string>
<string name="year" msgid="4001118221013892076">"godina"</string>
<string name="years" msgid="6881577717993213522">"godina"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 s"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> s"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 min"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> min"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 sat"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> h"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problem s videozapisom"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Ovaj videozapis nije valjan za streaming na ovaj uređaj."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Ovaj videozapis nije moguće reproducirati."</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 88f4046..c53108c 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"hét"</string>
<string name="year" msgid="4001118221013892076">"év"</string>
<string name="years" msgid="6881577717993213522">"év"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 másodperc"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> másodperc"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 perc"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> perc"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 óra"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> óra"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Videoprobléma"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Ezt a videót nem lehet megjeleníteni ezen az eszközön."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Nem lehet lejátszani ezt a videót."</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index b5dfcd5..d281e03 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"minggu"</string>
<string name="year" msgid="4001118221013892076">"tahun"</string>
<string name="years" msgid="6881577717993213522">"tahun"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 detik"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> detik"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 menit"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> menit"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 jam"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> jam"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Masalah video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Video ini tidak valid untuk pengaliran ke perangkat ini."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Tidak dapat memutar video ini."</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index 0edb0c1..92e7c95 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"settimane"</string>
<string name="year" msgid="4001118221013892076">"anno"</string>
<string name="years" msgid="6881577717993213522">"anni"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 secondo"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> secondi"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuto"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minuti"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 ora"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> ore"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problemi video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Questo video non è valido per lo streaming su questo dispositivo."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Impossibile riprodurre il video."</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index bb6a3ac..bfdca9f 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"שבועות"</string>
<string name="year" msgid="4001118221013892076">"שנה"</string>
<string name="years" msgid="6881577717993213522">"שנים"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"שנייה אחת"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> שניות"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"דקה אחת"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> דקות"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"שעה אחת"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> שעות"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"בעיה בווידאו"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"סרטון זה אינו חוקי להעברה כמדיה זורמת למכשיר זה."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"לא ניתן להפעיל סרטון זה."</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 8af0fed..02126f0 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"週間"</string>
<string name="year" msgid="4001118221013892076">"年"</string>
<string name="years" msgid="6881577717993213522">"年"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"動画の問題"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"この動画はこの端末にストリーミングできません。"</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"この動画を再生できません。"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 37c6b01..6bdb5d7 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"주"</string>
<string name="year" msgid="4001118221013892076">"년"</string>
<string name="years" msgid="6881577717993213522">"년"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1초"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g>초"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1분"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g>분"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1시간"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g>시간"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"영상 문제"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"이 기기로 스트리밍하기에 적합하지 않은 동영상입니다."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"동영상을 재생할 수 없습니다."</string>
diff --git a/core/res/res/values-land/alias.xml b/core/res/res/values-land/alias.xml
new file mode 100644
index 0000000..eac5ece
--- /dev/null
+++ b/core/res/res/values-land/alias.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/assets/res/any/colors.xml
+**
+** Copyright 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.
+*/
+-->
+<resources>
+ <!-- Alias used to reference one of two possible layouts in keyguard. -->
+ <item type="layout" name="keyguard_eca">@android:layout/keyguard_emergency_carrier_area_empty</item>
+</resources>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index f2ad504..3e3c396 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"sav."</string>
<string name="year" msgid="4001118221013892076">"metai"</string>
<string name="years" msgid="6881577717993213522">"metai"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 sek."</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> sek."</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 min."</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> min."</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 val."</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> val."</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Vaizdo įrašo problema"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Šis vaizdo įrašas netinkamas srautiniu būdu perduoti į šį įrenginį."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Negalima paleisti šio vaizdo įrašo."</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index ee0b023..dc4312f 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"nedēļas"</string>
<string name="year" msgid="4001118221013892076">"gads"</string>
<string name="years" msgid="6881577717993213522">"gadi"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 s"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> s"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 min"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> min"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 h"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> h"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Video problēma"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Šis video nav derīgs straumēšanai uz šo ierīci."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Nevar atskaņot šo video."</string>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index e89f70f..5e649a7 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"minggu"</string>
<string name="year" msgid="4001118221013892076">"tahun"</string>
<string name="years" msgid="6881577717993213522">"tahun"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 saat"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> saat"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minit"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minit"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 jam"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> jam"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Masalah video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Maaf, video ini tidak sah untuk penstriman ke peranti ini."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Tidak dapat mainkan video ini."</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 65014d3..79cf1ea 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -571,7 +571,7 @@
<string name="permdesc_disableKeyguard" msgid="6034203065077122992">"Lar appen deaktivere tastelåsen og eventuell tilknyttet passordsikkerhet. Et eksempel er at telefonen deaktiverer tastelåsen når du mottar et innkommende anrop, og deretter aktiverer tastelåsen igjen når samtalen er ferdig."</string>
<string name="permlab_readSyncSettings" msgid="6201810008230503052">"lese synkroniseringsinnstillinger"</string>
<string name="permdesc_readSyncSettings" msgid="2706745674569678644">"Lar appen lese synkroniseringsinnstillingene for en konto. For eksempel kan den finne ut om Personer-appen er synkronisert med en konto."</string>
- <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"slår synkronisering av og på"</string>
+ <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"slå synkronisering av og på"</string>
<string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Lar appen endre synkroniseringsinnstillingene for en konto. For eksempel kan dette brukes til å synkronisere Personer-appen med en konto."</string>
<string name="permlab_readSyncStats" msgid="7396577451360202448">"lese synkroniseringsstatistikk"</string>
<string name="permdesc_readSyncStats" msgid="1510143761757606156">"Lar appen lese synkroniseringsstatistikk for en konto, inkludert loggen over synkroniseringsaktiviteter og hvor mye data som er synkronisert."</string>
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"uker"</string>
<string name="year" msgid="4001118221013892076">"år"</string>
<string name="years" msgid="6881577717993213522">"år"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"Ett sekund"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> sekunder"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"Ett minutt"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutter"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"Én time"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> timer"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Videoproblem"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Denne videoen er ikke gyldig for direkteavspilling på enheten."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Kan ikke spille av denne videoen."</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 21fe1cc..50b3a87 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"weken"</string>
<string name="year" msgid="4001118221013892076">"jaar"</string>
<string name="years" msgid="6881577717993213522">"jaren"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 seconde"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> seconden"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuut"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minuten"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 uur"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> uur"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Probleem met video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Deze video kan niet worden gestreamd naar dit apparaat."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Deze video kan niet worden afgespeeld."</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 6f7c072..3a9a0f6 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -762,7 +762,7 @@
<string name="lockscreen_password_wrong" msgid="5737815393253165301">"Spróbuj ponownie."</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Przekroczono maksymalną liczbę prób rozpoznania twarzy."</string>
<string name="lockscreen_plugged_in" msgid="8057762828355572315">"Ładowanie (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
- <string name="lockscreen_charged" msgid="321635745684060624">"Naładowana"</string>
+ <string name="lockscreen_charged" msgid="321635745684060624">"Naładowany"</string>
<string name="lockscreen_battery_short" msgid="4477264849386850266">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Podłącz ładowarkę."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Brak karty SIM"</string>
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"tygodni"</string>
<string name="year" msgid="4001118221013892076">"rok"</string>
<string name="years" msgid="6881577717993213522">"lat"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"Problem z filmem"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Ten film nie nadaje się do strumieniowego przesyłania do tego urządzenia."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Nie można odtworzyć tego filmu."</string>
@@ -1025,8 +1031,8 @@
<string name="no" msgid="5141531044935541497">"Anuluj"</string>
<string name="dialog_alert_title" msgid="2049658708609043103">"Uwaga"</string>
<string name="loading" msgid="7933681260296021180">"Wczytywanie…"</string>
- <string name="capital_on" msgid="1544682755514494298">"Wł."</string>
- <string name="capital_off" msgid="6815870386972805832">"Wył."</string>
+ <string name="capital_on" msgid="1544682755514494298">"Wł"</string>
+ <string name="capital_off" msgid="6815870386972805832">"Wył"</string>
<string name="whichApplication" msgid="4533185947064773386">"Zakończ czynność przez..."</string>
<string name="alwaysUse" msgid="4583018368000610438">"Domyślne dla tej czynności"</string>
<string name="clearDefaultHintMsg" msgid="3252584689512077257">"Wyczyść wartości domyślne w: Ustawienia systemu > Aplikacje > Pobrane."</string>
diff --git a/core/res/res/values-port/alias.xml b/core/res/res/values-port/alias.xml
new file mode 100644
index 0000000..bf3eecb
--- /dev/null
+++ b/core/res/res/values-port/alias.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/assets/res/any/colors.xml
+**
+** Copyright 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.
+*/
+-->
+<resources>
+ <!-- Alias used to reference one of two possible layouts in keyguard. -->
+ <item type="layout" name="keyguard_eca">@android:layout/keyguard_emergency_carrier_area</item>
+</resources>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index fd7211e..f1ac978 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"semanas"</string>
<string name="year" msgid="4001118221013892076">"ano"</string>
<string name="years" msgid="6881577717993213522">"anos"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 segundo"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> segundos"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuto"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutos"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 hora"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> horas"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problema com o vídeo"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Este vídeo não é válido para transmissão em fluxo contínuo neste aparelho."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Não é possível reproduzir este vídeo."</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index ed656fe..d4dd494 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"semanas"</string>
<string name="year" msgid="4001118221013892076">"ano"</string>
<string name="years" msgid="6881577717993213522">"anos"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"Um segundo"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> segundos"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"Um minuto"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minutos"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"Uma hora"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> horas"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problema com o vídeo"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Este vídeo não é válido para transmissão neste dispositivo."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Não é possível reproduzir este vídeo."</string>
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index 0e7aaec..d3efd7e 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -1558,6 +1558,12 @@
<string name="weeks" msgid="6509623834583944518">"emnas"</string>
<string name="year" msgid="4001118221013892076">"onn"</string>
<string name="years" msgid="6881577717993213522">"onns"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<!-- no translation found for VideoView_error_title (3534509135438353077) -->
<skip />
<!-- no translation found for VideoView_error_text_invalid_progressive_playback (3186670335938670444) -->
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index f274acd..d0ef774 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"săptămâni"</string>
<string name="year" msgid="4001118221013892076">"an"</string>
<string name="years" msgid="6881577717993213522">"ani"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"Problemă video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Acest fişier video nu este valid pentru a fi transmis în flux către acest dispozitiv."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Nu puteţi reda acest videoclip"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 42e5f86..31c2802 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -149,7 +149,7 @@
<string name="reboot_safemode_title" msgid="7054509914500140361">"Переход в безопасный режим"</string>
<string name="reboot_safemode_confirm" msgid="55293944502784668">"Перейти в безопасный режим? Все приложения сторонних поставщиков отключатся. Они будут включены по возвращении в обычный режим."</string>
<string name="recent_tasks_title" msgid="3691764623638127888">"Недавние"</string>
- <string name="no_recent_tasks" msgid="8794906658732193473">"В последнее время вы не запускали приложения."</string>
+ <string name="no_recent_tasks" msgid="8794906658732193473">"Список недавно использованных приложений пуст."</string>
<string name="global_actions" product="tablet" msgid="408477140088053665">"Настройки планшетного ПК"</string>
<string name="global_actions" product="default" msgid="2406416831541615258">"Параметры телефона"</string>
<string name="global_action_lock" msgid="2844945191792119712">"Блокировка экрана"</string>
@@ -182,7 +182,7 @@
<string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Доступ к устройствам и сетям через Bluetooth."</string>
<string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Настройки звука"</string>
<string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Изменение настроек звука."</string>
- <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Воздействие на батарею"</string>
+ <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Батарея"</string>
<string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"Использование функций, приводящих к быстрой разрядке батареи."</string>
<string name="permgrouplab_calendar" msgid="5863508437783683902">"Календарь"</string>
<string name="permgroupdesc_calendar" msgid="5777534316982184416">"Прямой доступ к календарю и мероприятиям."</string>
@@ -759,7 +759,7 @@
<string name="lockscreen_return_to_call" msgid="5244259785500040021">"Вернуться к вызову"</string>
<string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Правильно!"</string>
<string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Повторите попытку"</string>
- <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Повторить попытку"</string>
+ <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Повторите попытку"</string>
<string name="faceunlock_multiple_failures" msgid="754137583022792429">"Все попытки войти с помощью Фейсконтроля использованы"</string>
<string name="lockscreen_plugged_in" msgid="8057762828355572315">"Идет зарядка (<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>)"</string>
<string name="lockscreen_charged" msgid="321635745684060624">"Заряжено"</string>
@@ -829,7 +829,7 @@
<string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"PIN-код"</string>
<string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Пароль"</string>
<string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Область ввода графического ключа"</string>
- <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Область прокрутки"</string>
+ <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Область слайдера"</string>
<string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string>
<string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"АБВ"</string>
<string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string>
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"нед."</string>
<string name="year" msgid="4001118221013892076">"г."</string>
<string name="years" msgid="6881577717993213522">"г."</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"Ошибка"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Это видео не предназначено для потокового воспроизведения на данном устройстве."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Не удалось воспроизвести видео."</string>
@@ -1140,7 +1146,7 @@
<string name="perms_new_perm_prefix" msgid="8257740710754301407"><font size="12" fgcolor="#ff33b5e5">"НОВОЕ: "</font></string>
<string name="perms_description_app" msgid="5139836143293299417">"Источник: <xliff:g id="APP_NAME">%1$s</xliff:g>."</string>
<string name="no_permissions" msgid="7283357728219338112">"Не требуется разрешений"</string>
- <string name="perm_costs_money" msgid="4902470324142151116">"за это может взиматься плата"</string>
+ <string name="perm_costs_money" msgid="4902470324142151116">"это может стоить вам денег!"</string>
<string name="usb_storage_activity_title" msgid="4465055157209648641">"Запоминающее устройство USB"</string>
<string name="usb_storage_title" msgid="5901459041398751495">"USB-подключение установлено"</string>
<string name="usb_storage_message" product="nosdcard" msgid="3308538094316477839">"Устройство подключено к компьютеру через USB-порт. Нажмите кнопку ниже, чтобы скопировать файлы с компьютера на USB-накопитель Android-устройства."</string>
@@ -1370,7 +1376,7 @@
<string name="fingerprints" msgid="4516019619850763049">"Отпечатки:"</string>
<string name="sha256_fingerprint" msgid="4391271286477279263">"Отпечаток SHA-256:"</string>
<string name="sha1_fingerprint" msgid="7930330235269404581">"Отпечаток SHA-1:"</string>
- <string name="activity_chooser_view_see_all" msgid="4292569383976636200">"Просмотреть все"</string>
+ <string name="activity_chooser_view_see_all" msgid="4292569383976636200">"Показать все"</string>
<string name="activity_chooser_view_dialog_title_default" msgid="4710013864974040615">"Выберите"</string>
<string name="share_action_provider_share_with" msgid="5247684435979149216">"Открыть доступ"</string>
<string name="status_bar_device_locked" msgid="3092703448690669768">"Устройство заблокировано."</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index c364380..12a3b8f 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"týždne"</string>
<string name="year" msgid="4001118221013892076">"rok"</string>
<string name="years" msgid="6881577717993213522">"roky"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"Problém s videom"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Je nám ľúto, ale toto video sa nedá streamovať do tohto zariadenia."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Toto video nie je možné prehrať."</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index 7f94c204..3e9273d 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"tednov"</string>
<string name="year" msgid="4001118221013892076">"leto"</string>
<string name="years" msgid="6881577717993213522">"let"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 sekunda"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> s"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuta"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> min"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 ura"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> h"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Težava z videoposnetkom"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Ta videoposnetek ni veljaven za pretakanje v to napravo."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Tega videoposnetka ni mogoče predvajati."</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 5a94aad..53604f1 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"недеље(а)"</string>
<string name="year" msgid="4001118221013892076">"година"</string>
<string name="years" msgid="6881577717993213522">"годинe(а)"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"Проблем са видео снимком"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Овај видео не може да се стримује на овом уређају."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Не можете да пустите овај видео."</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index 2737d62..d36ae44 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -132,7 +132,7 @@
<string name="low_memory" product="tablet" msgid="6494019234102154896">"Pekdatorns lagringsutrymme är fullt. Ta bort några filer för att frigöra utrymme."</string>
<string name="low_memory" product="default" msgid="3475999286680000541">"Mobilens lagringsutrymme är fullt. Ta bort några filer för att frigöra utrymme."</string>
<string name="me" msgid="6545696007631404292">"Jag"</string>
- <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Alternativ för pekdatorn"</string>
+ <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Alternativ för surfplattan"</string>
<string name="power_dialog" product="default" msgid="1319919075463988638">"Telefonalternativ"</string>
<string name="silent_mode" msgid="7167703389802618663">"Tyst läge"</string>
<string name="turn_on_radio" msgid="3912793092339962371">"Aktivera trådlöst"</string>
@@ -150,7 +150,7 @@
<string name="reboot_safemode_confirm" msgid="55293944502784668">"Vill du starta om datorn i felsäkert läge? Då inaktiveras alla appar från tredje part som du har installerat. Apparna återställs när du startar om datorn igen."</string>
<string name="recent_tasks_title" msgid="3691764623638127888">"Senaste"</string>
<string name="no_recent_tasks" msgid="8794906658732193473">"Inga nya appar."</string>
- <string name="global_actions" product="tablet" msgid="408477140088053665">"Alternativ för pekdatorn"</string>
+ <string name="global_actions" product="tablet" msgid="408477140088053665">"Alternativ för surfplattan"</string>
<string name="global_actions" product="default" msgid="2406416831541615258">"Telefonalternativ"</string>
<string name="global_action_lock" msgid="2844945191792119712">"Skärmlås"</string>
<string name="global_action_power_off" msgid="4471879440839879722">"Stäng av"</string>
@@ -450,7 +450,7 @@
<string name="permdesc_recordAudio" msgid="4906839301087980680">"Tillåter att appen spelar in ljud med mikrofonen. Med den här behörigheten tillåts appen att spela in ljud när som helst utan ditt godkännande."</string>
<string name="permlab_camera" msgid="3616391919559751192">"ta bilder och spela in videoklipp"</string>
<string name="permdesc_camera" msgid="8497216524735535009">"Tillåter att appen tar bilder och spelar in videor med kameran. Med den här behörigheten tillåts appen att använda kameran när som helst utan ditt godkännande."</string>
- <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"inaktivera pekdatorn permanent"</string>
+ <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"inaktivera surfplattan permanent"</string>
<string name="permlab_brick" product="default" msgid="8337817093326370537">"inaktivera telefonen permanent"</string>
<string name="permdesc_brick" product="tablet" msgid="4334818808001699530">"Tillåter att appen inaktiverar hela pekdatorn permanent. Detta är mycket farligt."</string>
<string name="permdesc_brick" product="default" msgid="5788903297627283099">"Tillåter att appen inaktiverar hela mobilen permanent. Detta är mycket farligt."</string>
@@ -501,16 +501,16 @@
<string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"Tillåter att appen styr enhetens telefonfunktioner. En app med den här behörigheten kan byta nätverk, aktivera/inaktivera mobilens radio och liknande utan att meddela dig."</string>
<string name="permlab_readPhoneState" msgid="9178228524507610486">"läsa telefonens status och identitet"</string>
<string name="permdesc_readPhoneState" msgid="1639212771826125528">"Tillåter att appen kommer åt enhetens telefonfunktioner. Med den här behörigheten tillåts appen att identifiera mobilens telefonnummer och enhets-ID, om ett samtal pågår och vilket nummer samtalet är kopplat till."</string>
- <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"förhindra att pekdatorn går in i viloläge"</string>
+ <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"förhindra att surfplattan går in i viloläge"</string>
<string name="permlab_wakeLock" product="default" msgid="573480187941496130">"förhindra att telefonen sätts i viloläge"</string>
<string name="permdesc_wakeLock" product="tablet" msgid="7311319824400447868">"Tillåter att appen förhindrar att pekdatorn går in i viloläge."</string>
<string name="permdesc_wakeLock" product="default" msgid="8559100677372928754">"Tillåter att appen förhindrar att mobilen går in i viloläge."</string>
- <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"slå på eller stänga av pekdatorn"</string>
+ <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"slå på eller stänga av surfplattan"</string>
<string name="permlab_devicePower" product="default" msgid="4928622470980943206">"sätta på eller stänga av telefonen"</string>
<string name="permdesc_devicePower" product="tablet" msgid="6689862878984631831">"Tillåter att appen slår på eller stänger av pekdatorn."</string>
<string name="permdesc_devicePower" product="default" msgid="6037057348463131032">"Tillåter att appen slår på eller stänger av mobilen."</string>
<string name="permlab_factoryTest" msgid="3715225492696416187">"kör i fabrikstestläge"</string>
- <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Köra som ett testläge för tillverkaren på låg nivå. På så sätt får du fullständig åtkomst till pekdatorns maskinvara. Är endast tillgänglig när pekdatorn körs i tillverkarens testläge."</string>
+ <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Köra som ett testläge för tillverkaren på låg nivå. På så sätt får du fullständig åtkomst till surfplattans maskinvara. Är endast tillgänglig när surfplattan körs i tillverkarens testläge."</string>
<string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Köra som ett testläge för tillverkaren på låg nivå. På så sätt får du fullständig åtkomst till telefonens maskinvara. Är endast tillgänglig när telefonen körs i tillverkarens testläge."</string>
<string name="permlab_setWallpaper" msgid="6627192333373465143">"ange bakgrund"</string>
<string name="permdesc_setWallpaper" msgid="7373447920977624745">"Tillåter att appen anger systemets bakgrund."</string>
@@ -766,7 +766,7 @@
<string name="lockscreen_battery_short" msgid="4477264849386850266">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
<string name="lockscreen_low_battery" msgid="1482873981919249740">"Anslut din laddare."</string>
<string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"Inget SIM-kort"</string>
- <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Inget SIM-kort i pekdatorn."</string>
+ <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Inget SIM-kort i surfplattan."</string>
<string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Inget SIM-kort i telefonen."</string>
<string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"Sätt i ett SIM-kort."</string>
<string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM-kort saknas eller kan inte läsas. Sätt i ett SIM-kort."</string>
@@ -788,9 +788,9 @@
<string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"Du har angett fel lösenord <xliff:g id="NUMBER_0">%d</xliff:g> gånger. "\n\n"Försök igen om <xliff:g id="NUMBER_1">%d</xliff:g> sekunder."</string>
<string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%d</xliff:g> försök till ombeds du att låsa upp pekdatorn med din Google-inloggning."\n\n" Försök igen om <xliff:g id="NUMBER_2">%d</xliff:g> sekunder."</string>
<string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"Du har ritat ditt grafiska lösenord fel <xliff:g id="NUMBER_0">%d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%d</xliff:g> försök till ombeds du att låsa upp mobilen med uppgifterna som du använder när du loggar in på Google."\n\n" Försök igen om <xliff:g id="NUMBER_2">%d</xliff:g> sekunder."</string>
- <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Du har försökt låsa upp pekdatorn på fel sätt <xliff:g id="NUMBER_0">%d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%d</xliff:g> misslyckade försök till kommer pekdatorn att återställas till fabriksinställningarna. Du förlorar då alla användardata."</string>
+ <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Du har försökt låsa upp surfplattan på fel sätt <xliff:g id="NUMBER_0">%d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%d</xliff:g> misslyckade försök till kommer pekdatorn att återställas till fabriksinställningarna. Du förlorar då alla användardata."</string>
<string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"Du har försökt låsa upp mobilen på fel sätt <xliff:g id="NUMBER_0">%d</xliff:g> gånger. Efter <xliff:g id="NUMBER_1">%d</xliff:g> misslyckade försök till kommer mobilen att återställas till fabriksinställningarna. Du förlorar då alla användardata."</string>
- <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Du har försökt låsa upp pekdatorn på fel sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Pekdatorn återställs nu till fabriksinställningarna."</string>
+ <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Du har försökt låsa upp surfplattan på fel sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Surfplattan återställs nu till fabriksinställningarna."</string>
<string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"Du har försökt låsa upp mobilen på fel sätt <xliff:g id="NUMBER">%d</xliff:g> gånger. Mobilen återställs nu till fabriksinställningarna."</string>
<string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"Försök igen om <xliff:g id="NUMBER">%d</xliff:g> sekunder."</string>
<string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Glömt ditt grafiska lösenord?"</string>
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"veckor"</string>
<string name="year" msgid="4001118221013892076">"år"</string>
<string name="years" msgid="6881577717993213522">"år"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 sekund"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> sekunder"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minut"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> minuter"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 timme"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> timmar"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Videoproblem"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Videon kan tyvärr inte spelas upp i den här enheten."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Det går inte att spela upp videon."</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index afdb39e..14f2b22 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -257,7 +257,7 @@
<string name="permdesc_getTasks" msgid="7454215995847658102">"Inaruhusu programu kurudisha taarifa kuhusu kazi zinazoendeshwa sasa na hivi karibuni. Hii inaweza kuruhusu programu kugundua taarifa kuhusu ni programu zipi zinazotumika kwenye kifaa."</string>
<string name="permlab_interactAcrossUsers" msgid="7114255281944211682">"Tagusana na watumiaji"</string>
<string name="permdesc_interactAcrossUsers" msgid="364670963623385786">"Inaruhusu programu kutenda vitendo kwa watumiaji tofauti kwenye kifaa. Programu hasidi huenda zikatumia hii ili kukiuka ulinzi kati ya watumiaji."</string>
- <string name="permlab_interactAcrossUsersFull" msgid="2567734285545074105">"leseni kamili ili kutagusana na watumiaji"</string>
+ <string name="permlab_interactAcrossUsersFull" msgid="2567734285545074105">"leseni kamili ili kushirikiana na watumiaji"</string>
<string name="permdesc_interactAcrossUsersFull" msgid="376841368395502366">"Inaruhusu miingialiano yote inayowezekana kwa watumiaji."</string>
<string name="permlab_manageUsers" msgid="1676150911672282428">"dhibiti watumiaji"</string>
<string name="permdesc_manageUsers" msgid="8409306667645355638">"Inaruhusu programu kudhibiti watumiaji kwenye kifaa, pamoja na hoji, uundaji na ufutaji."</string>
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"wiki"</string>
<string name="year" msgid="4001118221013892076">"mwaka"</string>
<string name="years" msgid="6881577717993213522">"miaka"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"Sekunde 1"</item>
+ <item quantity="other" msgid="1886107766577166786">"Sekunde <xliff:g id="COUNT">%d</xliff:g>"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"Dakika 1"</item>
+ <item quantity="other" msgid="3165187169224908775">"Dakika <xliff:g id="COUNT">%d</xliff:g>"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"Saa 1"</item>
+ <item quantity="other" msgid="3863962854246773930">"Saa <xliff:g id="COUNT">%d</xliff:g>"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Shida ya video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Video hii si halali kutiririshwa kwa kifaa hiki."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Haiwezi kucheza video hii."</string>
diff --git a/core/res/res/values-sw600dp/alias.xml b/core/res/res/values-sw600dp/alias.xml
new file mode 100644
index 0000000..bf3eecb
--- /dev/null
+++ b/core/res/res/values-sw600dp/alias.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/assets/res/any/colors.xml
+**
+** Copyright 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.
+*/
+-->
+<resources>
+ <!-- Alias used to reference one of two possible layouts in keyguard. -->
+ <item type="layout" name="keyguard_eca">@android:layout/keyguard_emergency_carrier_area</item>
+</resources>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 0a86a86..d26b2d5 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"สัปดาห์"</string>
<string name="year" msgid="4001118221013892076">"ปี"</string>
<string name="years" msgid="6881577717993213522">" ปี"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"ปัญหาเกี่ยวกับวิดีโอ"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"วิดีโอนี้ไม่สามารถสตรีมไปยังอุปกรณ์นี้"</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"ไม่สามารถเล่นวิดีโอนี้"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 072f6df..3d68842 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"mga linggo"</string>
<string name="year" msgid="4001118221013892076">"taon"</string>
<string name="years" msgid="6881577717993213522">"mga taon"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 segundo"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> (na) segundo"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 minuto"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> (na) minuto"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 oras"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> (na) oras"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Problema sa video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Hindi wasto ang video na ito para sa streaming sa device na ito."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Hindi ma-play ang video na ito."</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index dbb7b0d..d775233 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"hafta"</string>
<string name="year" msgid="4001118221013892076">"yıl"</string>
<string name="years" msgid="6881577717993213522">"yıl"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 saniye"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> saniye"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 dakika"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> dakika"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 saat"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> saat"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Video sorunu"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Bu video bu cihazda akış için uygun değil."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Bu video oynatılamıyor."</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 6512007..cc33b7b 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"тижн."</string>
<string name="year" msgid="4001118221013892076">"рік"</string>
<string name="years" msgid="6881577717993213522">"р."</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 с"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> с"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 хв"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> хв"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 год"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> год"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Проблема з відео"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Відео не придатне для потокового передавання в цей пристрій."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Неможливо відтворити це відео."</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 7fb3412..3e47de5 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"tuần"</string>
<string name="year" msgid="4001118221013892076">"năm"</string>
<string name="years" msgid="6881577717993213522">"năm"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 giây"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> giây"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 phút"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> phút"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 giờ"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> giờ"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Sự cố video"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Video này không hợp lệ để phát trực tuyến đến thiết bị này."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Không thể phát video này."</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 251389b..e21ebcf 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"周"</string>
<string name="year" msgid="4001118221013892076">"年"</string>
<string name="years" msgid="6881577717993213522">"年"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 秒"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> 秒"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 分钟"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> 分钟"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 小时"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> 小时"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"视频问题"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"抱歉,该视频不适合在此设备上播放。"</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"无法播放此视频。"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 473b9d0..a1286f1 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -993,6 +993,12 @@
<string name="weeks" msgid="6509623834583944518">"週"</string>
<string name="year" msgid="4001118221013892076">"年"</string>
<string name="years" msgid="6881577717993213522">"年"</string>
+ <!-- no translation found for duration_seconds:one (6962015528372969481) -->
+ <!-- no translation found for duration_seconds:other (1886107766577166786) -->
+ <!-- no translation found for duration_minutes:one (4915414002546085617) -->
+ <!-- no translation found for duration_minutes:other (3165187169224908775) -->
+ <!-- no translation found for duration_hours:one (8917467491248809972) -->
+ <!-- no translation found for duration_hours:other (3863962854246773930) -->
<string name="VideoView_error_title" msgid="3534509135438353077">"影片發生問題"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"這部影片的格式無效,因此無法在此裝置中串流播放。"</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"無法播放這部影片。"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index eb1cbfb..e422e26 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -993,6 +993,18 @@
<string name="weeks" msgid="6509623834583944518">"amaviki"</string>
<string name="year" msgid="4001118221013892076">"unyaka"</string>
<string name="years" msgid="6881577717993213522">"iminyaka"</string>
+ <plurals name="duration_seconds">
+ <item quantity="one" msgid="6962015528372969481">"1 isekhondi"</item>
+ <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> amasekhondi"</item>
+ </plurals>
+ <plurals name="duration_minutes">
+ <item quantity="one" msgid="4915414002546085617">"1 iminithi"</item>
+ <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> amaminithi"</item>
+ </plurals>
+ <plurals name="duration_hours">
+ <item quantity="one" msgid="8917467491248809972">"1 ihora"</item>
+ <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> amahora"</item>
+ </plurals>
<string name="VideoView_error_title" msgid="3534509135438353077">"Inkinga yevidiyo"</string>
<string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Uxolo, le vidiyo ayilungele ukusakaza bukhomo kwale divaysi."</string>
<string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Iyehluleka ukudlala levidiyo."</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index bd424b1..48ee429 100755
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2107,8 +2107,8 @@
<enum name="locale" value="3" />
</attr>
- <!-- Direction of the text. A heuristic is used to determine the resolved text direction
- of paragraphs. -->
+ <!-- Defines the direction of the text. A heuristic is used to determine the resolved text
+ direction of paragraphs. -->
<attr name="textDirection" format="integer">
<!-- Default -->
<enum name="inherit" value="0" />
@@ -2128,7 +2128,7 @@
<enum name="locale" value="5" />
</attr>
- <!-- Alignment of the text. A heuristic is used to determine the resolved
+ <!-- Defines the alignment of the text. A heuristic is used to determine the resolved
text alignment. -->
<attr name="textAlignment" format="integer">
<!-- Default -->
@@ -5484,6 +5484,11 @@
<attr name="magneticTargets" format="boolean" />
<attr name="gravity" />
+
+ <!-- Determine whether the glow pad is allowed to scale to fit the bounds indicated
+ by its parent. If this is set to false, no scaling will occur. If this is set to true
+ scaling will occur to fit for any axis in which gravity is set to center. -->
+ <attr name="allowScaling" format="boolean" />
</declare-styleable>
<!-- =============================== -->
@@ -5815,6 +5820,8 @@
<!-- This is a handle that is used for expanding the
security challenge container when it is collapsed. -->
<enum name="expandChallengeHandle" value="6" />
+ <!-- Delete drop target. This will be the drop target to delete pages. -->
+ <enum name="pageDeleteDropTarget" value="7" />
</attr>
<declare-styleable name="SlidingChallengeLayout_Layout">
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 3b7d73a..66c23a0 100755
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -1000,4 +1000,25 @@
provisioning on some carriers, working around a bug (7305641)
where if the preferred is used we don't try the others. -->
<bool name="config_dontPreferApn">false</bool>
+
+ <!-- Vibrator pattern to be used as the default for notifications
+ that specify DEFAULT_VIBRATE.
+ -->
+ <integer-array name="config_defaultNotificationVibePattern">
+ <item>0</item>
+ <item>350</item>
+ <item>250</item>
+ <item>350</item>
+ </integer-array>
+
+ <!-- Vibrator pattern to be used as the default for notifications
+ that do not specify vibration but vibrate anyway because the device
+ is in vibrate mode.
+ -->
+ <integer-array name="config_notificationFallbackVibePattern">
+ <item>0</item>
+ <item>100</item>
+ <item>150</item>
+ <item>100</item>
+ </integer-array>
</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 9932d1e..80c2a13 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2838,6 +2838,21 @@
<!-- Appened to express the value is this unit of time. -->
<string name="years">years</string>
+ <!-- Phrase describing a time duration using seconds [CHAR LIMIT=16] -->
+ <plurals name="duration_seconds">
+ <item quantity="one">1 second</item>
+ <item quantity="other"><xliff:g id="count">%d</xliff:g> seconds</item>
+ </plurals>
+ <!-- Phrase describing a time duration using minutes [CHAR LIMIT=16] -->
+ <plurals name="duration_minutes">
+ <item quantity="one">1 minute</item>
+ <item quantity="other"><xliff:g id="count">%d</xliff:g> minutes</item>
+ </plurals>
+ <!-- Phrase describing a time duration using hours [CHAR LIMIT=16] -->
+ <plurals name="duration_hours">
+ <item quantity="one">1 hour</item>
+ <item quantity="other"><xliff:g id="count">%d</xliff:g> hours</item>
+ </plurals>
<!-- Title for error alert when a video cannot be played. it can be used by any app. -->
<string name="VideoView_error_title">Video problem</string>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index f2e4d51..1d29d8c 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -870,6 +870,9 @@
<java-symbol type="plurals" name="abbrev_num_hours_ago" />
<java-symbol type="plurals" name="abbrev_num_minutes_ago" />
<java-symbol type="plurals" name="abbrev_num_seconds_ago" />
+ <java-symbol type="plurals" name="duration_hours" />
+ <java-symbol type="plurals" name="duration_minutes" />
+ <java-symbol type="plurals" name="duration_seconds" />
<java-symbol type="plurals" name="in_num_days" />
<java-symbol type="plurals" name="in_num_hours" />
<java-symbol type="plurals" name="in_num_minutes" />
@@ -1189,6 +1192,9 @@
<java-symbol type="anim" name="keyguard_security_animate_out" />
<java-symbol type="anim" name="keyguard_security_fade_in" />
<java-symbol type="anim" name="keyguard_security_fade_out" />
+ <java-symbol type="anim" name="keyguard_action_assist_exit" />
+ <java-symbol type="anim" name="keyguard_action_assist_enter" />
+
<java-symbol type="array" name="config_keyboardTapVibePattern" />
<java-symbol type="array" name="config_longPressVibePattern" />
<java-symbol type="array" name="config_safeModeDisabledVibePattern" />
@@ -1257,7 +1263,7 @@
<java-symbol type="drawable" name="magnified_region_frame" />
<java-symbol type="drawable" name="menu_background" />
<java-symbol type="drawable" name="stat_sys_secure" />
- <java-symbol type="drawable" name="kg_bouncer_bg_white" />
+ <java-symbol type="drawable" name="kg_widget_bg_padded" />
<java-symbol type="id" name="action_mode_bar_stub" />
<java-symbol type="id" name="alarm_status" />
<java-symbol type="id" name="backspace" />
@@ -1343,7 +1349,6 @@
<java-symbol type="id" name="clock_text" />
<java-symbol type="id" name="clock_view" />
<java-symbol type="id" name="keyguard_multi_user_selector" />
- <java-symbol type="id" name="status_security_message" />
<java-symbol type="id" name="sliding_layout" />
<java-symbol type="id" name="keyguard_add_widget" />
<java-symbol type="id" name="keyguard_add_widget_view" />
@@ -1351,6 +1356,7 @@
<java-symbol type="id" name="multi_pane_challenge" />
<java-symbol type="id" name="keyguard_user_selector" />
<java-symbol type="id" name="key_enter" />
+ <java-symbol type="id" name="keyguard_selector_view_frame" />
<java-symbol type="integer" name="config_carDockRotation" />
<java-symbol type="integer" name="config_defaultUiModeType" />
<java-symbol type="integer" name="config_deskDockRotation" />
@@ -1522,6 +1528,8 @@
<java-symbol type="array" name="radioAttributes" />
<java-symbol type="array" name="config_oemUsbModeOverride" />
<java-symbol type="array" name="config_locationProviderPackageNames" />
+ <java-symbol type="array" name="config_defaultNotificationVibePattern" />
+ <java-symbol type="array" name="config_notificationFallbackVibePattern" />
<java-symbol type="bool" name="config_animateScreenLights" />
<java-symbol type="bool" name="config_automatic_brightness_available" />
<java-symbol type="bool" name="config_sf_limitedAlpha" />
diff --git a/core/tests/coretests/src/android/text/format/DateUtilsTest.java b/core/tests/coretests/src/android/text/format/DateUtilsTest.java
new file mode 100644
index 0000000..cf42bb1
--- /dev/null
+++ b/core/tests/coretests/src/android/text/format/DateUtilsTest.java
@@ -0,0 +1,48 @@
+/*
+ * 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.
+ */
+
+package android.text.format;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import junit.framework.TestCase;
+
+public class DateUtilsTest extends TestCase {
+ @SmallTest
+ public void testFormatDurationSeconds() throws Exception {
+ assertEquals("0 seconds", DateUtils.formatDuration(0));
+ assertEquals("0 seconds", DateUtils.formatDuration(1));
+ assertEquals("0 seconds", DateUtils.formatDuration(499));
+ assertEquals("1 second", DateUtils.formatDuration(500));
+ assertEquals("1 second", DateUtils.formatDuration(1000));
+ assertEquals("2 seconds", DateUtils.formatDuration(1500));
+ }
+
+ @SmallTest
+ public void testFormatDurationMinutes() throws Exception {
+ assertEquals("59 seconds", DateUtils.formatDuration(59000));
+ assertEquals("60 seconds", DateUtils.formatDuration(59500));
+ assertEquals("1 minute", DateUtils.formatDuration(60000));
+ assertEquals("2 minutes", DateUtils.formatDuration(120000));
+ }
+
+ @SmallTest
+ public void testFormatDurationHours() throws Exception {
+ assertEquals("59 minutes", DateUtils.formatDuration(3540000));
+ assertEquals("1 hour", DateUtils.formatDuration(3600000));
+ assertEquals("48 hours", DateUtils.formatDuration(172800000));
+ }
+}
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index 13d1791..83ecdd9 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -134,6 +134,7 @@
<assign-permission name="android.permission.ACCESS_NETWORK_STATE" uid="shell" />
<assign-permission name="android.permission.ACCESS_WIFI_STATE" uid="shell" />
<assign-permission name="android.permission.BLUETOOTH" uid="shell" />
+ <assign-permission name="android.permission.EXPAND_STATUS_BAR" uid="shell" />
<!-- System tool permissions granted to the shell. -->
<assign-permission name="android.permission.GET_TASKS" uid="shell" />
<assign-permission name="android.permission.CHANGE_CONFIGURATION" uid="shell" />
diff --git a/docs/downloads/training/NotifyUser.zip b/docs/downloads/training/NotifyUser.zip
new file mode 100644
index 0000000..c335157
--- /dev/null
+++ b/docs/downloads/training/NotifyUser.zip
Binary files differ
diff --git a/docs/html/about/about_toc.cs b/docs/html/about/about_toc.cs
index 86c5c00..64cdadf 100644
--- a/docs/html/about/about_toc.cs
+++ b/docs/html/about/about_toc.cs
@@ -10,6 +10,7 @@
<div class="nav-section-header"><a href="<?cs var:toroot ?>about/versions/jelly-bean.html">
<span class="en">Jelly Bean</span></a></div>
<ul>
+ <li><a href="<?cs var:toroot ?>about/versions/android-4.2.html">Android 4.2 APIs</a></li>
<li><a href="<?cs var:toroot ?>about/versions/android-4.1.html">Android 4.1 APIs</a></li>
</ul>
</li>
diff --git a/docs/html/about/versions/android-2.3.3.jd b/docs/html/about/versions/android-2.3.3.jd
index 7a9711d..3b40831 100644
--- a/docs/html/about/versions/android-2.3.3.jd
+++ b/docs/html/about/versions/android-2.3.3.jd
@@ -27,7 +27,8 @@
<p>
<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>Android 2.3.3 is a small feature release that adds several improvements
+<p>Android 2.3.3 ({@link android.os.Build.VERSION_CODES#GINGERBREAD_MR1})
+is a small feature release that adds several improvements
and APIs to the Android 2.3 platform.</p>
<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
diff --git a/docs/html/about/versions/android-2.3.4.jd b/docs/html/about/versions/android-2.3.4.jd
index 3bb0d7b..b80b4b2 100644
--- a/docs/html/about/versions/android-2.3.4.jd
+++ b/docs/html/about/versions/android-2.3.4.jd
@@ -28,7 +28,8 @@
<p>
<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>Android 2.3.4 is a maintenance release that adds several bug fixes and patches
+<p>Android 2.3.4 ({@link android.os.Build.VERSION_CODES#GINGERBREAD_MR1})
+is a maintenance release that adds several bug fixes and patches
to the Android 2.3 platform, without any API changes from Android 2.3.3. Additionally,
Android 2.3.4 brings support for the Open Accessory API to mobile devices,
through the optional <a href="#usb">Open Accessory Library</a>. </p>
diff --git a/docs/html/about/versions/android-2.3.jd b/docs/html/about/versions/android-2.3.jd
index 89bf432..4feff51 100644
--- a/docs/html/about/versions/android-2.3.jd
+++ b/docs/html/about/versions/android-2.3.jd
@@ -27,7 +27,8 @@
<p>
<em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
+<p>For developers, the Android {@sdkPlatformVersion}
+({@link android.os.Build.VERSION_CODES#GINGERBREAD})platform is available as a
downloadable component for the Android SDK. The downloadable platform includes
an Android library and system image, as well as a set of emulator skins and
more. To get started developing or testing against Android {@sdkPlatformVersion},
diff --git a/docs/html/about/versions/android-3.0.jd b/docs/html/about/versions/android-3.0.jd
index 5bfdffc..68ac03a 100644
--- a/docs/html/about/versions/android-3.0.jd
+++ b/docs/html/about/versions/android-3.0.jd
@@ -25,7 +25,8 @@
<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>For developers, the Android {@sdkPlatformVersion} platform is available as a downloadable
+<p>For developers, the Android {@sdkPlatformVersion} platform
+({@link android.os.Build.VERSION_CODES#HONEYCOMB}) is available as a downloadable
component for the Android SDK. The downloadable platform includes an Android library and system
image, as well as a set of emulator skins and more. The downloadable platform includes no external
libraries.</p>
diff --git a/docs/html/about/versions/android-3.1.jd b/docs/html/about/versions/android-3.1.jd
index b0e2f08..c39f174 100644
--- a/docs/html/about/versions/android-3.1.jd
+++ b/docs/html/about/versions/android-3.1.jd
@@ -25,7 +25,8 @@
<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
+<p>For developers, the Android {@sdkPlatformVersion} platform
+({@link android.os.Build.VERSION_CODES#HONEYCOMB_MR1}) is available as a
downloadable component for the Android SDK. The downloadable platform includes
an Android library and system image, as well as a set of emulator skins and
more. The downloadable platform includes no external libraries.</p>
diff --git a/docs/html/about/versions/android-3.2.jd b/docs/html/about/versions/android-3.2.jd
index e0f0125..17f4d85 100644
--- a/docs/html/about/versions/android-3.2.jd
+++ b/docs/html/about/versions/android-3.2.jd
@@ -26,7 +26,7 @@
<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>Android 3.2 is an incremental platform release that adds new
+<p>Android 3.2 ({@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}) is an incremental platform release that adds new
capabilities for users and developers. The sections below provide an overview
of the new features and developer APIs.</p>
diff --git a/docs/html/about/versions/android-4.0.3.jd b/docs/html/about/versions/android-4.0.3.jd
index a773b6e..dc69c99 100644
--- a/docs/html/about/versions/android-4.0.3.jd
+++ b/docs/html/about/versions/android-4.0.3.jd
@@ -25,7 +25,8 @@
<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>Android {@sdkPlatformVersion} is an incremental release of the Android 4.x
+<p>Android {@sdkPlatformVersion} ({@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH_MR1})
+is an incremental release of the Android 4.x
(Ice Cream Sandwich) platform family. This release includes new features for
users and developers, API changes, and various bug fixes.</p>
diff --git a/docs/html/about/versions/android-4.0.jd b/docs/html/about/versions/android-4.0.jd
index 8595eee..f2fd0c4 100644
--- a/docs/html/about/versions/android-4.0.jd
+++ b/docs/html/about/versions/android-4.0.jd
@@ -26,7 +26,8 @@
<p><em>API Level:</em> <strong>{@sdkPlatformApiLevel}</strong></p>
-<p>Android 4.0 is a major platform release that adds a variety of new features for users and app
+<p>Android 4.0 ({@link android.os.Build.VERSION_CODES#ICE_CREAM_SANDWICH})
+is a major platform release that adds a variety of new features for users and app
developers. Besides all the new features and APIs discussed below, Android 4.0 is an important
platform release because it brings the extensive set of APIs and Holographic themes from Android 3.x
to smaller screens. As an app developer, you now have a single platform and unified API framework
diff --git a/docs/html/about/versions/android-4.1.jd b/docs/html/about/versions/android-4.1.jd
index 3677860..60ed7f0 100644
--- a/docs/html/about/versions/android-4.1.jd
+++ b/docs/html/about/versions/android-4.1.jd
@@ -35,7 +35,8 @@
<p>API Level: 16</p>
-<p>Android 4.1 (Jelly Bean) is a progression of the platform that offers improved
+<p>Android 4.1 ({@link android.os.Build.VERSION_CODES#JELLY_BEAN})
+is a progression of the platform that offers improved
performance and enhanced user experience. It adds new features for users and app
developers. This document provides an introduction to the most notable and
useful new APIs for app developers.</p>
@@ -70,11 +71,12 @@
</div>
-<p>As an app developer, Android 4.1 is available to you with an SDK platform you can use to build
-your app against Android 4.1 and with a system image you can run in the Android emulator. You
-should download download the platform and system image as soon as possible to build and test your
-app on Android 4.1. To get started developing and testing against Android
-4.1, use the Android SDK Manager to download the platform into your SDK.</p>
+
+<p>As an app developer, Android 4.1 is available to you from the
+<a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> as a system image you can
+run in the Android emulator and an SDK platform against which you can build your app. You should
+download the system image and platform as soon as possible to build and test your
+app on Android 4.1.</p>
diff --git a/docs/html/about/versions/android-4.2.jd b/docs/html/about/versions/android-4.2.jd
new file mode 100644
index 0000000..039e71e
--- /dev/null
+++ b/docs/html/about/versions/android-4.2.jd
@@ -0,0 +1,545 @@
+page.title=Android 4.2 APIs
+sdk.platform.version=4.2
+sdk.platform.apiLevel=17
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+<h2>In this document</h2>
+<ol>
+ <li><a href="#Behaviors">Important Behavior Changes</a></li>
+ <li><a href="#Daydream">Daydream</a></li>
+ <li><a href="#SecondaryDisplays">Secondary Displays</a></li>
+ <li><a href="#Lockscreen">Lockscreen Widgets</a></li>
+ <li><a href="#MultipleUsers">Multiple Users</a></li>
+ <li><a href="#RTL">RTL Layout Support</a></li>
+ <li><a href="#NestedFragments">Nested Fragments</a></li>
+ <li><a href="#Renderscript">Renderscript</a></li>
+</ol>
+
+<h2>See also</h2>
+<ol>
+<li><a
+href="{@docRoot}sdk/api_diff/17/changes.html">API
+Differences Report »</a> </li>
+</ol>
+
+</div>
+</div>
+
+
+<p>API Level: 17</p>
+
+<p>Android 4.2 ({@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1})
+is an update to the Jelly Bean release that offers new features for users and app
+developers. This document provides an introduction to the most notable and
+useful new APIs for developers.</p>
+
+<p>As an app developer, you should download the Android 4.2 system image and SDK platform from
+the <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> as soon as possible. If you
+don’t have a device running Android 4.2 on which to test your app, use the Android 4.2 system
+image to test your app on the <a href="{@docRoot}tools/devices/emulator.html">Android emulator</a>.
+Then build your apps against the Android 4.2 platform to begin using the latest APIs.</p>
+
+
+
+<div class="sidebox-wrapper">
+<div class="sidebox">
+
+<h3 id="ApiLevel">Declare your app API Level</h3>
+
+<p>To better optimize your app for devices running Android {@sdkPlatformVersion},
+ you should set your <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a> to
+<code>"{@sdkPlatformApiLevel}"</code>, install it on an Android {@sdkPlatformVersion} system image,
+test it, then publish an update with this change.</p>
+
+<p>You
+can use APIs in Android {@sdkPlatformVersion} while also supporting older versions by adding
+conditions to your code that check for the system API level before executing
+APIs not supported by your <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a>.
+To learn more about
+maintaining backward-compatibility, read <a
+href="{@docRoot}training/backward-compatible-ui/index.html">Creating Backward-Compatible
+UIs</a>.</p>
+
+<p>More information about how API levels work is available in <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">What is API
+Level?</a></p>
+
+</div>
+</div>
+
+
+
+
+<h2 id="Behaviors">Important Behavior Changes</h2>
+
+<p>If you have previously published an app for Android, be aware of the following
+changes that might affect your app’s behavior:</p>
+
+<ul>
+ <li><b>Content providers</b> are no longer exported by default. That is, the default value
+for the <a href="{@docRoot}guide/topics/manifest/provider-element.html#exported">{@code
+android:exported}</a> attribute is now {@code “false"}. If it’s important that other apps be
+able to access your content provider, you must now explicitly set <a
+href="{@docRoot}guide/topics/manifest/provider-element.html#exported">{@code
+android:exported="true"}.</a>
+ <p>This change takes effect only if you set either <a
+ href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
+android:targetSdkVersion}</a> or <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
+android:minSdkVersion}</a> to 17 or higher. Otherwise, the default value is still {@code “true"}
+even when running on Android 4.2 and higher.</p>
+ </li>
+
+ <li>Compared to previous versions of Android, <b>user location</b> results may be less accurate
+if your app requests the {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} permission but
+does not request the {@link android.Manifest.permission#ACCESS_FINE_LOCATION} permission.
+ <p>To meet the privacy expectations of users when your app requests permission for
+coarse location (and not fine location), the system will not provide a user location estimate
+that’s more accurate than a city block.</p>
+ </li>
+
+ <li>Some <b>device settings</b> defined by {@link android.provider.Settings.System} are now
+ read-only. If your app attempts to write changes to settings defined in {@link
+ android.provider.Settings.System} that have moved to {@link android.provider.Settings.Global},
+ the write operation will silently fail when running on Android 4.2 and higher.
+ <p>Even if your value for <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
+android:targetSdkVersion}</a> and <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
+android:minSdkVersion}</a> is lower than 17, your app is not able to modify the settings that have
+moved to {@link android.provider.Settings.Global} when running on Android 4.2 and higher.</p>
+ </li>
+</ul>
+
+
+
+
+
+
+<h2 id="Daydream">Daydream</h2>
+
+<p>Daydream is a new interactive screensaver mode for Android devices. It activates automatically
+when the device is inserted into a dock or when the device is left idle while plugged in to a
+charger (instead of turning the screen off). Daydream displays one dream at a time, which may
+be a purely visual, passive display that dismisses upon touch, or may be interactive and responsive
+to the full suite of input events. Your dreams run in your app’s process and have full access to
+the Android UI toolkit, including views, layouts, and animations, so they are more flexible and
+powerful than either live wallpapers or app widgets.</p>
+
+<p>You can create a dream for Daydream by implementing a subclass of {@link
+android.service.dreams.DreamService}. The {@link android.service.dreams.DreamService} APIs are
+designed to be similar to those of {@link android.app.Activity}. To specify the UI for your
+dream, pass a layout resource ID or {@link android.view.View} to {@link
+android.service.dreams.DreamService#setContentView setContentView()} at any point after you have
+a window, such as from the {@link android.service.dreams.DreamService#onAttachedToWindow()}
+callback.</p>
+
+<p>The {@link android.service.dreams.DreamService} class provides other important lifecycle callback
+methods on top of the base {@link android.app.Service} APIs, such as {@link
+android.service.dreams.DreamService#onDreamingStarted()}, {@link
+android.service.dreams.DreamService#onDreamingStopped()}, and {@link
+android.service.dreams.DreamService#onDetachedFromWindow()}.
+You cannot initiate a {@link android.service.dreams.DreamService} from your
+app—it is launched automatically by the system.</p>
+
+<p>If your dream is interactive, you can start an activity from the dream to send the user into
+your app’s full UI for more detail or control. You can use {@link
+android.service.dreams.DreamService#finish()} to end the dream so the user can see the
+new Activity.</p>
+
+<p>To make your daydream available to the system, declare your {@link
+android.service.dreams.DreamService} with a <a
+href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> element
+in your manifest file. You must then include an intent filter with the action {@code
+"android.service.dreams.DreamService"}. For example:</p>
+
+<pre>
+<service android:name=".MyDream" android:exported="true"
+ android:icon="@drawable/dream_icon" android:label="@string/dream_label" >
+ <intent-filter>
+ <action android:name="android.service.dreams.DreamService" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+</service>
+</pre>
+
+<p>There are some other useful methods in {@link android.service.dreams.DreamService}
+to be aware of:</p>
+
+<ul>
+ <li>{@link android.service.dreams.DreamService#setInteractive(boolean)} controls whether
+the dream receives input events or exits immediately upon user input. If the dream is
+interactive, the user may use the <em>Back</em> or <em>Home</em> buttons to exit the dream or you can call
+{@link android.service.dreams.DreamService#finish()} to stop the dream.</li>
+ <li>If you want a fully immersive display, you can call {@link
+android.service.dreams.DreamService#setFullscreen
+setFullscreen()} to hide the status bar.</li>
+ <li>Before Daydream starts, the display dims to signal to the user that the idle timeout
+is approaching. Calling {@link android.service.dreams.DreamService#setScreenBright
+setScreenBright(true)} allows you to instead set the display at its usual brightness.</li>
+</ul>
+
+<p>For more information, see the {@link android.service.dreams.DreamService} documentation.</p>
+
+
+
+
+
+
+
+
+
+
+
+<h2 id="SecondaryDisplays">Secondary Displays</h2>
+
+<p>Android now allows your app to display unique content on additional screens that are connected
+to the user’s device over either a wired connection or Wi-Fi.
+ To create unique content for a secondary display, extend the {@link android.app.Presentation}
+class and implement the {@link android.app.Presentation#onCreate onCreate()} callback. Within
+{@link android.app.Presentation#onCreate onCreate()}, specify your UI for the secondary display
+by calling {@link android.app.Presentation#setContentView setContentView()}.
+As an extension of the {@link android.app.Dialog} class, the {@link
+android.app.Presentation} class provides the region in which your app can display a unique UI on the
+secondary display.</p>
+
+<p>To detect secondary displays where you can display your {@link android.app.Presentation},
+use either the {@link android.hardware.display.DisplayManager} or {@link android.media.MediaRouter}
+APIs. While the {@link android.hardware.display.DisplayManager} APIs allow you to enumerate
+multiple displays that may be connected at once, you should usually use {@link
+android.media.MediaRouter} instead to quickly access the system’s default display for
+presentations.</p>
+
+<p>To get the default display for your presentation, call {@link
+android.media.MediaRouter#getSelectedRoute MediaRouter.getSelectedRoute()} and pass it
+{@link android.media.MediaRouter#ROUTE_TYPE_LIVE_VIDEO}. This returns a {@link
+android.media.MediaRouter.RouteInfo} object that describes the system’s currently selected route
+for video presentations. If the {@link android.media.MediaRouter.RouteInfo} is not null, call
+{@link android.media.MediaRouter.RouteInfo#getPresentationDisplay()} to get the {@link
+android.view.Display} representing the connected display.</p>
+
+<p>You can then display your presentation by passing the {@link android.view.Display} object
+to a constructor for your {@link android.app.Presentation} class. Your presentation will now
+appear on the secondary display.</p>
+
+<p>To detect at runtime when a new display has been connected, create an instance of {@link
+android.media.MediaRouter.SimpleCallback} in which you implement the {@link
+android.media.MediaRouter.SimpleCallback#onRoutePresentationDisplayChanged
+onRoutePresentationDisplayChanged()} callback method, which the system will call when a new
+presentation display is connected. Then register the {@link
+android.media.MediaRouter.SimpleCallback} by passing it to {@link
+android.media.MediaRouter#addCallback MediaRouter.addCallback()} along with the {@link
+android.media.MediaRouter#ROUTE_TYPE_LIVE_VIDEO} route type. When you receive a call to
+{@link android.media.MediaRouter.SimpleCallback#onRoutePresentationDisplayChanged
+onRoutePresentationDisplayChanged()}, simply call {@link
+android.media.MediaRouter#getSelectedRoute MediaRouter.getSelectedRoute()} as mentioned above.</p>
+
+<p>To further optimize the UI in your {@link android.app.Presentation} for
+secondary screens, you can apply
+a different theme by specifying the {@link
+android.R.attr#presentationTheme android:presentationTheme} attribute in the <a
+href=”{@docRoot}guide/topics/resources/style-resource.html”>{@code <style>}</a> that you’ve
+applied to your application or activity.</p>
+
+<p>Keep in mind that screens connected to the user’s device often have a larger screen size and
+likely a different screen density. Because the screen characteristics may different, you should
+provide resources that are optimized specifically for such larger displays. If you need
+to request additional resources from your {@link
+android.app.Presentation}, call {@link android.app.Presentation#getContext()}{@link
+android.content.Context#getResources .getResources()} to get the {@link
+android.content.res.Resources} object corresponding to the display. This provides
+the appropriate resources from your app that are best suited for the
+secondary display's screen size and density.</p>
+
+<p>For more information and some code samples, see the {@link android.app.Presentation}
+class documentation.</p>
+
+
+
+
+
+
+
+
+
+
+<h2 id="Lockscreen">Lockscreen Widgets</h2>
+
+<p>Android now allows users to add app widgets to the lock screen. To make your <a
+href="{@docRoot}guide/topics/appwidgets/index.html">App Widget</a> available for use on the
+lock screen, add the {@link android.appwidget.AppWidgetProviderInfo#widgetCategory
+android:widgetCategory} attribute to your XML file that specifies the {@link
+android.appwidget.AppWidgetProviderInfo}. This attribute supports two values: {@code home_screen}
+and {@code keyguard}. By default, the attribute is set to {@code home_screen} so users can add your
+app widget to the Home screen. If you want your app widget to be also available on the lock
+screen, add the {@code keyguard} value:</p>
+
+<pre>
+<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ ...
+ android:widgetCategory="keyguard|home_screen">
+</appwidget-provider>
+</pre>
+
+<p>You should also specify an initial layout for your app widget when on the lock screen with
+the {@link android.appwidget.AppWidgetProviderInfo#initialKeyguardLayout
+android:initialKeyguardLayout} attribute. This works the same way as the {@link
+android.appwidget.AppWidgetProviderInfo#initialLayout android:initialLayout}, in that it provides
+a layout that can appear immediately until your app widget is initialized and able to update the
+layout.</p>
+
+<p>For more information about building app widgets for the lock screen, including to properly
+size your app widget when on the lock screen, see the <a
+href="{@docRoot}guide/topics/appwidgets/index.html#lockscreen">App Widgets</a> guide.</p>
+
+
+
+
+
+
+
+<h2 id="MultipleUsers">Multiple Users</h2>
+
+<p>Android now allows multiple user spaces on shareable devices such as tablets. Each user on a
+device has his or her own set of accounts, apps, system settings, files, and any other
+user-associated data.</p>
+
+<p>As an app developer, there’s nothing different you need to do in order for your app to work
+properly with multiple users on a single device. Regardless of how many users may exist on a
+device, the data your app saves for a given user is kept separate from the data your app saves
+for other users. The system keeps track of which user data belongs to the user process in which
+your app is running and provides your app access to only that user’s data and does not allow
+access to other users’ data.</p>
+
+<h3>Saving data in a multi-user environment</h3>
+
+<p>Whenever your app saves user preferences, creates a database, or writes a file to the user’s
+internal or external storage space, that data is accessible only while running as that user.</p>
+
+<p>To be certain that your app behaves properly in a multi-user environment, do not refer to your
+internal app directory or external storage location using hard-coded paths and instead always use
+the appropriate APIs:</p>
+<ul>
+ <li>For access to internal storage, use {@link android.content.Context#getFilesDir()}, {@link
+android.content.Context#getCacheDir()}, or {@link android.content.Context#openFileOutput
+openFileOutput()}.</li>
+ <li>For access to external storage, use {@link android.content.Context#getExternalFilesDir
+ getExternalFilesDir()} or {@link android.os.Environment#getExternalStoragePublicDirectory
+ getExternalStoragePublicDirectory()}.
+</ul>
+
+<p>No matter which of these APIs you use to save data for a given user, the data will not be
+accessible while running as a different user. From your app’s point of view, each user is running
+on a completely separate device.</p>
+
+<h3>Identifying users in a multi-user environment</h3>
+
+<p>If your app wants to identify unique users such as to gather analytics or create other account
+associations, you should follow the recommended practices for <a
+href="http://android-developers.blogspot.com/2011/03/identifying-app-installations.html">identifying
+unique installations</a>. By creating a new {@link java.util.UUID} when your app starts for the
+first time, you’re certain to obtain a unique ID for tracking each user, regardless of how many
+users install your app on a single device. Alternatively, you can save a local token fetched from
+your server or use the registrations ID provided by <a
+href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging</a>.</p>
+
+<p>Beware that if your app requests one of the hardware device identifiers (such as the WiFi MAC
+address, the {@link android.os.Build#SERIAL} number, or the {@link
+android.provider.Settings.Secure#ANDROID_ID} number), they will provide the same value for each
+user because these identifiers are tied to the hardware and not the user. Not to mention the other
+problems these identifiers introduce as discussed in the <a
+href="http://android-developers.blogspot.com/2011/03/identifying-app-installations.html">Identifying
+App Installations</a> blog post.</p>
+
+<h3>New Global Settings</h3>
+
+<p>The system settings have been updated to support multiple users with the addition of {@link
+android.provider.Settings.Global}. This collection of settings is similar to {@link
+android.provider.Settings.Secure} settings because they are read-only, but applies globally across
+all user spaces on the device.</p>
+
+<p>Several existing settings were relocated here from either {@link
+android.provider.Settings.System} or {@link android.provider.Settings.Secure}. If your app is
+currently making changes to settings previously defined in {@link android.provider.Settings.System}
+(such as {@link android.provider.Settings.System#AIRPLANE_MODE_ON}), then you should expect that
+doing so will no longer work on a device running Android 4.2 or higher if those settings were
+moved to {@link android.provider.Settings.Global}. You can continue to read settings that are in
+{@link android.provider.Settings.Global}, but because the settings are no longer considered safe
+for apps to change, attempting to do so will fail silently and the system will write a warning to
+the system log when running your app on Android 4.2 or higher.</p>
+
+
+
+
+
+
+
+
+
+<h2 id="RTL">RTL Layout Support</h2>
+
+<p>Android now offers several APIs that allow you to build user interfaces that gracefully
+transform layout orientation to support languages that use right-to-left (RTL) UIs and reading
+direction, such as Arabic and Hebrew.</p>
+
+<p>To begin supporting RTL layouts in your app, set the {@link android.R.attr#supportsRtl
+android:supportsRtl} attribute to the {@code <application>} element in your manifest file
+and set it {@code “true"}. Once you enable this, the system will enable various RTL APIs to
+display your app with RTL layouts. For instance, the action bar will show the icon and title
+on the right side and action buttons on the left, and any layouts you’ve created with the
+framework-provided {@link android.view.View} classes will also be reversed.</p>
+
+<p>If you need to further optimize the appearance of your app when displayed with an RTL layout,
+there are two basic levels of optimization:</p>
+
+<ol>
+ <li>Convert left- and right-oriented layout properties to start- and end-oriented layout
+properties.
+ <p>For example, use {@link android.R.attr#layout_marginStart android:layout_marginStart}
+in place of {@code android:layout_marginLeft} and {@link android.R.attr#layout_marginEnd
+android:layout_marginEnd} in place of {@code android:layout_marginRight}.
+ <p>The {@link android.widget.RelativeLayout} class also provides the corresponding layout
+attributes to replace left/right positions, such as {@code android:layout_alignParentStart} to
+replace {@code android:layout_alignParentLeft} and {@code android:layout_toStartOf} instead of
+{@code android:layout_toLeftOf}.
+ </li>
+ <li>Or to provide complete optimization for RTL layouts, you can provide entirely separate
+layout files using the {@code ldrtl} resource qualifier ({@code ldrtl} stands for
+layout-direction-right-to-left}). For example, you can save your default layout files in
+{@code res/layout/} and your RTL optimized layouts in {@code res/layout-ldrtl/}.
+ <p>The {@code ldrtl} qualifier is great for drawable resources, so that you can provide
+graphics that are oriented in the direction corresponding to the reading direction.</p>
+ </li>
+</ol>
+
+<p>Various other APIs are available across the framework to support RTL layouts, such as in
+the {@link android.view.View} class so that you can implement the proper behaviors for custom
+views and in {@link android.content.res.Configuration} to query the current layout direction.</p>
+
+<p><strong>Note:</strong> If you are using SQlite and have tables or column names that are
+“number only," be
+careful: using <a href="{@docRoot}reference/java/lang/String.html#format(String, Object...)">{@code
+String.format(String, Object...)}</a> can lead to errors where the numbers
+have been converted to their Arabic equivalents if your device has been set to the Arabic locale.
+You must use <a href="{@docRoot}reference/java/lang/String.html#format(Locale,String,Object...)">{@code
+String.format(Locale,String,Object...)}</a> to ensure numbers are
+preserved as ASCII. Also use <a href="{@docRoot}reference/java/lang/String.html#format(String,int)">{@code
+String.format("%d", int)}</a> instead of using
+<a href="{@docRoot}reference/java/lang/String.html#valueOf(int)">{@code String.valueOf(int)}</a> for
+formatting numbers.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h2 id="NestedFragments">Nested Fragments</h2>
+
+<p>You can now embed fragments inside fragments. This is useful for a variety of situations in
+which you want to place dynamic and re-usable UI components into a UI component that is itself
+dynamic and re-usable. For example, if you use {@link android.support.v4.view.ViewPager} to
+create fragments that swipe left and right and consume a majority of the screen space, you can
+now insert fragments into each fragment page.</p>
+
+<p>To nest a fragment, simply call {@link android.app.Fragment#getChildFragmentManager()} on
+the {@link android.app.Fragment} in which you want to add a fragment. This returns a {@link
+android.app.FragmentManager} that you can use like you normally do from the top-level activity
+to create fragment transactions. For example, here’s some code that adds a fragment from within
+an existing {@link android.app.Fragment} class:</p>
+
+<pre>
+Fragment videoFragment = new VideoPlayerFragment();
+FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
+transaction.add(R.id.video_fragment, videoFragment).commit();
+</pre>
+
+<p>From within a nested fragment, you can get a reference to the parent fragment by calling
+{@link android.app.Fragment#getParentFragment()}.</p>
+
+<p>The Android Support Library also now supports nested fragments, so you can implement nested
+fragment designs on Android 1.6 and higher.</p>
+
+<p><strong>Note:</strong> You cannot inflate a layout into a fragment when that layout
+includes a {@code <fragment>}. Nested fragments are only supported when added to a
+fragment dynamically.</p>
+
+
+
+
+
+
+<h2 id="Renderscript">Renderscript</h2>
+
+<p>Renderscript computation functionality has been enhanced with the following features:</p>
+<dl>
+ <dt><b>Script intrinsics</b></dt>
+ <dd><p>You can use Renderscript's built-in script intrinsics that implement
+common operations for you such as:</p>
+ <ul>
+ <li>{@link android.renderscript.ScriptIntrinsicBlend Blends}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicBlur Blur}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicColorMatrix Color matrix}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicConvolve3x3 3x3 convolve}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicConvolve5x5 5x5 convolve}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicLUT Per-channel lookup table}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicYuvToRGB Converting an Android YUV buffer to RGB}</li>
+ </ul>
+ <p>To use a script intrinsic, call the static <code>create()</code> method of each instrinsic
+ to create an instance of the script. You then call the available <code>set()</code>
+ methods of each script intrinsic to set any necessary inputs and options.
+ Finally, call the {@link android.renderscript.ScriptC#forEach forEach()}</code>
+ method to execute the script.</p>
+ </dd>
+
+
+<dt><b>Script Groups</b></dt>
+<dd>
+<p>{@link android.renderscript.ScriptGroup}s allow you to chain together related Renderscript
+scripts and execute them with one call.</p>
+
+<p>Use a {@link android.renderscript.ScriptGroup.Builder} to add all of the scripts to the group
+by calling {@link android.renderscript.ScriptGroup.Builder#addKernel addKernel()}. Once you
+add all the scripts, create the connections between the
+scripts by calling {@link android.renderscript.ScriptGroup.Builder#addConnection addConnection()}.
+When you are done adding the connections, call {@link android.renderscript.ScriptGroup.Builder#create create()}
+to create the script group. Before executing the script group, specify the input
+{@link android.renderscript.Allocation} and initial script to run with the
+{@link android.renderscript.ScriptGroup#setInput} method and provide the output
+{@link android.renderscript.Allocation} where the result will be written to and final script to
+run with {@link android.renderscript.ScriptGroup#setOutput setOutput()}. Finally, call
+{@link android.renderscript.ScriptGroup#execute execute()} to run the script group.
+</p>
+</dd>
+
+<dt><b>Filterscript</b></dt>
+<dd>
+<p>Filterscript defines constraints on the existing Renderscript APIs that allow the resulting code to run
+on a wider variety of processors (CPUs, GPUs, and DSPs). To create Filterscript files, create <code>.fs</code>
+files instead of <code>.rs</code> files, and specify <code>#pragma rs_fp_relaxed</code> to
+tell the Renderscript runtime your scripts do not require strict IEEE 754-2008 floating point precision.
+This precision allows flush-to-zero for denorms and round-towards-zero. In addition, your Filterscript
+scripts must not use 32-bit built-in types and must specify a custom root function by using the
+<code>__attribute__((kernel))</code> attribute because Filterscript does not support pointers, which
+the default signature of the <code>root()</code> function defines.</p>
+</dd>
+
+</dl>
+
+<p class="note"><strong>Note:</strong> Although Filterscript support is in the platform, developer
+support will be available in ADT and SDK Tools Release 21.0.1. </p>
+
+
+<p>For a detailed view of all API changes in Android 4.2, see the
+<a href="{@docRoot}sdk/api_diff/17/changes.html">API Differences Report</a>.</p>
+
+
+
diff --git a/docs/html/about/versions/jelly-bean.jd b/docs/html/about/versions/jelly-bean.jd
index 0583e12..5350941 100644
--- a/docs/html/about/versions/jelly-bean.jd
+++ b/docs/html/about/versions/jelly-bean.jd
@@ -1,12 +1,681 @@
-page.title=Android 4.1 for Developers
+page.title=Jelly Bean
+tab1=Android 4.2
+tab1.link=#android-42
+tab2=Android 4.1
+tab2.link=#android-41
+
@jd:body
+
+<style>
+#android-41 {display:none;}
+</style>
+
+<script>
+function revealSection(hashy) {
+ if (hashy != "" && !$(hashy).is(":visible")) {
+ sectionId = $(hashy).closest(".version-section").attr("id");
+ link = $("#title-tabs a[href$="+sectionId+"]");
+ link.parent().addClass("selected");
+ link.parent().siblings().removeClass("selected");
+
+ sectionDiv = $(".version-section"+link.attr("href"));
+ if (sectionDiv.length) {
+ $(".version-section").hide();
+ sectionDiv.show();
+ }
+
+ $('html, body').animate({
+ scrollTop: $(hashy).offset().top
+ }, 100);
+ }
+}
+
+$(document).ready(function() {
+ $("#title-tabs li a").each(function() {
+ $(this).click(function(){
+ $(this).parent().addClass("selected");
+ $(this).parent().siblings().removeClass("selected");
+ $(".version-section").hide();
+ $($(this).attr("href")).show();
+ return false;
+ });
+ });
+
+ hashy = escapeHTML(location.hash);
+ revealSection(hashy);
+});
+
+window.onhashchange = function () {
+ revealSection(escapeHTML(location.hash));
+}
+
+</script>
+
+
+
+<!-- BEGIN ANDROID 4.2 -->
+<div id="android-42" class="version-section">
+<div style="float:right;padding:0px 0px 12px 34px;">
+<div>
+<img src="{@docRoot}images/jb-device-2.png" alt="Android 4.2 on phone and tablet" height="348" width="400">
+</div>
+</div>
+<p>Welcome to Android 4.2, the latest version of <span
+style="white-space:nowrap;">Jelly Bean!</span></p>
+
+<p>Android 4.2 has performance optimizations, a refreshed system UI, and great
+new features for users and developers. This document provides a glimpse of what's new for
+developers.
+
+<p>See the <a href="/about/versions/android-4.2.html">Android 4.2 APIs</a>
+document for a detailed look at the new developer APIs.</p>
+
+<p>Find out more about the new Jelly Bean features for users at <a
+href="http://www.android.com/whatsnew">www.android.com</a>.</p>
+
+
+<h2 id="42-performance" style="line-height:1.25em;">Faster, Smoother, More Responsive</h2>
+
+<p>Android 4.2 builds on the performance improvements already included in Jelly Bean
+— <strong>vsync timing</strong>, <strong>triple buffering</strong>,
+<strong>reduced touch latency</strong>, and <strong>CPU input boost</strong>
+— and adds new optimizations that make Android even faster.</p>
+
+<p>Improvements in the <strong>hardware-accelerated 2D renderer</strong> make
+common animations such as scrolling and swiping smoother and faster. In
+particular, <strong>drawing is optimized</strong> for layers, clipping and
+certain shapes (rounded rects, circles and ovals).</p>
+
+<p>A variety of <strong>WebView rendering optimizations</strong> make scrolling
+of web pages smoother and free from jitter and lags.</p>
+
+<p>Android’s <strong>Renderscript Compute</strong> is the first computation
+platform ported to run directly on a <strong>mobile device GPU</strong>. It automatically
+takes advantage of <strong>GPU computation</strong> resources whenever possible,
+dramatically improving performance for graphics and image processing. Any app using
+Renderscript on a supported device can benefit immediately from
+this GPU integration <strong>without recompiling</strong>.</p>
+
+
+<div style="float:left;margin:16px 24px 12px 0px;">
+<a href="" target="_android">
+<img src="{@docRoot}images/jb-nexus10-1.png" alt="10-inch tablet running Android 4.2" width="380" height="281" /></a>
+</div>
+
+<h2 id="42-ui" style="margin-top:2em;">Refined, refreshed UI</h2>
+
+<p>Android 4.2 refines the Jelly Bean user experience and brings familiar
+Android UI patterns such as status bar, system bar, and notifications window to
+all tablets.</p>
+
+<p>All screen sizes now feature the <strong>status bar</strong> on top, with
+pull-down access to <strong>notifications</strong> and a new <strong>Quick
+Settings</strong> menu. The familiar </strong>system bar</strong> appears on the
+bottom, with buttons easily accessible from either hand. The <strong>Application
+Tray</strong> is also available on all screen sizes.</p>
+
+
+<h2 id="42-multiuser" style="margin-top:2em;clear:left;">One tablet, many users</h2>
+
+<p>Now several users can <strong>share a single Android tablet</strong>, with
+each user having convenient access to a <strong>dedicated user
+space</strong>. Users can switch to their spaces with a single touch from the
+lock screen.</p>
+
+<p>On a multiuser device, Android gives each user a separate environment,
+including user-specific emulated SD card storage. Users also have their own
+homescreens, widgets, accounts, settings, files, and apps, and the system keeps
+these separate. All users share core system services, but the system ensures that
+each user's applications and data remain isolated. In effect, each of the multiple
+users has his or her own Android device.</p>
+
+<p>Users can install and uninstall apps at any time in their own environments.
+To save storage space, Google Play downloads an APK only if it's not already
+installed by another user on the device. If the app is already installed, Google
+Play records the new user's installation in the usual way but doesn't download
+another copy of the app. Multiple users can run the same copy of an APK because
+the system creates a new instance for each user, including a user-specific data
+directory.</p>
+
+<p>For developers, <strong>multi-user support is transparent</strong> —
+your apps do not need to do anything special to run normally in a multi-user
+environment and there are no changes you need to make in your existing or
+published APKs. The system manages your app in each user space just as it does
+in a single-user environment. </p>
+
+
+<h2 id="42-engagement" style="clear:left; margin-top:1em;">New ways to engage users</h2>
+
+<div style="float:right;margin:22px 0px 0px 24px;width:280px;">
+<div>
+<img src="{@docRoot}images/jb-lock-calendar.png" alt="Calendar lock screen widget" width="280" height="543" style="padding-left:1em;margin-bottom:0">
+</div>
+<p class="image-caption" style="padding:1.5em">You can extend <strong>app widgets</strong> to run on the lock screen, for instant access to your content.</p>
+</div>
+
+<h3 id="42-lockscreen-widgets">Lock screen widgets</h3>
+
+<p>In Android 4.2, users can place <strong>app widgets</strong> directly on
+their <strong>lock screens</strong>, for instant access to favorite app content
+without having to unlock. Users can add as many as five lock screen widgets,
+choosing from widgets provided by installed apps. The lock screen displays each
+widget in its own panel, letting users swipe left and right to view different
+panels and their widgets.</p>
+
+<p>Like all app widgets, lock screen widgets can display <strong>any kind of content</strong> and
+they can accept direct user interaction. They can be entirely self-contained,
+such as a widget that offers controls to play music, or they can let users jump
+straight to an Activity in your app, after unlocking along the way as
+needed.</p>
+
+<p>For developers, lock screen widgets offer a great new way to engage users.
+They let you put your content in front of users in a location they’ll see often,
+and they give you more opportunities to bring users directly into your app.</p>
+
+<p>You can take advantage of this new capability by building a new app widget or
+by extending an existing home screen widget. If your app already includes home
+screen widgets, you can extend them to the lock screen with minimal change. To
+give users an optimal experience, you can update the widget to use the full lock
+screen area when available and resize when needed on smaller screens. You can
+also add features to your widgets that might be especially useful or convenient
+on the lock screen.</p>
+
+<h3 id="42-daydreams">Daydream</h3>
+
+<p>Daydream is an <strong>interactive screensaver mode</strong> that starts when
+a user’s device is docked or charging. In this mode, the system launches a
+daydream — a remote content service provided by an installed app —
+as the device screensaver. A user can enable Daydream from the Settings app and
+then choose the daydream to display.</p>
+
+<p>Daydreams combine the best capabilities of live wallpapers and home screen
+widgets, but they are more powerful. They let you offer the any kind of content
+in a completely new context, with user interactions such as flipping through
+photos, playing audio or video, or jumping straight into your app with a single
+touch.</p>
+
+<p>Because daydreams can start automatically when a device is charging or
+docked, they also give your app a great way to support new types of user
+experiences, such as leanback or exhibition mode, demo or kiosk mode, and
+"attract mode" — all without requiring special hardware.</p>
+
+<div style="float:left;margin:20px 30px 0px 0px;width:460px;">
+<div>
+<img src="{@docRoot}images/jb-dream-1.png" alt="Daydream screensaver mode" height="300" style="padding-left:1em;">
+</div>
+<p class="image-caption" style="padding:.5em .5em .5em 1.5em;"><span
+style="font-weight:500;">Daydream</span> lets you create powerful interactive screensavers that display any kind of content.</p>
+</div>
+
+<p>Daydreams are similar to Activities and can do anything that Activity
+can do — from rendering a UI hierarchy (without using RemoteViews) to
+drawing directly using Canvas, OpenGL, SurfaceTexture, and more. They can play
+video and audio and they can even accept direct user interaction. However,
+daydreams are not Activities, so they don’t affect the backstack or appear in
+Recents and they cannot be launched directly from your app.</p>
+
+<p>Implementing a daydream is straightforward and you can take advantage of UI
+components and resources that you’ve already created for other parts of your
+app. You can provide multiple daydreams in your app and you can offer distinct
+content and display settings for each.</p>
+
+<h2 id="42-external-display" style="clear:left;">External display support</h2>
+
+<p>Android 4.2 introduces platform support for <strong>external
+displays</strong> that goes far beyond mirroring — apps can now target
+unique content to any one or multiple displays that are attached to an Android
+device. Apps can build on this to deliver new kinds of interaction and
+entertainment experiences to users.</p>
+
+<h3 id="42-display-manager">Display manager</h3>
+
+<p>Apps interact with displays through a new display manager system service.
+Your app can enumerate the displays and check the capabilities of each,
+including size, density, display name, ID, support for secure video, and more.
+Your app can also receive callbacks when displays are added or removed or when
+their capabilities change, to better manage your content on external
+displays.</p>
+
+<h3 id="42-presentation">Presentation window</h3>
+
+<p>To make it easy to show content on an external display, the framework
+provides a new UI object called a <strong>Presentation</strong> — a type of dialog that
+represents a window for your app’s content on a specific external display. Your
+app just gives the display to use, a theme for the window, and any unique
+content to show. The Presentation handles inflating resources and rendering your
+content according to the characteristics of the targeted display.</p>
+
+<div style="margin:0 auto;width:569px;padding-top:1em;">
+
+<img src="{@docRoot}images/external-display.png" alt="" width="555" height="351" style="padding-left:1em;margin-bottom:0">
+
+<p class="image-caption" style="padding:1.25em">You can take full control of two or more independent displays using <strong>Presentation</strong>.</p>
+</div>
+
+<p>A Presentation gives your app full control over the remote display window and
+its content and lets you manage it based on user input events such as key
+presses, gestures, motion events, and more. You can use all of the normal tools
+to create a UI and render content in the Presentation, from building an
+arbitrary view hierarchy to using SurfaceView or SurfaceTexture to draw directly
+into the window for streamed content or camera previews.</p>
+
+<h3 id="42-preferred display">Preferred display selection</h3>
+
+<p>When multiple external displays are available, you can create as many
+Presentations as you need, with each one showing unique content on a specific
+display. In many cases, you might only want to show your content on a single
+external display — but always on the that’s best for Presentation content.
+For this, the system can help your app choose the best display to use.</p>
+
+<p>To find the best display to use, your app can query the display manager for
+the system’s <strong>preferred Presentation display</strong> and receive callbacks when that
+display changes. Alternatively, you can use the media router service, extended
+in Android 4.2, to receive notifications when a system video route changes. Your
+app can display content by default in the main Activity until a preferred
+Presentation display is attached, at which time it can automatically switch to
+Presentation content on the preferred display. Your apps can also use media
+router’s MediaRouteActionProvider and MediaRouteButton to offer standard
+display-selection UI.</p>
+
+<h3 id="42-protected-content">Protected content</h3>
+
+<p>For apps that handle protected or encrypted content, the display API now
+reports the <strong>secure video capabilities</strong> of attached displays. Your app query a
+display to find out if it offers a secure video output or provides protected
+graphics buffers and then choose the appropriate content stream or decoding to
+make the content viewable. For additional security on SurfaceView objects, your
+app can set a secure flag to indicate that the contents should never appear in
+screenshots or on a non-secure display output, even when mirrored.</p>
+
+<h3 id="42-wireless-display">Wireless display</h3>
+
+<p>Starting in Android 4.2, users on supported devices can connect to an
+external display over Wi-Fi, using <a
+href="http://www.wi-fi.org/wi-fi-certified-miracast%E2%84%A2">Miracast</a>, a
+peer-to-peer wireless display standard created by the <a
+href="http://www.wi-fi.org/">Wi-Fi Alliance</a>. When a wireless display is
+connected, users can stream any type of content to the big screen, including
+photos, games, maps, and more.</p>
+
+<p>Apps can take advantage of <strong>wireless displays</strong> in the same way as they do other
+external displays and no extra work is needed. The system manages the network
+connection and streams your Presentation or other app content to the wireless
+display as needed.</p>
+
+
+<h2 id="42-native-rtl">Native RTL support</h2>
+
+<div style="float:right;margin:22px 0px 0px 24px;width:340px;">
+<div>
+<img src="{@docRoot}images/jb-rtl.png" alt="RTL layout mirroring" width="340" height="457" style="margin-bottom:0;">
+</div>
+<p class="image-caption" style="padding-top:1em">Developers can now <strong>mirror their layouts</strong> for RTL languages.</p>
+</div>
+
+<p>Android 4.2 introduces <strong>full native support for RTL</strong>
+(right-to-left) layouts, including layout mirroring. With native RTL support,
+you can deliver the same great app experience to all of your users, whether
+their language uses a script that reads right-to-left or one that reads
+left-to-right.</p>
+
+<p>When the user switches the system language to a right-to-left script, the
+system now provides automatic mirroring of app UI layouts and all view widgets,
+in addition to bidi mirroring of text elements for both reading and character
+input.</p>
+
+<p>Your app can take advantage of <strong>RTL layout mirroring</strong> in your app with minimal effort.
+If you want the app to be mirrored, you simply declare a new attribute in your
+app manifest and change all "left/right" layout properties to new "start/end"
+equivalents. The system then handles the mirroring and display of your UI as
+appropriate.</p>
+
+<p>For precise control over your app UI, Android 4.2 includes new APIs that let
+you manage layout direction, text direction, text alignment, gravity, and locale
+direction in View components. You can even create custom versions of layout,
+drawables, and other resources for display when a right-to-left script is in
+use.</p>
+
+<p>To help you debug and optimize your custom right-to-left layouts, the
+HierarchyViewer tool now lets you see start/end properties, layout direction,
+text direction, and text alignment for all the Views in the hierarchy,</p>
+
+
+<h2 id="42-intl">Enhancements for international languages</h2>
+
+<p>Android 4.2 includes a variety of <strong>font and character
+optimizations</strong> for international users:</p>
+<ul>
+<li>For Korean users, a new font choice is available — Nanum (나눔글꼴)
+Gothic, a unicode font designed especially for the Korean-language script.</li>
+<li>Improved support for Japanese vertical text displayed in WebViews.</li>
+<li>Improved font kerning and positioning for Indic, Thai, Arabic, and Hebrew
+default fonts.</li>
+</ul>
+
+<p>The default Android keyboard also includes an updated set of
+dictionaries:</p>
+<ul>
+<li>Improved dictionaries for French (with bigram support), English, and
+Russian</li>
+<li>New dictionaries for Danish, Greek, Finnish, Lithuanian, Latvian, Polish,
+Slovenian, Serbian, Swedish, Turkish</li>
+</ul>
+
+
+<h2 id="42-ui-tools">New ways to create beautiful UI</h2>
+
+<h3 id="42-nested-fragments">Nested Fragments</h3>
+
+<p>For more control over your UI components and to make them more modular,
+Android 4.2 lets you <strong>nest Fragments inside of Fragments</strong>. For
+any Fragment, a new Fragment manager lets you insert other Fragments as child
+nodes in the View hierarchy.</p>
+
+<p>You can use nested Fragments in a variety of ways, but they are especially
+useful for implementing dynamic and reusable UI components inside of a UI
+component that is itself dynamic and reusable. For example, if you use ViewPager
+to create fragments that swipe left and right, you can now insert fragments into
+each Fragment of the view pager.</p>
+
+<p>To let you take advantage of nested Fragments more broadly in your app, this
+capability is added to the latest version of the <strong>Android Support
+Library</strong>.</p>
+
+
+<h2 id="42-accessibility">Accessibility</h2>
+
+<p>The system now helps accessibility services <strong>distinguish between touch
+exploration and accessibility gestures</strong> while in touch-exploration mode.
+When a user touches the screen, the system notifies the service that a generic
+touch interaction has started. It then tracks the speed of the touch interaction
+and determines whether it is a touch exploration (slow) or accessibility gesture
+(fast) and notifies the service. When the touch interaction ends, the system
+notifies the service.</p>
+
+<p>The system provides a new global accessibility option that lets an
+accessibility service open the Quick Settings menu based on an action by the
+user. Also added in Android 4.2 is a new accessibility feedback type for
+<strong>Braille devices</strong>.</p>
+
+<p>To give accessibility services insight into the meaning of Views for
+accessibility purposes, the framework provides new APIs for associating a View
+as the label for another View. The label for each View is available to
+accessibility services through AccessibilityNodeInfo.</p>
+
+
+<h2 id="42-camera">Improved Camera with HDR</h2>
+
+<p>Android 4.2 introduces a <strong>new camera hardware interface and
+pipeline</strong> for improved performance. On supported devices, apps can use a
+new <strong>HDR camera scene mode</strong> to capture an image using high
+dynamic range imaging techniques. </p>
+
+<p>Additionally, the framework now provides an API to let apps check whether the
+camera shutter sound can be disabled. Apps can then let the user disable the
+sound or choose an alternative sound in place of the standard shutter sound,
+which is recommended.</p>
+
+
+<h2 id="42-renderscript">Renderscript Computation</h2>
+
+<p>In Android 4.2, Renderscript Compute introduces new scripting features, new
+optimizations, and direct GPU integration for the highest performance in
+computation operations.</p>
+
+<h3 id="42-filterscript">Filterscript</h3>
+
+<p>Filterscript is a subset of Renderscript that is focused on <strong>optimized
+image processing across a broad range of device chipsets</strong>. Developers
+can write their image processing operations in Filterscript using the standard
+Renderscript runtime API, but within stricter constraints that ensure wider
+compatibility and improved optimization across CPUs, GPUs, and DSPs.</p>
+
+<p>Filterscript is ideal for hardware-accelerating simple image-processing and
+computation operations such as those that might be written for OpenGL ES
+fragment shaders. Because it places a relaxed set of constraints on hardware,
+your operations are optimized and accelerated on more types of device chipsets.
+Any app targeting API level 17 or higher can make use of Filterscript.</p>
+
+<h3 id="42-rs-intrinsics">Script intrinsics</h3>
+
+<p>In Android 4.2, Renderscript adds support for a set of script intrinsics
+— pre-implemented <strong>filtering primitives that are
+accelerated</strong> to reduce the amount of code that you need to write and to
+ensure that your app gets the maximum performance gain possible.</p>
+
+<p>Intrinsics are available for blends, blur, color matrix, 3x3 and 5x5 convolve,
+per-channel lookup table, and converting an Android YUV buffer to RGB.</p>
+
+<h3 id="42-rs-groups">Script groups</h3>
+
+<p>You can now create <strong>groups of Renderscript scripts</strong> and
+execute them all with a single call as though they were part of a single script.
+This allows Renderscript to optimize execution of the scripts in ways that it
+could not do if the scripts were executed individually.</p>
+
+<div style="float:right;padding-top:1em;width:400px;margin-left:2em;">
+<img src="{@docRoot}images/jb-rs-chart-versions.png" alt="Renderscipt optimizations chart" width="360" height="252"
+style="border:1px solid #ddd;border-radius: 6px;" />
+<p style="image-caption">Renderscript image-processing
+benchmarks run on different Android platform versions (Android 4.0, 4.1, and 4.2)
+in CPU only on a Galaxy Nexus device.</p>
+<img src="{@docRoot}images/jb-rs-chart-gpu.png" style="border:1px solid #ddd;border-radius: 6px; alt="" width="360" height="252" />
+<p style="image-caption">Renderscript image-processing benchmarks comparing operations run with GPU + CPU to those run in CPU only on the same Nexus 10 device.</p>
+</div>
+
+<p>If you have a directed acyclic graph of Renderscript operations to run, you can
+use a builder class to create a script group defining the operations. At
+execution time, Renderscript optimizes the run order and the connections between
+these operations for best performance.</p>
+
+
+<h3 id="42-rs-optimization">Ongoing optimization improvements</h3>
+
+<p>When you use Renderscript for computation operations, you apps benefit from
+<strong>ongoing performance and optimization improvements</strong> in the
+Renderscript engine itself, without any impact on your app code or any need for
+recompilation.</p>
+
+<p>As optimization improves, your operations execute faster and on more
+chipsets, without any work on your part. The chart at right highlights
+the performance gain delivered by ongoing Renderscript optimization improvements
+across successive versions of the Android platform.</p>
+
+<h3 id="42-gpu-compute">GPU Compute</h3>
+
+<p>Renderscript Compute is the first computation platform ported to run directly on a mobile device GPU. It now
+automatically takes advantage of <strong>GPU computation</strong> resources
+whenver possible to improve performance. With GPU integration, even the most
+complex computations for graphics or image processing can execute with
+dramatically improved performance.</p>
+
+<p>Any app using Renderscript on a supported device can benefit immediately from
+this GPU integration, without recompiling. The Nexus 10 tablet is the first
+device to support this integration.</p>
+
+<h2 id="42-dev-options" style="clear:right;margin-top:1em;">New built-in developer options</h2>
+
+<p>The Android 4.2 system includes a variety of new developer options that make
+it easier to create great looking apps that perform well. The new options expose
+features for <strong>debugging and profiling</strong> your app from any device
+or emulator.</p>
+
+<p class="caution" style="clear:right;">On devices running Android 4.2,
+developer options are hidden by default, helping to create a better experience
+for users. You can reveal the developer options at any time by tapping 7 times
+on <strong>Settings</strong> > <strong>About phone</strong> > <strong>Build
+number</strong> on any compatible Android device.</p>
+
+<div style="float:left;margin:20px 42px 0px 0px;width:290px;">
+<div>
+<img src="{@docRoot}images/jb-dev-options-device.png" width="280" height="548">
+</div>
+<p class="image-caption" style="padding:.5em">New <span
+style="font-weight:500;">developer options</span> give you more ways to profile and debug on a device.</p>
+</div>
+
+<p style="margin-top:2em;">New developer options in Android 4.2 include:</p>
+
+<ul>
+<li><strong>Take bug report</strong> — immediately takes a screen shot and
+dumps device state information to local file storage, then attaches them to a
+new outgoing email message.</li>
+<li><strong>Power menu bug reports</strong> — Adds a new option to the
+device power menu and quick settings to take a bug report (see above).</li>
+<li><strong>Verify apps over usb</strong> — Allows you to disable app
+checks for sideloading apps over USB, while still checking apps from other
+sources like the browser. This can speed up the development process while
+keeping the security feature enabled.</li>
+<li><strong>Show hardware layers updates</strong> — Flashes hardware
+layers green when they update.</li>
+<li><strong>Show GPU overdraw</strong> — Highlights GPU overdraw
+areas.</li>
+<li><strong>Force 4x MSAA</strong> — Enables 4x MSAA in Open GL ES 2.0
+apps.</li>
+<li><strong>Simulate secondary displays</strong> — Creates one or more
+non-secure overlay windows on the current screen for use as a simulated remote
+display. You can control the simulated display’s size and density.</li>
+<li><strong>Enable OpenGL traces</strong> — Lets you trace OpenGL
+execution using Logcat, Systrace, or callstack on glGetError.</li>
+</ul>
+
+<h2 id="42-platform-tech" style="padding-top:1em;clear:left;">New Platform Technologies</h2>
+
+<p>Android 4.2 includes a variety of new and <strong>enhanced platform technologies</strong> to
+support innovative communications use-cases across a broad range of hardware
+devices. In most cases, the new platform technologies and enhancements do not directly
+affect your apps, so you can benefit from them without any modification.</p>
+
+<h3 id="42-security">Security enhancements</h3>
+
+<p>Every Android release includes dozens of security enhancements to protect
+users. Here are some of the enhancements in Android 4.2:</p>
+
+<ul>
+<li><strong>Application verification</strong> — Users can choose to enable
+“Verify Apps" and have applications screened by an application verifier, prior
+to installation. App verification can alert the user if they try to install an
+app that might be harmful; if an application is especially bad, it can block
+installation.</li>
+<li><strong>More control of premium SMS</strong> — Android will provide a
+notification if an application attempts to send SMS to a short code that uses
+premium services which might cause additional charges. The user can choose
+whether to allow the application to send the message or block it.</li>
+<li><strong>Always-on VPN</strong> — VPN can be configured so that
+applications will not have access to the network until a VPN connection is
+established. This prevents applications from sending data across other
+networks.</li>
+<li><strong>Certificate Pinning</strong> — The libcore SSL implementation
+now supports certificate pinning. Pinned domains will receive a certificate
+validation failure if the certificate does not chain to a set of expected
+certificates. This protects against possible compromise of Certificate
+Authorities.</li>
+<li><strong>Improved display of Android permissions</strong> — Permissions
+have been organized into groups that are more easily understood by users.
+During review of the permissions, the user can click on the permission to see
+more detailed information about the permission.</li>
+<li><strong>installd hardening</strong> — The installd daemon does not run
+as the root user, reducing potential attack surface for root privilege
+escalation.</li>
+<li><strong>init script hardening</strong> — init scripts now apply
+O_NOFOLLOW semantics to prevent symlink related attacks.</li>
+<li><strong>FORTIFY_SOURCE</strong> — Android now implements
+FORTIFY_SOURCE. This is used by system libraries and applications to prevent
+memory corruption.</li>
+<li><strong>ContentProvider default configuration</strong> — Applications
+which target API level 17 will have “export” set to “false” by default for each
+ContentProvider, reducing default attack surface for applications.</li>
+<li><strong>Cryptography</strong> — Modified the default implementations
+of SecureRandom and Cipher.RSA to use OpenSSL. Added SSLSocket support for
+TLSv1.1 and TLSv1.2 using OpenSSL 1.0.1</li>
+<li><strong>Security Fixes</strong> — Upgraded open source libraries with
+security fixes include WebKit, libpng, OpenSSL, and LibXML. Android 4.2 also
+includes fixes for Android-specific vulnerabilities. Information about these
+vulnerabilities has been provided to Open Handset Alliance members and fixes are
+available in Android Open Source Project. To improve security, some devices
+with earlier versions of Android may also include these fixes.</li>
+</ul>
+
+<h3 id="42-bt-stack">New Bluetooth stack</h3>
+
+Android 4.2 introduces a new Bluetooth stack optimized for use with Android
+devices. The new Bluetooth stack developed in collaboration between Google and
+Broadcom replaces the stack based on BlueZ and provides improved compatibility
+and reliability.
+
+<h3 id="42-audio">Low-latency audio</h3>
+
+<p>Android 4.2 improves support for low-latency audio playback, starting from the
+improvements made in Android 4.1 release for audio output latency using OpenSL
+ES, Soundpool and tone generator APIs. These improvements depend on hardware
+support — devices that offer these low-latency audio features can
+advertise their support to apps through a hardware feature constant. New
+AudioManager APIs are provided to query the native audio sample rate and buffer
+size, for use on devices which claim this feature.</p>
+
+<h3 id="42-camera-interface">New camera hardware interface</h3>
+
+Android 4.2 introduces a new implementation of the camera stack. The camera
+subsystem includes the implementations for components in the camera pipeline
+such as burst mode capture with processing controls.
+
+<h3 id="42-nfc-interface">New NFC hardware interface and controller interface</h3>
+
+Android 4.2 introduces support for controllers based on the NCI standard from
+the NFC-Forum. NCI provides a standard communication protocol between an NFC
+Controller (NFCC) and a device Host, and the new NFC stack developed in
+collaboration between Google and Broadcom supports it.
+
+<h3 id="42-dalvik">Dalvik runtime optimizations</h3>
+
+<p>The Dalvik runtime includes enhancements for performance and security across
+a wider range of architectures:</p>
+<ul>
+<li>x86 JIT support from Intel and MIPS JIT support from MIPS</li>
+<li>Optimized garbage-collection parameters for devices with > 512MB</li>
+<li>Default implementations of SecureRandom and Cipher.RSA now use OpenSSL</li>
+<li>SSLSocket support for TLSv1.1 and TLSv1.2 via OpenSSL 1.0.1</li>
+<li>New intrinsic support for StrictMath methods abs, min, max, and sqrt</li>
+<li>BouncyCastle updated to 1.47</li>
+<li>zlib updated to 1.27</li>
+<li>dlmalloc updated to 2.8.6</li>
+</ul>
+
+</div> <!-- END ANDROID 4.2 -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- BEGIN ANDROID 4.1 -->
+<div id="android-41" class="version-section">
+
<div style="float:right;width:320px;padding:0px 0px 0px 34px;clear:both">
<div>
-<img src="{@docRoot}images/jb-android-4.1.png" height="426" width="390">
+<img src="{@docRoot}images/jb-android-4.1.png" height="426" width="320">
</div>
</div>
-<p>Welcome to Android 4.1, Jelly Bean!</p>
+<p>Welcome to Android 4.1 the first version of Jelly Bean!</p>
<p>Android 4.1 is the fastest and smoothest version of Android yet. We’ve made
improvements throughout the platform and added great new features
@@ -31,7 +700,7 @@
<div style="float:left;margin:12px 24px 0px 0px;">
-<img src="{@docRoot}images/jb-accessibility-focus-250.png" style="width:240px">
+<img src="{@docRoot}images/jb-accessibility-focus-250.png" width="240px" height="469">
</div>
<div style="width:85%;padding-top:16px;">
@@ -52,7 +721,7 @@
<div style="clear:both;padding-top:16px;float:right;">
<div style="float:right;margin-left:18px;fpadding-top:90px;padding-bottom:60px">
-<img src="{@docRoot}images/jb-r2l.png" width="280">
+<img src="{@docRoot}images/jb-r2l.png" width="280" height="356">
</div>
</div>
@@ -220,7 +889,7 @@
<p>Ice Cream Sandwich introduced support for Wi-Fi Direct, a technology that lets apps <strong>discover and pair directly</strong>, over a high-bandwidth peer-to-peer connection. Wi-Fi Direct is an ideal way to share media, photos, files and other types of data and sessions, even where there is no cell network or Wi-Fi available.</p>
-<p>With Jelly Bean, Android takes Wi-Fi Direct further, adding API support for <strong>pre-associated service discovery</strong>. Pre-associated service discovery lets your apps get more useful information from nearby devices about the services they support, before they attempt to connect. Apps can initiate discovery for a specific service and filter the list of discovered devices to those that actually support the target service or application.</p>
+<p>Android 4.1 takes Wi-Fi Direct further, adding API support for <strong>pre-associated service discovery</strong>. Pre-associated service discovery lets your apps get more useful information from nearby devices about the services they support, before they attempt to connect. Apps can initiate discovery for a specific service and filter the list of discovered devices to those that actually support the target service or application.</p>
<p>For example, this means that your app could discover only devices that are “printers” or that have a specific game available, instead of discovering all nearby Wi-Fi Direct devices. On the other hand, your app can advertise the service it provides to other devices, which can discover it and then negotiate a connection. This greatly simplifies discovery and pairing for users and lets apps take advantage of Wi-Fi Direct more effectively.</p>
@@ -312,3 +981,11 @@
<p>Because your app only contains the small client library, you can take advantage of these services without a big increase in download size and storage footprint. Also, Google Play will <strong>deliver regular updates</strong> to the services, without developers needing to publish app updates to take advantage of them.</p>
<p>For more information about the APIs included in Google Play Services, see the <a href="http://developers.google.com/android/google-play-services/index.html">Google Play services</a> developer page.</p>
+
+</div> <!-- END ANDROID 4.1 -->
+
+
+
+
+
+
diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd
index 9c21b3a..5982e62 100644
--- a/docs/html/develop/index.jd
+++ b/docs/html/develop/index.jd
@@ -296,17 +296,17 @@
* Each string in 'ids' is the ID of a YouTube playlist that belongs in the corresponding tab.
*/
var playlists = {
- 'googleio' : {
- 'ids': ["4C6BCDE45E05F49E"]
- },
- 'fridayreview' : {
- 'ids': ["B7B9B23D864A55C3"]
- },
- 'officehours' : {
- 'ids': ["7383D9AADA6E6D55"]
+ 'designinaction' : {
+ 'ids': ["PLWz5rJ2EKKc8j2B95zGMb8muZvrIy-wcF"]
},
'about' : {
- 'ids': ["D7C64411AF40DEA5"]
+ 'ids': ["PL611F8C5DBF49CEC6"]
+ },
+ 'developersstrikeback' : {
+ 'ids': ["PLWz5rJ2EKKc8nhhIOieejm1PxYHmPkIPh"]
+ },
+ 'googleio' : {
+ 'ids': ["PL4C6BCDE45E05F49E"]
}
};
@@ -326,7 +326,7 @@
/* Request the playlist feeds from YouTube */
function showDevelopersLivePlaylist() {
- var playlistId = "B7B9B23D864A55C3"; /* The Friday Review */
+ var playlistId = "PLB7B9B23D864A55C3"; /* The App Clinic */
var script = "<script type='text/javascript' src='//gdata.youtube.com/feeds/api/playlists/"
+ playlistId +
"?v=2&alt=json-in-script&max-results=10&callback=renderDevelopersLivePlaylist&orderby=published'><\/script > ";
diff --git a/docs/html/distribute/googleplay/about/visibility.jd b/docs/html/distribute/googleplay/about/visibility.jd
index 38fb395..2ff1293 100644
--- a/docs/html/distribute/googleplay/about/visibility.jd
+++ b/docs/html/distribute/googleplay/about/visibility.jd
@@ -112,7 +112,8 @@
users, right from the Apps and Games home pages. The charts are generated
several times each day based on recent download activity, keeping them fresh and
allowing new apps to move upward in the charts. To make the charts as relevant
-as possible for users across the world, they are also country-specific.</p>
+as possible for users across the world, they are also country-specific in
+Google Play's most popular countries.</p>
<p>As your apps get traction and build momentum in downloads and ratings,
they’ll climb one or more of the top charts and gain even more exposure.</p>
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_10/land_back.png b/docs/html/distribute/promote/device-art-resources/nexus_10/land_back.png
index d082d50..24a9c80 100644
--- a/docs/html/distribute/promote/device-art-resources/nexus_10/land_back.png
+++ b/docs/html/distribute/promote/device-art-resources/nexus_10/land_back.png
Binary files differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_10/land_fore.png b/docs/html/distribute/promote/device-art-resources/nexus_10/land_fore.png
index d29f818..183caa1 100644
--- a/docs/html/distribute/promote/device-art-resources/nexus_10/land_fore.png
+++ b/docs/html/distribute/promote/device-art-resources/nexus_10/land_fore.png
Binary files differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_10/land_shadow.png b/docs/html/distribute/promote/device-art-resources/nexus_10/land_shadow.png
index af1a249..1d23d70 100644
--- a/docs/html/distribute/promote/device-art-resources/nexus_10/land_shadow.png
+++ b/docs/html/distribute/promote/device-art-resources/nexus_10/land_shadow.png
Binary files differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_10/port_back.png b/docs/html/distribute/promote/device-art-resources/nexus_10/port_back.png
index 501690b..51328b4 100644
--- a/docs/html/distribute/promote/device-art-resources/nexus_10/port_back.png
+++ b/docs/html/distribute/promote/device-art-resources/nexus_10/port_back.png
Binary files differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_10/port_fore.png b/docs/html/distribute/promote/device-art-resources/nexus_10/port_fore.png
index 689a72a3..57899d4 100644
--- a/docs/html/distribute/promote/device-art-resources/nexus_10/port_fore.png
+++ b/docs/html/distribute/promote/device-art-resources/nexus_10/port_fore.png
Binary files differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_10/port_shadow.png b/docs/html/distribute/promote/device-art-resources/nexus_10/port_shadow.png
index b2265ef..c329f10 100644
--- a/docs/html/distribute/promote/device-art-resources/nexus_10/port_shadow.png
+++ b/docs/html/distribute/promote/device-art-resources/nexus_10/port_shadow.png
Binary files differ
diff --git a/docs/html/distribute/promote/device-art-resources/nexus_10/thumb.png b/docs/html/distribute/promote/device-art-resources/nexus_10/thumb.png
index 8d8dee9..ec12a01 100644
--- a/docs/html/distribute/promote/device-art-resources/nexus_10/thumb.png
+++ b/docs/html/distribute/promote/device-art-resources/nexus_10/thumb.png
Binary files differ
diff --git a/docs/html/guide/google/gcm/adv.jd b/docs/html/google/gcm/adv.jd
similarity index 98%
rename from docs/html/guide/google/gcm/adv.jd
rename to docs/html/google/gcm/adv.jd
index 356ee1d..1360624 100644
--- a/docs/html/guide/google/gcm/adv.jd
+++ b/docs/html/google/gcm/adv.jd
@@ -257,7 +257,7 @@
<h2 id="multi-senders">Receiving Messages from Multiple Senders</h2>
<p>GCM allows multiple parties to send messages to the same application. For example, suppose your application is an articles aggregator with multiple contributors, and you want each of them to be able to send a message when they publish a new article. This message might contain a URL so that the application can download the article. Instead of having to centralize all sending activity in one location, GCM gives you the ability to let each of these contributors send its own messages.</p>
-<p>To make this possible, all you need to do is have each sender generate its own project ID. Then include those IDs in the sender field, separated by commas, when requesting a registration. Finally, share the registration ID with your partners, and they'll be able to send messages to your application using their own authentication keys.</p>
+<p>To make this possible, all you need to do is have each sender generate its own project number. Then include those IDs in the sender field, separated by commas, when requesting a registration. Finally, share the registration ID with your partners, and they'll be able to send messages to your application using their own authentication keys.</p>
<p>This code snippet illustrates this feature. Senders are passed as an intent extra in a comma-separated list:</p>
<pre class="prettyprint pretty-java">Intent intent = new Intent(GCMConstants.INTENT_TO_GCM_REGISTRATION);
intent.setPackage(GSF_PACKAGE);
diff --git a/docs/html/guide/google/gcm/c2dm.jd b/docs/html/google/gcm/c2dm.jd
similarity index 91%
rename from docs/html/guide/google/gcm/c2dm.jd
rename to docs/html/google/gcm/c2dm.jd
index ecc08c1..e80a41f 100644
--- a/docs/html/guide/google/gcm/c2dm.jd
+++ b/docs/html/google/gcm/c2dm.jd
@@ -55,7 +55,7 @@
<dd>To use the GCM service, you need to obtain a Simple API Key from Google APIs console page. For more information, see <a href="gs.html">Getting Started</a>. Note that GCM <em>only</em> accepts Simple API Key—using ClientLogin or OAuth2 tokens will not work.
</dd>
<dt><strong>Sender ID</strong></dt>
-<dd>In C2DM, the Sender ID is an email address. In GCM, the Sender ID is a project ID that you acquire from the API console, as described in <a href="gs.html#create-proj">Getting Started</a>. </dd>
+<dd>In C2DM, the Sender ID is an email address. In GCM, the Sender ID is a project number that you acquire from the API console, as described in <a href="gs.html#create-proj">Getting Started</a>. </dd>
<dt><strong>JSON format</strong></dt>
<dd>GCM HTTP requests support JSON format in addition to plain text. For more information, see the <a href="gcm.html#send-msg">Architectural Overview</a>.</dd>
@@ -82,12 +82,12 @@
<p>C2DM and GCM are not interoperable. For example, you cannot post notifications from GCM to C2DM registration IDs, nor can you use C2DM registration IDs as GCM registration IDs. From your server-side application, you must keep keep track of whether a registration ID is from C2DM or GCM and use the proper endpoint. </p>
<p>As you transition from C2DM to GCM, your server needs to be aware of whether a given registration ID
-contains an old C2DM sender or a new GCM project ID. This is the approach we recommend: have the new app version (the one that uses GCM) send a bit along with the registration ID. This bit tells your server that this registration ID is for GCM. If you don't get the extra bit, you mark the registration ID as C2DM. Once no more valid registration IDs are marked as C2DM, you can complete the migration.</p>
+contains an old C2DM sender or a new GCM project number. This is the approach we recommend: have the new app version (the one that uses GCM) send a bit along with the registration ID. This bit tells your server that this registration ID is for GCM. If you don't get the extra bit, you mark the registration ID as C2DM. Once no more valid registration IDs are marked as C2DM, you can complete the migration.</p>
<h2 id="migrating">Migrating Your Apps</h2>
<p>This section describes how to move existing C2DM apps to GCM.</p>
<h3 id="client">Client changes</h3>
-<p>Migration is simple! The only change required in the application is replacing the email account passed in the sender parameter of the registration intent with the project ID generated when signing up for the new service. For example:</p>
+<p>Migration is simple! The only change required in the application is replacing the email account passed in the sender parameter of the registration intent with the project number generated when signing up for the new service. For example:</p>
<pre class="prettyprint pretty-java">Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
// sets the app name in the intent
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
diff --git a/docs/html/guide/google/gcm/client-javadoc/allclasses-frame.html b/docs/html/google/gcm/client-javadoc/allclasses-frame.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/allclasses-frame.html
rename to docs/html/google/gcm/client-javadoc/allclasses-frame.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/allclasses-noframe.html b/docs/html/google/gcm/client-javadoc/allclasses-noframe.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/allclasses-noframe.html
rename to docs/html/google/gcm/client-javadoc/allclasses-noframe.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html b/docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html
rename to docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html b/docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html
rename to docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html b/docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html
rename to docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html b/docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html
rename to docs/html/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html b/docs/html/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html
rename to docs/html/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html b/docs/html/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html
rename to docs/html/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html b/docs/html/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html
rename to docs/html/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/constant-values.html b/docs/html/google/gcm/client-javadoc/constant-values.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/constant-values.html
rename to docs/html/google/gcm/client-javadoc/constant-values.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/default.css b/docs/html/google/gcm/client-javadoc/default.css
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/default.css
rename to docs/html/google/gcm/client-javadoc/default.css
diff --git a/docs/html/guide/google/gcm/client-javadoc/deprecated-list.html b/docs/html/google/gcm/client-javadoc/deprecated-list.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/deprecated-list.html
rename to docs/html/google/gcm/client-javadoc/deprecated-list.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/help-doc.html b/docs/html/google/gcm/client-javadoc/help-doc.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/help-doc.html
rename to docs/html/google/gcm/client-javadoc/help-doc.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/index-all.html b/docs/html/google/gcm/client-javadoc/index-all.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/index-all.html
rename to docs/html/google/gcm/client-javadoc/index-all.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/index.html b/docs/html/google/gcm/client-javadoc/index.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/index.html
rename to docs/html/google/gcm/client-javadoc/index.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/overview-tree.html b/docs/html/google/gcm/client-javadoc/overview-tree.html
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/overview-tree.html
rename to docs/html/google/gcm/client-javadoc/overview-tree.html
diff --git a/docs/html/guide/google/gcm/client-javadoc/package-list b/docs/html/google/gcm/client-javadoc/package-list
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/package-list
rename to docs/html/google/gcm/client-javadoc/package-list
diff --git a/docs/html/guide/google/gcm/client-javadoc/resources/inherit.gif b/docs/html/google/gcm/client-javadoc/resources/inherit.gif
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/resources/inherit.gif
rename to docs/html/google/gcm/client-javadoc/resources/inherit.gif
Binary files differ
diff --git a/docs/html/guide/google/gcm/client-javadoc/stylesheet.css b/docs/html/google/gcm/client-javadoc/stylesheet.css
similarity index 100%
rename from docs/html/guide/google/gcm/client-javadoc/stylesheet.css
rename to docs/html/google/gcm/client-javadoc/stylesheet.css
diff --git a/docs/html/guide/google/gcm/demo.jd b/docs/html/google/gcm/demo.jd
similarity index 98%
rename from docs/html/guide/google/gcm/demo.jd
rename to docs/html/google/gcm/demo.jd
index d66cbbc..7e35fd6 100644
--- a/docs/html/guide/google/gcm/demo.jd
+++ b/docs/html/google/gcm/demo.jd
@@ -62,7 +62,7 @@
<p>For the Android application:</p>
<ul>
<li>Emulator (or device) running Android 2.2 with Google APIs.</li>
- <li>The Google API project ID of the account registered to use GCM.</li>
+ <li>The Google API project number of the account registered to use GCM.</li>
</ul>
<h2 id="gcm-setup">Setting Up GCM</h2>
<p>Before proceeding with the server and client setup, it's necessary to register a Google account with the Google API Console, enable Google Cloud Messaging in GCM, and obtain an API key from the <a href="https://code.google.com/apis/console">Google API Console</a>.</p>
@@ -175,7 +175,7 @@
<pre class="prettyprint pretty-java">
static final String SERVER_URL = "http://192.168.1.10:8080/gcm-demo";
static final String SENDER_ID = "4815162342";</pre>
-<p>Note that the <code>SERVER_URL</code> is the URL for the server and the application's context (or just server, if you are using App Engine), and it does not include the forward slash (<code>/</code>). Also note that <code>SENDER_ID</code> is the Google API project ID you obtained in the server setup steps above.</p>
+<p>Note that the <code>SERVER_URL</code> is the URL for the server and the application's context (or just server, if you are using App Engine), and it does not include the forward slash (<code>/</code>). Also note that <code>SENDER_ID</code> is the Google API project number you obtained in the server setup steps above.</p>
<li>In a shell window, go to the <code>gcm-demo-client</code> directory.</li>
<li>Use the SDK's <code>android</code> tool to generate the <code>ant</code> build files:</li>
diff --git a/docs/html/guide/google/gcm/gcm.jd b/docs/html/google/gcm/gcm.jd
similarity index 96%
rename from docs/html/guide/google/gcm/gcm.jd
rename to docs/html/google/gcm/gcm.jd
index a47ceb9..1762e12 100644
--- a/docs/html/guide/google/gcm/gcm.jd
+++ b/docs/html/google/gcm/gcm.jd
@@ -80,7 +80,6 @@
<ul>
<li>It allows 3rd-party application servers to send messages to
their Android applications.</li>
- <li>GCM makes no guarantees about delivery or the order of messages.</li>
<li>An Android application on an Android device doesn't need to be running to receive
messages. The system will wake up the Android application via Intent broadcast when the message arrives, as long as the application is set up with the proper
broadcast receiver and permissions.</li>
@@ -133,7 +132,7 @@
</tr>
<tr>
<td><strong>Sender ID</strong></td>
- <td>A project ID you acquire from the API console, as described in <a href="gs.html#create-proj">Getting Started</a>. The sender
+ <td>A project number you acquire from the API console, as described in <a href="gs.html#create-proj">Getting Started</a>. The sender
ID is used in the <a href="#registering">registration process</a> to identify an
Android application that is permitted to send messages to the device.</td>
</tr>
@@ -360,7 +359,7 @@
</p>
<ul>
- <li><code>sender</code> is the project ID of the account authorized to send messages
+ <li><code>sender</code> is the project number of the account authorized to send messages
to the Android application. </li>
<li><code>app</code> is the Android application's ID, set with a <code>PendingIntent</code> to
allow the registration service to extract Android application information. </li>
@@ -675,6 +674,16 @@
<td><code>time_to_live</code></td>
<td>How long (in seconds) the message should be kept on GCM storage if the device is offline. Optional (default time-to-live is 4 weeks, and must be set as a JSON number).</td>
</tr>
+<tr>
+ <td><code>restricted_package_name</code></td>
+ <td>A string containing the package name of your application. When set, messages will only be sent to registration IDs that match the package name. Optional.
+ </td>
+</tr>
+<tr>
+ <td><code>dry_run</code></td>
+ <td>If included, allows developers to test their request without actually sending a message. Optional. The default value is <code>false</code>, and must be a JSON boolean.
+ </td>
+</tr>
</table>
<p>If you are using plain text instead of JSON, the message fields must be set as HTTP parameters sent in the body, and their syntax is slightly different, as described below:
@@ -706,9 +715,19 @@
<td><code>time_to_live</code></td>
<td>Same as JSON (see previous table). Optional.</td>
</tr>
+<tr>
+ <td><code>restricted_package_name</code></td>
+ <td>Same as JSON (see previous table). Optional.
+ </td>
+</tr>
+<tr>
+ <td><code>dry_run</code></td>
+ <td>Same as JSON (see previous table). Optional.
+ </td>
+</tr>
</table>
-
+<p>If you want to test your request (either JSON or plain text) without delivering the message to the devices, you can set an optional HTTP or JSON parameter called <code>dry_run</code> with the value <code>true</code>. The result will be almost identical to running the request without this parameter, except that the message will not be delivered to the devices. Consequently, the response will contain fake IDs for the message and multicast fields (see <a href="#response">Response format</a>).</p>
<h4 id="example-requests">Example requests</h4>
<p>Here is the smallest possible request (a message without any parameters and just one recipient) using JSON:</p>
@@ -889,7 +908,7 @@
<dt id="auth_error"><strong>Authentication Error</strong></dt>
<dd>The sender account that you're trying to use to send a message couldn't be authenticated. Possible causes are: <ul>
<li>Authorization header missing or with invalid syntax.</li>
-<li>Invalid project ID sent as key.</li>
+<li>Invalid project number sent as key.</li>
<li>Key valid but with GCM service disabled.</li>
<li>Request originated from a server not whitelisted in the Server Key IPs.</li>
@@ -944,6 +963,13 @@
object in the results array is <code>InternalServerError</code>.
</dd>
+<dt id="restricted_package_name"><strong>Invalid Package Name</strong></dt>
+
+<dd>
+A message was addressed to a registration ID whose package name did not match the value passed in the request. Happens when error code is
+<code>InvalidPackageName</code>.
+</dd>
+
</dl>
<h4>Example responses</h4>
diff --git a/docs/html/guide/google/gcm/gs.jd b/docs/html/google/gcm/gs.jd
similarity index 99%
rename from docs/html/guide/google/gcm/gs.jd
rename to docs/html/google/gcm/gs.jd
index 8d132d8..fc5c4a2 100644
--- a/docs/html/guide/google/gcm/gs.jd
+++ b/docs/html/google/gcm/gs.jd
@@ -41,7 +41,7 @@
<pre> https://code.google.com/apis/console/#project:<strong>4815162342</strong></pre>
- <li> Take note of the value after <code>#project:</code> (4815162342 in this example). This is your project ID, and it will be used later on as the GCM sender ID.</li>
+ <li> Take note of the value after <code>#project:</code> (4815162342 in this example). This is your project number, and it will be used later on as the GCM sender ID.</li>
</ol>
<h2 id="gcm-service">Enabling the GCM Service</h2>
diff --git a/docs/html/guide/google/gcm/index.jd b/docs/html/google/gcm/index.jd
similarity index 100%
rename from docs/html/guide/google/gcm/index.jd
rename to docs/html/google/gcm/index.jd
diff --git a/docs/html/guide/google/gcm/server-javadoc/allclasses-frame.html b/docs/html/google/gcm/server-javadoc/allclasses-frame.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/allclasses-frame.html
rename to docs/html/google/gcm/server-javadoc/allclasses-frame.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/allclasses-noframe.html b/docs/html/google/gcm/server-javadoc/allclasses-noframe.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/allclasses-noframe.html
rename to docs/html/google/gcm/server-javadoc/allclasses-noframe.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html b/docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html
rename to docs/html/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/constant-values.html b/docs/html/google/gcm/server-javadoc/constant-values.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/constant-values.html
rename to docs/html/google/gcm/server-javadoc/constant-values.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/default.css b/docs/html/google/gcm/server-javadoc/default.css
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/default.css
rename to docs/html/google/gcm/server-javadoc/default.css
diff --git a/docs/html/guide/google/gcm/server-javadoc/deprecated-list.html b/docs/html/google/gcm/server-javadoc/deprecated-list.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/deprecated-list.html
rename to docs/html/google/gcm/server-javadoc/deprecated-list.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/help-doc.html b/docs/html/google/gcm/server-javadoc/help-doc.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/help-doc.html
rename to docs/html/google/gcm/server-javadoc/help-doc.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/index-all.html b/docs/html/google/gcm/server-javadoc/index-all.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/index-all.html
rename to docs/html/google/gcm/server-javadoc/index-all.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/index.html b/docs/html/google/gcm/server-javadoc/index.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/index.html
rename to docs/html/google/gcm/server-javadoc/index.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/overview-tree.html b/docs/html/google/gcm/server-javadoc/overview-tree.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/overview-tree.html
rename to docs/html/google/gcm/server-javadoc/overview-tree.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/package-list b/docs/html/google/gcm/server-javadoc/package-list
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/package-list
rename to docs/html/google/gcm/server-javadoc/package-list
diff --git a/docs/html/guide/google/gcm/server-javadoc/resources/inherit.gif b/docs/html/google/gcm/server-javadoc/resources/inherit.gif
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/resources/inherit.gif
rename to docs/html/google/gcm/server-javadoc/resources/inherit.gif
Binary files differ
diff --git a/docs/html/guide/google/gcm/server-javadoc/serialized-form.html b/docs/html/google/gcm/server-javadoc/serialized-form.html
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/serialized-form.html
rename to docs/html/google/gcm/server-javadoc/serialized-form.html
diff --git a/docs/html/guide/google/gcm/server-javadoc/stylesheet.css b/docs/html/google/gcm/server-javadoc/stylesheet.css
similarity index 100%
rename from docs/html/guide/google/gcm/server-javadoc/stylesheet.css
rename to docs/html/google/gcm/server-javadoc/stylesheet.css
diff --git a/docs/html/google/google_toc.cs b/docs/html/google/google_toc.cs
new file mode 100644
index 0000000..d371fa1
--- /dev/null
+++ b/docs/html/google/google_toc.cs
@@ -0,0 +1,149 @@
+<?cs # Table of contents for Dev Guide.
+
+ For each document available in translation, add an localized title to this TOC.
+ Do not add localized title for docs not available in translation.
+ Below are template spans for adding localized doc titles. Please ensure that
+ localized titles are added in the language order specified below.
+?>
+
+<ul id="nav">
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="<?cs var:toroot ?>google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play-services/index.html">
+ <span class="en">Google Play services</span></a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot?>google/play-services/overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+
+ <li><a href="<?cs var:toroot?>google/play-services/download.html">
+ <span class="en">Downloading and Configuring</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play-services/auth.html">
+ <span class="en">Authentication</span></a>
+ </li>
+
+ <li><a href="<?cs var:toroot?>google/play-services/analytics.html">
+ <span class="en">Analytics</span></a>
+ </li>
+
+ <li><a href="<?cs var:toroot?>google/play-services/plus.html">
+ <span class="en">Google+</span></a>
+ </li>
+
+ <li><a href="<?cs var:toroot?>google/play-services/maps.html">
+ <span class="en">Maps</span></a>
+ </li>
+
+ <li id="tree-list">
+ <a href="<?cs var:toroot?>google/play-services/reference/packages.html">
+ <span class="en">Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play/billing/index.html">
+ <span class="en">Google Play <br />In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot?>google/play/billing/billing_overview.html">
+ <span class="en">In-app Billing Overview</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/billing/billing_integrate.html">
+ <span class="en">Implementing In-app Billing</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/billing/billing_testing.html">
+ <span class="en">Testing <br/>In-app Billing</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/billing/billing_reference.html">
+ <span class="en">In-app Billing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play/dist.html">
+ <span class="en">Google Play Distribution and Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="<?cs var:toroot ?>google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+
+ <li><a href="<?cs var:toroot ?>google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot?>google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot?>google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/gcm/gcm.html">
+ <span class="en">Architectural Overview</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/gcm/demo.html">
+ <span class="en">Demo App Tutorial</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="<?cs var:toroot?>google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
diff --git a/docs/html/google/index.jd b/docs/html/google/index.jd
new file mode 100644
index 0000000..ab2c58c
--- /dev/null
+++ b/docs/html/google/index.jd
@@ -0,0 +1,86 @@
+page.title=Google Services
+@jd:body
+
+<p>
+ Google offers a variety of services that help you build new revenue streams, enhance your app's
+ capabilities, manage distribution and payloads, and track usage and installs.
+ The sections below highlight some of the services offered by Google and link you to more information about
+ how to use them in your Android app.
+</p>
+ <h2>
+ Integrate Google Products
+ </h2>
+ <img src="{@docRoot}images/gps-small.png" style="float:left; padding-right:10px">
+ <p>Utilize the most up-to-date features of Google products in your app
+ without worrying the Android versions running on your users' devices. Users receive updates to Google Play
+ services through the Google Play store whenever available, ensuring
+ that exciting, new features of your app reach the most devices possible.
+ All of this comes with an easy-to-use authentication flow for you and your users.
+ </p><a href="{@docRoot}guide/google/play-services/index.html">Learn more »</a>
+
+<div class="vspace size-1">
+
+</div>
+
+<h2 id="monetization">
+ Monetize Your App
+</h2>
+<p>
+ Make the most out of your app's revenue potential by using monetization policies targeted
+ at your users' needs.
+</p>
+
+<div class="vspace size-1">
+
+</div>
+
+<div class="layout-content-row">
+ <div class="layout-content-col span-6">
+ <h4>
+ Google Play In-App Billing
+ </h4>
+ <p>
+ Engage users by offering features such as new content or virtual goods directly in your app.
+ </p><a href="{@docRoot}guide/google/play/billing/index.html">Learn more »</a>
+ </div>
+
+ <div class="layout-content-col span-6">
+ <h4>
+ Google AdMob Ads
+ </h4>
+ <p>
+ Generate revenue by displaying ads in your app with multiple ad networks.
+ </p><a href="http://www.google.com/ads/admob/index.html">Learn more »</a>
+ </div>
+</div>
+
+
+
+<h2 id="gcm">
+ Receive Messages from the Cloud
+</h2>
+ <img src="/images/gcm/gcm-logo.png" width="150px" style="padding:9px; float:left">
+
+ <p>Use Google Cloud Messaging to notify your apps of important events with
+ that are lightweight and battery-saving. There are no quotas or charges
+ to use Google Cloud Messaging, no matter how big your messaging needs are.</p>
+
+ <a href="{@docRoot}guide/google/gcm/index.html">Learn more »</a>
+
+<div class="vspace size-1">
+
+</div>
+
+
+<h2 id="distribution">
+ Manage App Distribution and Licensing
+</h2>
+<p>
+ Google Play allows you to manage your app distribution with features such as app licensing
+ and device filtering. Take advantage of features that let you reach the right users with
+ the right content while protecting your app from unauthorized use.
+</p>
+
+ <a href="{@docRoot}guide/google/play/dist.html">Learn more »</a>
+</div>
+
diff --git a/docs/html/google/play-services/analytics.jd b/docs/html/google/play-services/analytics.jd
new file mode 100644
index 0000000..df93cbe
--- /dev/null
+++ b/docs/html/google/play-services/analytics.jd
@@ -0,0 +1,56 @@
+page.title=Google Analytics
+page.landing=true
+page.landing.intro=The Google Analytics Platform lets you measure user interactions with your business across various devices and environments. The platform provides all the computing resources to collect, store, process, and report on these user-interactions.
+page.landing.link=https://developers.google.com/analytics/devguides/collection/android/v2/
+page.landing.link.text=developers.google.com/analytics
+page.landing.image=images/gps-analytics.png
+
+@jd:body
+
+<div class="landing-docs">
+ <div class="col-6">
+ <h3 style="clear:left">Key Developer Features</h3>
+
+ <a href="https://developers.google.com/analytics/devguides/collection/android/v2/campaigns">
+ <h4>Discover user geography and habits</h4>
+ Discover where your users are coming from and how they are accessing your app,
+ from the moment they download your app from the Google Play Store.</a>
+
+ <a href="https://developers.google.com/analytics/devguides/collection/android/v2/ecommerce">
+ <h4>Track monetization performance</h4>
+ Monitor the success of mobile marketing campaigns by taking advantage of the end-to-end visibility
+ into the performance of your in-app purchases and transactions.
+ </a>
+
+ <a href="https://developers.google.com/analytics/devguides/collection/android/v2/screens">
+ <h4>Monitor app usage</h4>
+ Record data about the screens your users are viewing in your app and gain insight
+ on what features they use most. All of this information can help you pinpoint specific
+ markets and enhance features to make your app the best it can be.
+ </a>
+
+ </div>
+
+ <div class="col-6 normal-links">
+ <h3 style="clear:left">Getting Started</h3>
+ <h4>Get the Google Play services SDK</h4>
+ <p>The Google Analytics Android APIs are part of the Google Play services platform.</p>
+ <p><a href="{@docRoot}google/play-services/download.html">Download and configure</a>
+ the SDK to begin integrating Google Analytics into your app.
+ </p>
+
+ <h4>Visit the Google Analytics developer site</h4>
+ <p>For instructions on how to fully integrate Google+ into your app, with code snippets, visit the
+ <a href="https://developers.google.com/analytics/devguides/collection/android/v2/">Google
+ Analytics developer documentation</a> located at developers.google.com.
+ </p>
+
+ <h4>See the reference documentation</h4>
+ <p>
+ The <a href="{@docRoot}google/play-services/reference/com/google/android/gms/analytics/package-summary.html">Google
+ Analytics API reference</a> as well as the entire <a href="{@docRoot}google/play-services/reference/packages.html">Google
+ Play services platform reference</a> is provided for you on this site.
+ </p>
+
+ </div>
+</div>
\ No newline at end of file
diff --git a/docs/html/google/play-services/auth.jd b/docs/html/google/play-services/auth.jd
new file mode 100644
index 0000000..8787ec9
--- /dev/null
+++ b/docs/html/google/play-services/auth.jd
@@ -0,0 +1,196 @@
+page.title=Authentication
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#choose">Choosing an account</a></li>
+ <li><a href="#obtain">Obtaining an authorization token</a></li>
+ <li><a href="#handle">Handling exceptions</a></li>
+ <li><a href="#use">Using the token</a></li>
+ </ol>
+ </div>
+</div>
+
+<p>
+ Google Play services offers a standard authentication flow for all Google APIs and
+ all components of Google Play services. In addition, you can leverage the authentication
+ portion of the Google Play services SDK to authenticate to services that are not yet supported
+ in the Google Play services platform by using the authentication token to manually make API
+ requests or using a client library provided by the service provider.
+</p>
+
+<p>For implementation details, see the sample in <code><android-sdk>/extras/google-play-services/samples/auth</code>, which shows you how
+to carry out these basic steps for obtaining an authentication token.</p>
+
+<h2 id="choose">Choosing an Account</h2>
+<p>
+ Google Play services leverage existing accounts on an Android-powered device
+ to authenticate to the services that you want to use. To obtain an authorization token,
+ a valid Google account is required and it must exist on the device. You can ask your users which
+ account they want to use by enumerating the Google accounts on the device or using the
+ built-in
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/AccountPicker.html">AccountPicker</a>
+ class to display a standard account picker view. You'll need the
+ {@link android.Manifest.permission#GET_ACCOUNTS}
+ permission set in your manifest file for both methods.
+</p>
+<p>
+ For example, here's how to gather all of the Google accounts on a device and return them
+ in an array. When obtaining an authorization token, only the email address of the account is
+ needed, so that is what the array stores:
+</p>
+
+<pre>
+private String[] getAccountNames() {
+ mAccountManager = AccountManager.get(this);
+ Account[] accounts = mAccountManager.getAccountsByType(
+ GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
+ String[] names = new String[accounts.length];
+ for (int i = 0; i < names.length; i++) {
+ names[i] = accounts[i].name;
+ }
+ return names;
+}
+</pre>
+<h2 id="obtain">Obtaining an Authorization Token</h2>
+<p>
+ With an email address, you can now obtain an authorization token. There are two general
+ ways to get a token:</p>
+
+ <ul>
+ <li>Call one of the two overloaded <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">GoogleAuthUtil.getToken()</a> methods in a foreground activity where you can
+ display a dialog to the user to interactively handle authentication errors.</li>
+ <li>Call one of the three <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getTokenWithNotification()</a>
+ methods if you are authenticating in a background service or sync adapter so that a notification is displayed if an authentication
+ error occurs.</a></li>
+ </ul>
+
+ <h3>Using getToken()</h3>
+ The following code snippet obtains an authentication token with an email address, the scope that you want to use for the service, and a {@link android.content.Context}:
+<pre>
+HelloActivity mActivity;
+String mEmail;
+String mScope;
+String token;
+
+...
+
+try {
+ token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope);
+} catch {
+ ...
+}
+</pre>
+
+<p>Call this method off of the main UI thread since it executes network transactions. An easy way to do this
+ is in an <a href="http://developer.android.com/reference/android/os/AsyncTask.html">AsyncTask</a>.
+ The sample in the Google Play services SDK shows you how to wrap this call in an AsyncTask.
+ If authentication is successful, the token is returned. If not, the exceptions described in <a href="#handle">Handling Exceptions</a>
+ are thrown that you can catch and handle appropriately.
+</p>
+
+ <h3>Using getTokenWithNotification()</h3>
+ <p>If you are obtaining authentication tokens in a background service or sync adapter, there are three overloaded <code>getTokenWithNotification()</code> methods
+ that you can use:</p>
+ <ul>
+ <li><a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle)">getTokenWithNotification(Context context, String accountName, String scope, Bundle extras)</a>:
+ For background services. Displays a notification to the user when authentication errors occur.</li>
+ <li><a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, android.content.Intent)">getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, Intent callback)</a>:
+ This method is for use in background services. It displays a notification to the user when authentication errors occur. If a user clicks the notification and then authorizes the app to access the account, the intent is broadcasted. When using this method:
+ <ul>
+ <li>Create a {@link android.content.BroadcastReceiver} that registers the intent and handles it appropriately</li>
+ <li>In the app's manifest file, set the <code>android:exported</code> attribute to <code>true</code> for the broadcast receiver</li>
+ <li>Ensure that the intent is serializable using the {@link android.content.Intent#toUri toUri(Intent.URI_INTENT_SCHEME)} and
+ {@link android.content.Intent#parseUri parseUri(intentUri, Intent.URI_INTENT_SCHEME)} methods.</li>
+ </ul>
+ <li><a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getTokenWithNotification(android.content.Context, java.lang.String, java.lang.String, android.os.Bundle, java.lang.String, android.os.Bundle)">getTokenWithNotification(Context context, String accountName, String scope, Bundle extras, String authority, Bundle syncBundle)</a>: This method is for use in sync adapters. It displays a notification to the user when authentication errors occur. If a user clicks the notification and then authorizes the app to access the account, the sync adapter retries syncing with the information
+ contained in the <code>syncBundle</code> parameter.</li>
+ </ul>
+
+ <p>See the sample in <code><android-sdk>/extras/google-play-services/samples/auth</code> for implementation details.</p>
+
+<h2 id="handle">Handling Exceptions</h2>
+<p>
+ When requesting an authentication token with
+ <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">GoogleAuthUtil.getToken()</a>,
+ the following exceptions can be thrown:
+</p>
+<ul>
+ <li>
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a>:
+ This exception is thrown when an error occurs that users can resolve, such as not yet granting access to their accounts or if they changed their password.
+ This exception class contains a {@link android.app.Activity#getIntent getIntent()}
+ method that you can call to obtain an intent that you can use with
+{@link android.app.Activity#startActivityForResult startActivityForResult()}
+ to obtain the user's resolution. You will need to handle the
+{@link android.app.Activity#onActivityResult onActivityResult()}
+ callback when this activity returns to take action based on the user's actions.
+ </li>
+ <li>
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html">GooglePlayServicesAvailabilityException</a>:
+ This exception is a special case of <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/UserRecoverableAuthException.html">UserRecoverableAuthException</a>
+ and occurs when the actual Google Play services APK is not installed or unavailable.
+ This exception provides additional client support to
+ handle and fix this issue by providing an error code that describes the exact cause of the problem.
+ This exception also contains an intent that you can obtain and use to start
+ an activity to resolve the issue.
+ </li>
+ <li>
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthException.html">GoogleAuthException</a>:
+ This exception is thrown when the authorization fails, such as when an invalid scope is
+ specified or if the email address used to authenticate is actually not on the user's
+ device.
+ </li>
+ <li>
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html">UserRecoverableNotifiedException</a>:
+ This exception is thrown when the authorization fails using one of the <code>getTokenWithNotification()</code> methods and if the error
+ is recoverable with a user action.
+ </li>
+</ul>
+<p>
+ For more information on how to handle these exceptions and code snippets, see the reference
+ documentation for the
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html">GoogleAuthUtil</a>
+ class.
+</p>
+<h2 id="use">Using the Token</h2>
+<p>
+ Once you have successfully obtained a token, you can use it to access Google services.
+ Many Google services provide client libraries, so it is recommended that you use these when
+ possible, but you can make raw HTTP requests as well with the token. The following example
+ shows you how to do this and handle HTTP error and success responses accordingly:
+</p>
+
+<pre>
+URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo?access_token="
+ + token);
+HttpURLConnection con = (HttpURLConnection) url.openConnection();
+int serverCode = con.getResponseCode();
+//successful query
+if (serverCode == 200) {
+ InputStream is = con.getInputStream();
+ String name = getFirstName(readResponse(is));
+ mActivity.show("Hello " + name + "!");
+ is.close();
+ return;
+//bad token, invalidate and get a new one
+} else if (serverCode == 401) {
+ GoogleAuthUtil.invalidateToken(mActivity, token);
+ onError("Server auth error, please try again.", null);
+ Log.e(TAG, "Server auth error: " + readResponse(con.getErrorStream()));
+ return;
+//unknown error, do something else
+} else {
+ Log.e("Server returned the following error code: " + serverCode, null);
+ return;
+}
+</pre>
+
+<p>
+ Notice that you must manually invalidate the token if the response from the server
+ signifies an authentication error (401). This could mean the authentication token
+ being used is invalid for the service's scope or the token may have expired. If this is the
+ case, obtain a new token using <a href="{@docRoot}google/play-services/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String)">GoogleAuthUtil.getToken()</a>.
+</p>
\ No newline at end of file
diff --git a/docs/html/google/play-services/dist.jd b/docs/html/google/play-services/dist.jd
new file mode 100644
index 0000000..85a64f9
--- /dev/null
+++ b/docs/html/google/play-services/dist.jd
@@ -0,0 +1,56 @@
+page.title=Google Play Distribution and Licensing
+@jd:body
+
+
+<h2 id="distribution">
+ Manage App Distribution and Licensing
+</h2>
+<p>
+ Google Play allows you to manage your app distribution with features that let you control which users
+ can download your app as well as deliver separate versions of your app based on certain
+ characteristics like platform version.
+</p>
+<div class="vspace size-1">
+
+</div>
+<div class="layout-content-row">
+ <div class="layout-content-col span-6">
+ <h4>
+ Device Filtering
+ </h4>
+ <p>
+ Make sure your app gets to the right users by filtering on a wide range of characteristics
+ such as platform versions and hardware features.
+ </p><p><a href="{@docRoot}guide/google/play/filters.html">Learn more »</a></p>
+ </div>
+
+ <div class="layout-content-col span-6">
+ <h4>
+ Multiple APK Support
+ </h4>
+ <p>
+ Distribute different APKs based on a variety of properties such as platform version, screen
+ size, and GLES texture compression support.
+ </p><p><a href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Learn more »</a></p>
+ </div>
+
+<div class="layout-content-row">
+ <div class="layout-content-col span-6">
+ <h4>
+ APK Expansion files
+ </h4>
+ <p>
+ Tap into Google's content delivery services by serving up to 4GB of assets for free. Provide
+ users with high-fidelity graphics, media files, or other large assets that are required by
+ your app.
+ </p><a href="{@docRoot}guide/google/play/expansion-files.html">Learn more »</a>
+ </div>
+
+ <div class="layout-content-col span-6">
+ <h4>
+ Application Licensing
+ </h4>
+ <p>Protect your revenue streams and integrate policies for usage into your app.
+ </p><a href="{@docRoot}guide/google/play/licensing/index.html">Learn more »</a>
+ </div>
+</div>
\ No newline at end of file
diff --git a/docs/html/google/play-services/download.jd b/docs/html/google/play-services/download.jd
new file mode 100644
index 0000000..fb03035
--- /dev/null
+++ b/docs/html/google/play-services/download.jd
@@ -0,0 +1,140 @@
+page.title=Downloading and Configuring the Google Play services SDK
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#ensure">Ensuring Devices Have the Google Play services APK</a></li>
+ </ol>
+ </div>
+</div>
+
+
+<p>
+ The Google Play services SDK is an extension to the Android SDK and is available to you as a
+ downloadable SDK component. This download includes the client library and code samples.
+</p>
+
+<p>
+ Before you get started developing, make sure that you have an updated version of the Android SDK
+ installed on your computer, including the SDK Tools component. If you don't have the SDK,
+ visit the <a href="{@docRoot}sdk/index.html">SDK Download page</a>
+ on the Android Developers site.
+</p>
+
+<p>
+ To download and configure the Google Play services SDK:
+</p>
+
+<ol>
+ <li>
+ Launch Eclipse and select <b>Window > Android SDK Manager</b> or run <code>android</code>
+ at the command line.
+ </li>
+ <li>
+ Scroll to the bottom of the package list and select <b>Extras > Google Play services</b>.
+ The add-on is downloaded to your computer and installed in your SDK environment at
+ <code><android-sdk-folder>/extras/google/google_play_services/</code>.
+ </li>
+ <li>
+ Reference the Google Play services client library project located in
+ <code><android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib</code> as
+ a library project for your Android project. See the
+ <a href="{@docRoot}tools/projects/projects-eclipse.html#ReferencingLibraryProject">Referencing a Library Project for Eclipse</a>
+ or <a href="{@docRoot}tools/projects/projects-cmdline.html#ReferencingLibraryProject">Referencing a Library Project on the Command Line</a>
+ for more information on how to do this.
+ </li>
+ <li>If you are using <a href="{@docRoot}tools/help/proguard.html">ProGuard</a>, add the following
+ lines in the <code><project_directory>/proguard-project.txt</code> file:
+ to prevent ProGuard from stripping away required classes:
+<pre>
+-keep class * extends java.util.ListResourceBundle {
+ protected Object[][] getContents();
+}
+</pre>
+</ol>
+
+<h2 id="ensure">Ensuring Devices Have the Google Play services APK</h2>
+<p>
+ Google Play delivers updates to the majority of the devices that support Google Play services
+ (Android 2.2 devices with the Google Play Store app installed). However, updates might not reach
+ supported devices in a timely manner, which are desribed in the following four scenarios:
+<p class="note">
+<strong>Important:</strong>
+<span>
+ Because it is hard to anticipate the state devices are in, you must <em>always</em> check for a
+ compatible Google Play services APK in your app when you are accessing Google Play services
+ features. For many apps, this is each time in the
+ {@link android.app.Activity#onResume onResume()} method of the main activity.
+</span>
+</p>
+<ol>
+ <li>
+ A recent version of the Google Play Store app is installed, and the most recent Google Play
+ services APK has been downloaded.
+ </li>
+ <li>
+ A recent version of the Google Play Store app is installed, but the most recent Google Play
+ services APK has <em>not</em> been downloaded.
+ </li>
+ <li>
+ An old version of the Google Play Store app, which does not proactively download Google Play
+ services updates, is present.
+ </li>
+ <li>
+ The Google Play services APK is missing or disabled on the device, which might happen if the
+ user explicitly uninstalls or disables it.
+ </li>
+</ol>
+<p>
+ Case 1 is the success scenario and is the most common. However, because the other scenarios can
+ still happen, you must handle them every time your app connects to a Google Play service to
+ ensure that the Google Play services APK is present, up-to-date, and enabled.
+</p>
+<p>
+ To help you, the Google Play services client library has utility methods to assist in
+ determining whether or not the Google Play services APK is recent enough to support the
+ version of the client library that you are using. If not, the client library sends users to the
+ Google Play Store to download a recent version of the Google Play services APK.
+</p>
+
+<p class="note">
+<b>Note:</b>
+<span>
+ The Google Play services APK is not visible by searching the Google Play Store. The client
+ library provides a deep link into the Google Play Store when it detects that the device has a
+ missing or incompatible Google Play services APK.
+</span>
+</p>
+
+<p>
+ It is up to you choose the appropriate place in your app to do the following steps to check for
+ a valid Google Play services APK. For example, if Google Play services is required for your app,
+ you might want to do it when your app first launches. On the other hand, if Google Play services
+ is an optional part of your app, you can do these checks if the user navigates to that portion
+ of your app:
+</p>
+
+<ol>
+ <li>
+ Query for the status of Google Play services on the device with the
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable(android.content.Context)">isGooglePlayServicesAvailable()</a>
+ method, which returns a result code.
+ </li>
+ <li>
+ If the result code is
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/ConnectionResult.html#SUCCESS">SUCCESS</a>,
+ then the Google Play services APK is up-to-date, and you can proceed as normal.
+ </li>
+ <li>
+ If the result is
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/ConnectionResult.html#SERVICE_MISSING">SERVICE_MISSING</a>,
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/ConnectionResult.html#SERVICE_VERSION_UPDATE_REQUIRED">SERVICE_VERSION_UPDATE_REQUIRED</a>,
+ or
+<a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/ConnectionResult.html#SERVICE_DISABLED">SERVICE_DISABLED</a>,
+ call <a href="{@docRoot}google/play-services/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog()</a>
+ to display an error message to the user, which will then allow the user to download the APK
+ from the Google Play Store or enable it in the device's system settings.
+ </li>
+</ol>
\ No newline at end of file
diff --git a/docs/html/google/play-services/index.jd b/docs/html/google/play-services/index.jd
new file mode 100644
index 0000000..60a689d
--- /dev/null
+++ b/docs/html/google/play-services/index.jd
@@ -0,0 +1,76 @@
+page.title=Google Maps
+page.landing=true
+page.landing.intro=Add Google maps to your Android apps and let your users explore the world. Give your users all of the benefits of the Google Maps, but with the customizations that you need for your app and users.
+page.landing.link=https://developers.google.com/maps/documentation/android/
+page.landing.link.text=developers.google.com/maps
+page.landing.image=images/gps.png
+
+@jd:body
+<img src="{@docRoot}images/gps.png" style="float:right;" />
+
+<p>
+ Google Play services is a platform delivered through the Google Play Store that
+ lets you integrate Google products into your Android apps.
+ The Google Play services framework consists of a services component
+ that runs on the device and a thin client library that you package with your app.
+</p>
+
+
+<p>
+<a class="next-page-link topic-start-link"
+href="{@docRoot}google/play-services/overview.html">
+OVERVIEW</a>
+</p>
+
+<div class="vspace size-1"> </div>
+
+<div class="layout-content-row">
+ <div class="layout-content-col span-4">
+
+<h4>Google Technology</h4>
+<p>Add exciting and useful Google features such as Maps, Google+, Analytics, and more
+to your Android apps. Easy-to-use client libraries are provided for the products in Google
+Play services, so you can implement the functionality you want faster. New features
+and products are continuously being added, so make sure to check back often.</p>
+
+ </div>
+ <div class="layout-content-col span-4">
+
+<h4>Standard Authentication</h4>
+<p>All products in Google Play services share a common authentication API
+ that leverages the existing Google accounts on the device. You and your
+ users have a consistent and safe way to grant and receive OAuth2 authentication
+ to Google services. Even services that are not bundled in Google Play services
+ can take advantage of the authentication APIs as long as they accept OAuth2
+ tokens associated with a Google account.</p>
+
+ </div>
+ <div class="layout-content-col span-4">
+
+<h4>Automatic Updates</h4>
+<p>Devices running Android 2.2 and newer and that have the Google Play Store app installed
+automatically receive updates to Google Play services. New products, features, and fixes are
+automatically pushed to a wide range of devices, old and new. You can now enhance your app with the most
+up-to-date version of Google Play services without worrying about your users' Android platform version.</p>
+
+ </div>
+</div>
+
+<h2>Services</h2>
+ <div class="landing-docs">
+ <a href="">
+ <h4>Google+</h4>
+ <p>Add social features to your app to with Google+.</p>
+ </a>
+
+ <a href="">
+ <h4>Google Analytics</h4>
+ <p>Make sure you're reaching the right users and find ways to reach more with Google Analytics.</p>
+ </a>
+
+ <a href="">
+ <h4>Google Maps</h4>
+ <p>Add compelling location-based features to your app to direct your users where they
+ want to go.</p>
+ </a>
+</div>
\ No newline at end of file
diff --git a/docs/html/google/play-services/maps.jd b/docs/html/google/play-services/maps.jd
new file mode 100644
index 0000000..eea17e9
--- /dev/null
+++ b/docs/html/google/play-services/maps.jd
@@ -0,0 +1,73 @@
+page.title=Google Maps
+page.landing=true
+page.landing.intro=Add Google maps to your Android apps and let your users explore the world. Give your users all of the benefits of the Google Maps, but with the customizations that you need for your app and users.
+page.landing.link=https://developers.google.com/maps/documentation/android/
+page.landing.link.text=developers.google.com/maps
+page.landing.image=images/gps-maps.png
+
+@jd:body
+
+<div class="landing-docs">
+ <div class="col-6">
+ <h3 style="clear:left">Key Developer Features</h3>
+ <a href="https://developers.google.com/maps/documentation/android/map">
+ <h4>Bring Maps to your Mobile Apps</h4>
+ The Google Maps APIs let you embed Google Maps into an Activity with a simple XML snippet
+ in the form of a fragment. With MapFragment, you can take advantage of exciting features such as 3D maps;
+ indoor, satellite, terrain, and hybrid maps; and vector-based tiles for efficient caching and drawing.
+ </a>
+
+ <a href="https://developers.google.com/maps/documentation/android/marker">
+ <h4>Highlight important places and routes</h4>
+ <p>
+ Overlay markers onto your maps to highlight places your users are interested
+ in. You can also define custom colors or icons for your map markers to
+ coincide with the look and feel of your app.</p>
+
+ <p>In addition, you can draw polylines, a set of connected line segments on a map
+ and polygons, a set of polylines in a closed loop.</p>
+ </a>
+
+ <a href="https://developers.google.com/maps/documentation/android/views">
+ <h4>Change views and perspectives</h4>
+ Give your users a different view of the world with the ability to control rotation, tilting,
+ zooming, and panning properties of the maps you are displaying. Show 3D views of maps,
+ zoom in on terrain maps, allow users to swipe across areas, and much more.
+ </a>
+
+ </div>
+
+ <div class="col-6 normal-links">
+ <h3 style="clear:left">Getting Started</h3>
+ <h4>Configure Maps</h4>
+ <p>The Google Maps Android APIs are part of the Google Play services platform.</p>
+ <p>To use Google Maps, <a href="{@docRoot}google/play-services/download.html">download and configure</a>
+ the Google Play services SDK and see the <a href="https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api">
+ Getting Started guide</a> on how to configure Google Maps for your app.
+ </p>
+
+ <h4>Run the sample</h4>
+ <p>
+ The Google Maps sample is located in <code><android-sdk>/extras/google-play-services/samples/maps</code>
+ and shows you how to use the major components of the Google Maps Android APIs.
+ </p>
+
+ <h4>Visit the Google Maps developer site</h4>
+ <p>
+ For instructions on how to fully integrate Google+ into your app, with code snippets, visit the
+ <a href="https://developers.google.com/maps/documentation/android/intro">Google Maps developer documentation</a>
+ located at developers.google.com.
+ </p>
+
+ <h4>See the reference documentation</h4>
+ <p>
+ The <a href="{@docRoot}google/play-services/reference/com/google/android/gms/maps/package-summary.html">Google Maps API reference</a>
+ is provided for you on this site and is also available at <a href="https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/package-summary">developers.google.com</a> if you
+ prefer to read them there.</p>
+ <p>
+ In addition, the entire <a href="{@docRoot}google/play-services/reference/packages.html">Google Play
+ services platform reference</a> is hosted on this site for your convenience.
+ </p>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/docs/html/google/play-services/overview.jd b/docs/html/google/play-services/overview.jd
new file mode 100644
index 0000000..5ea72d9
--- /dev/null
+++ b/docs/html/google/play-services/overview.jd
@@ -0,0 +1,49 @@
+page.title=Overview
+@jd:body
+
+<p>
+Google Play services is a platform delivered by the Google Play Store that offers integration with Google products,
+such as Google+, in Android apps. The Google Play services platform consists of a services component that runs on
+the device and a thin client library that you package with your app. The following diagram shows the interaction
+between the two components:
+</p>
+
+<img src="{@docRoot}images/play-services-diagram.png" />
+
+<p>
+ The Google Play services component is delivered as an APK through the Google Play Store, so
+ updates to Google Play services are not dependent on carrier or OEM system image updates. Newer
+ devices will also have Google Play services as part of the device's system image, but updates
+ are still pushed to these newer devices through the Google Play Store. In general, devices
+ running Android 2.2 (Froyo) or later that have the Google Play Store receive updates within a
+ few days. This allows you to leverage the newest APIs for Google products and reach most of the
+ devices in the Android ecosystem. Devices older than Android 2.2 or devices without the Google
+ Play Store app are not supported.
+</p>
+
+<p>
+ The Google Play services component contains much of the logic to communicate with the specific
+ Google product that you want to interact with. An easy-to-use authentication flow is also
+ provided to gain access to supported Google products, which provides consistency for both the
+ developer and user. From the developer's point of view, requesting credentials is mostly taken
+ care of by the services component through calls to the client library. From the user's point of
+ view, authorization is granted with a few simple clicks.
+</p>
+
+<p>
+ The client library contains the interfaces to call into the services component. It also contains
+ APIs that allow you to resolve any issues at runtime such as a missing, disabled, or out-of-date
+ Google Play services APK. The client library has a light footprint if you use
+ ProGuard as part of your build process, so it won't have an adverse impact on your app's file size. See the
+ <a href="{@docRoot}google/play-services/overview.html">Downloading and Configuring the Google Play services SDK</a> for more
+ information on how to configure
+ <a href="{@docRoot}tools/help/proguard.html">ProGuard</a>.
+</p>
+
+<p>
+ If you want to access added features or products that are periodically added to the client
+ library, you can upgrade to a new version as they are released. However, upgrading is not
+ necessary if you don't care about new features or bug fixes in the new versions of the client
+ library. We anticipate more Google services to be continuously added, so be on the lookout for
+ these updates.
+</p>
\ No newline at end of file
diff --git a/docs/html/google/play-services/plus.jd b/docs/html/google/play-services/plus.jd
new file mode 100644
index 0000000..7742318
--- /dev/null
+++ b/docs/html/google/play-services/plus.jd
@@ -0,0 +1,65 @@
+page.title=Google+
+page.landing=true
+page.landing.intro=Create an engaging social experience and connect with more users by integrating G+ into your app.
+page.landing.link=https://developers.google.com/+/mobile/android/
+page.landing.link.text=developers.google.com/+
+page.landing.image=images/gps-plus.png
+
+@jd:body
+
+<div class="landing-docs">
+ <div class="col-6">
+ <h3 style="clear:left">Key Developer Features</h3>
+
+ <a href="https://developers.google.com/+/mobile/android/share">
+ <h4>Share to Google+</h4>
+ Display a Share dialog that lets your users share rich content from your app, including text,
+ photos, URL attachments, and location, into the Google+ stream.
+ </a>
+
+ <a href="https://developers.google.com/+/mobile/android/recommend">
+ <h4>Recommend content</h4>
+ Add a native +1 button so users can recommend content from your app. When users +1, they can
+ also share content with their circles. These endorsements can give your app more
+ credibility and help it grow faster.
+ </a>
+
+ <a href="https://developers.google.com/+/mobile/android/sign-in">
+ <h4>Sign in with Google+</h4>
+ Allow users to easily and securely sign in to your app using their Google+ credentials.
+ This allows you to know who they are on Google+ and to build a more personalized experience in your app.
+ </a>
+ <a href="https://developers.google.com/+/mobile/android/write-moments">
+ <h4>Save moments</h4>
+ Save user actions from your app such as check-ins, reviews, video views, comments, and more,
+ to your users' private Google+ history. From there, users can share these moments with others.
+ </a>
+ </div>
+
+ <div class="col-6 normal-links">
+ <h3 style="clear:left">Getting Started</h3>
+ <h4>Get the Google Play services SDK</h4>
+ <p>The Google+ Android APIs are part of the Google Play services platform.</p>
+ <p><a href="{@docRoot}google/play-services/download.html">Download and configure</a>
+ the SDK to begin integrating Google+ into your app.
+ </p>
+
+ <h4>Run the sample</h4>
+ <p>
+ The Google+ sample is located in <code><android-sdk>/extras/google-play-services/samples/plus</code> and shows you
+ how to use the major components of the Google+ Android APIs.
+ </p>
+
+ <h4>Visit the Google+ developer site</h4>
+ <p>For instructions on how to fully integrate Google+ into your app, with code snippets, visit the
+ <a href="https://developers.google.com/+/mobile/android/">Google+ developer documentation</a> located at
+ developers.google.com.
+ </p>
+
+ <h4>See the reference documentation</h4>
+ <p>The <a href="{@docRoot}google/play-services/reference/com/google/android/gms/plus/package-summary.html">Google+ API reference</a>
+ as well as the entire <a href="{@docRoot}google/play-services/reference/packages.html">Google Play services platform reference</a>
+ is provided for you on this site.
+ </p>
+ </div>
+</div>
\ No newline at end of file
diff --git a/docs/html/google/play-services/reference/packages.jd b/docs/html/google/play-services/reference/packages.jd
new file mode 100644
index 0000000..4f1ce79
--- /dev/null
+++ b/docs/html/google/play-services/reference/packages.jd
@@ -0,0 +1,6 @@
+page.title=Reference
+@jd:body
+
+<p>
+ See offline docs
+</p>
\ No newline at end of file
diff --git a/docs/html/guide/google/play/billing/billing_about.html b/docs/html/google/play/billing/billing_about.html
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_about.html
rename to docs/html/google/play/billing/billing_about.html
diff --git a/docs/html/guide/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_admin.jd
rename to docs/html/google/play/billing/billing_admin.jd
diff --git a/docs/html/guide/google/play/billing/billing_best_practices.jd b/docs/html/google/play/billing/billing_best_practices.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_best_practices.jd
rename to docs/html/google/play/billing/billing_best_practices.jd
diff --git a/docs/html/guide/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_integrate.jd
rename to docs/html/google/play/billing/billing_integrate.jd
diff --git a/docs/html/guide/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_overview.jd
rename to docs/html/google/play/billing/billing_overview.jd
diff --git a/docs/html/guide/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_reference.jd
rename to docs/html/google/play/billing/billing_reference.jd
diff --git a/docs/html/guide/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_subscriptions.jd
rename to docs/html/google/play/billing/billing_subscriptions.jd
diff --git a/docs/html/guide/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/billing_testing.jd
rename to docs/html/google/play/billing/billing_testing.jd
diff --git a/docs/html/guide/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd
similarity index 100%
rename from docs/html/guide/google/play/billing/index.jd
rename to docs/html/google/play/billing/index.jd
diff --git a/docs/html/google/play/dist.jd b/docs/html/google/play/dist.jd
new file mode 100644
index 0000000..7e60315
--- /dev/null
+++ b/docs/html/google/play/dist.jd
@@ -0,0 +1,52 @@
+page.title=Google Play Distribution and Licensing
+@jd:body
+
+<p>
+ Google Play allows you to manage your app distribution with features that let you control which users
+ can download your app as well as deliver separate versions of your app based on certain
+ characteristics like platform version.
+</p>
+<div class="vspace size-1">
+
+</div>
+<div class="layout-content-row">
+ <div class="layout-content-col span-6">
+ <h4>
+ Device Filtering
+ </h4>
+ <p>
+ Make sure your app gets to the right users by filtering on a wide range of characteristics
+ such as platform versions and hardware features.
+ </p><p><a href="{@docRoot}guide/google/play/filters.html">Learn more »</a></p>
+ </div>
+
+ <div class="layout-content-col span-6">
+ <h4>
+ Multiple APK Support
+ </h4>
+ <p>
+ Distribute different APKs based on a variety of properties such as platform version, screen
+ size, and GLES texture compression support.
+ </p><p><a href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Learn more »</a></p>
+ </div>
+
+<div class="layout-content-row">
+ <div class="layout-content-col span-6">
+ <h4>
+ APK Expansion files
+ </h4>
+ <p>
+ Tap into Google's content delivery services by serving up to 4GB of assets for free. Provide
+ users with high-fidelity graphics, media files, or other large assets that are required by
+ your app.
+ </p><a href="{@docRoot}guide/google/play/expansion-files.html">Learn more »</a>
+ </div>
+
+ <div class="layout-content-col span-6">
+ <h4>
+ Application Licensing
+ </h4>
+ <p>Protect your revenue streams and integrate policies for usage into your app.
+ </p><a href="{@docRoot}guide/google/play/licensing/index.html">Learn more »</a>
+ </div>
+</div>
\ No newline at end of file
diff --git a/docs/html/guide/google/play/expansion-files.jd b/docs/html/google/play/expansion-files.jd
similarity index 98%
rename from docs/html/guide/google/play/expansion-files.jd
rename to docs/html/google/play/expansion-files.jd
index f5cda06..9cd1bb1 100644
--- a/docs/html/guide/google/play/expansion-files.jd
+++ b/docs/html/google/play/expansion-files.jd
@@ -114,9 +114,10 @@
<h3 id="Filename">File name format</h3>
-<p>Each expansion file you upload can be any format you choose (ZIP, PDF, MP4, etc.). Regardless of
-the file type, Google Play considers them opaque binary blobs and renames the files
-using the following scheme:</p>
+<p>Each expansion file you upload can be any format you choose (ZIP, PDF, MP4, etc.). You can also
+use the <a href="{@docRoot}tools/help/jobb.html">JOBB</a> tool to encapsulate and encrypt a set
+of resource files and subsequent patches for that set. Regardless of the file type, Google Play
+considers them opaque binary blobs and renames the files using the following scheme:</p>
<pre class="classic no-pretty-print">
[main|patch].<expansion-version>.<package-name>.obb
@@ -136,7 +137,7 @@
<p>"First" is emphasized because although the Developer Console allows you to
re-use an uploaded expansion file with a new APK, the expansion file's name does not change—it
retains the version applied to it when you first uploaded the file.</p></dd>
- <dt>{@code <package-name>}</dt>
+ <dt>{@code <package-name>}</dt>
<dd>Your application's Java-style package name.</dd>
</dl>
@@ -253,7 +254,7 @@
<li>Develop your application such that it uses the resources from your expansion files in the
device's <a href="#StorageLocation">shared storage location</a>.
<p>Remember that you must not delete, move, or rename the expansion files.</p>
- <p>If your application doesn't demand a specific format, we suggest you create ZIP files for
+ <p>If your application doesn't demand a specific format, we suggest you create ZIP files for
your expansion files, then read them using the <a href="#ZipLib">APK Expansion Zip
Library</a>.</p>
</li>
@@ -347,7 +348,7 @@
<ol>
<li>Perform a request using Google Play's <a
href="{@docRoot}guide/google/play/licensing/index.html">Application Licensing</a> to get your
-app's expansion file names, sizes, and URLs.</li>
+app's expansion file names, sizes, and URLs.</li>
<li>Use the URLs provided by Google Play to download the expansion files and save
the expansion files. You <strong>must</strong> save the files to the <a
href="#StorageLocation">shared storage location</a>
@@ -651,7 +652,7 @@
SampleDownloaderService.class);
} catch (NameNotFoundException e) {
e.printStackTrace();
- }
+ }
}
}
</pre>
@@ -698,7 +699,7 @@
return false;
}
return true;
-}
+}
</pre>
<p>In this case, each {@code XAPKFile} object holds the version number and file size of a known
expansion file and a boolean as to whether it's the main expansion file. (See the sample
@@ -749,7 +750,7 @@
...
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
notifierIntent, PendingIntent.FLAG_UPDATE_CURRENT);
-
+
// Start the download service (if required)
int startResult = DownloaderClientMarshaller.startDownloadServiceIfRequired(this,
pendingIntent, SampleDownloaderService.class);
@@ -1050,9 +1051,9 @@
<dl>
<dt>{@code APKExpansionSupport}</dt>
<dd>Provides some methods to access expansion file names and ZIP files:
-
+
<dl style="margin-top:1em">
- <dt>{@code getAPKExpansionFiles()}</dt>
+ <dt>{@code getAPKExpansionFiles()}</dt>
<dd>The same method shown above that returns the complete file path to both expansion
files.</dd>
<dt>{@code getAPKExpansionZipFile(Context ctx, int mainVersion, int
@@ -1063,7 +1064,7 @@
all the data, with the patch file's data merged on top of the main file.</dd>
</dl>
</dd>
-
+
<dt>{@code ZipResourceFile}</dt>
<dd>Represents a ZIP file on the shared storage and performs all the work to provide a virtual
file system based on your ZIP files. You can get an instance using {@code
@@ -1083,7 +1084,7 @@
android.content.res.AssetFileDescriptor}, such as some {@link android.media.MediaPlayer} APIs.</dd>
</dl>
</dd>
-
+
<dt>{@code APEZProvider}</dt>
<dd>Most applications don't need to use this class. This class defines a {@link
android.content.ContentProvider} that marshals the data from the ZIP files through a content
@@ -1101,7 +1102,7 @@
// Get a ZipResourceFile representing a merger of both the main and patch files
ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(appContext,
mainVersion, patchVersion);
-
+
// Get an input stream for a known file inside the expansion file ZIPs
InputStream fileStream = expansionFile.getInputStream(pathToFileInsideZip);
</pre>
@@ -1254,7 +1255,7 @@
<!-- Tools are not ready.
-
+
<h3>Using OBB tool and APIs</h3>
<pre>
diff --git a/docs/html/guide/google/play/filters.jd b/docs/html/google/play/filters.jd
similarity index 100%
rename from docs/html/guide/google/play/filters.jd
rename to docs/html/google/play/filters.jd
diff --git a/docs/html/guide/google/play/licensing/adding-licensing.jd b/docs/html/google/play/licensing/adding-licensing.jd
similarity index 100%
rename from docs/html/guide/google/play/licensing/adding-licensing.jd
rename to docs/html/google/play/licensing/adding-licensing.jd
diff --git a/docs/html/guide/google/play/licensing/index.jd b/docs/html/google/play/licensing/index.jd
similarity index 100%
rename from docs/html/guide/google/play/licensing/index.jd
rename to docs/html/google/play/licensing/index.jd
diff --git a/docs/html/guide/google/play/licensing/licensing-reference.jd b/docs/html/google/play/licensing/licensing-reference.jd
similarity index 100%
rename from docs/html/guide/google/play/licensing/licensing-reference.jd
rename to docs/html/google/play/licensing/licensing-reference.jd
diff --git a/docs/html/guide/google/play/licensing/overview.jd b/docs/html/google/play/licensing/overview.jd
similarity index 100%
rename from docs/html/guide/google/play/licensing/overview.jd
rename to docs/html/google/play/licensing/overview.jd
diff --git a/docs/html/guide/google/play/licensing/setting-up.jd b/docs/html/google/play/licensing/setting-up.jd
similarity index 100%
rename from docs/html/guide/google/play/licensing/setting-up.jd
rename to docs/html/google/play/licensing/setting-up.jd
diff --git a/docs/html/guide/google/play/publishing/multiple-apks.jd b/docs/html/google/play/publishing/multiple-apks.jd
similarity index 100%
rename from docs/html/guide/google/play/publishing/multiple-apks.jd
rename to docs/html/google/play/publishing/multiple-apks.jd
diff --git a/docs/html/guide/google/play/services.jd b/docs/html/google/play/services.jd
similarity index 100%
rename from docs/html/guide/google/play/services.jd
rename to docs/html/google/play/services.jd
diff --git a/docs/html/guide/google/index.jd b/docs/html/guide/google/index.jd
deleted file mode 100644
index e1fc581..0000000
--- a/docs/html/guide/google/index.jd
+++ /dev/null
@@ -1,134 +0,0 @@
-page.title=Google Services
-footer.hide=1
-@jd:body
-
-<p>
- Google offers a variety of services that help you build new revenue streams, enhance your app's
- capabilities, manage distribution and payloads, and track usage and installs.
- The sections below highlight some of the services offered by Google and link you to more information about
- how to use them in your Android app.
-</p>
-<h2 id="monetization">
- Monetize your app
-</h2>
-<p>
- There are many ways to monetize your Android app, such as with ad impressions or In-App billing. If you
- choose to charge a price to download your app, Android also provides the ability to check
- for valid application licenses to protect your revenue. Because different apps require
- different strategies, you can pick which ones are best for your app.
-</p>
-<div class="vspace size-1">
-
-</div>
-<div class="layout-content-row">
- <div class="layout-content-col span-4">
- <h4>
- Google AdMob Ads
- </h4>
- <p>
- Generate revenue by displaying ads in your app with multiple ad networks.
- </p><a href="http://www.google.com/ads/admob/index.html">Learn more »</a>
- </div>
- <div class="layout-content-col span-4">
- <h4>
- In-App Billing
- </h4>
- <p>
- Engage users by offering features such as new content or virtual goods directly in your app.
- </p><a href="{@docRoot}guide/google/play/billing/index.html">Learn more »</a>
- </div>
- <div class="layout-content-col span-4">
- <h4>
- Application Licensing
- </h4>
- <p>Protect your revenue streams and integrate policies for usage into your a
-pp.
- </p><a href="{@docRoot}guide/google/play/licensing/index.html">Learn more »</a>
- </div>
-</div>
-<h2 id="integration">
- Enhance Your App's Capabilities
-</h2>
-<p>
- Android and Google technologies work together to provide your users with compelling interactions
- with technologies such as Maps and Google+.
-</p>
-<div class="vspace size-1">
-
-</div>
-<div class="layout-content-row">
- <div class="layout-content-col span-4">
- <h4>
- Google Play Services
- </h4><img src="{@docRoot}images/play_dev.png">
- <p>
- Leverage Google products in your app with an easy to use authentication flow for your users.
- </p><a href="{@docRoot}guide/google/play/services.html">Learn more »</a>
- </div>
- <div class="layout-content-col span-4">
- <h4>
- Google Cloud Messaging
- </h4><img src="{@docRoot}images/gcm/gcm-logo.png" width="150px" style="padding:9px;">
- <p>
- Notify your apps of important events with messages that are lightweight and battery-saving.
- </p><a href="{@docRoot}guide/google/gcm/index.html">Learn more »</a>
- </div>
- <div class="layout-content-col span-4">
- <h4>
- Google Maps
- </h4><img src="{@docRoot}images/google-apis.png">
- <p>
- The Google Maps library for Android brings powerful mapping capabilities to your app.
- </p><a href="https://developers.google.com/android/add-ons/google-apis/index">Learn more
- »</a>
- </div>
-</div>
-<h2 id="integration">
- Manage App Distribution
-</h2>
-<p>
- Google Play allows you to manage your app distribution with features that let you control which users
- can download your app as well as deliver separate versions of your app based on certain
- characteristics like platform version.
-</p>
-<div class="vspace size-1">
-
-</div>
-<div class="layout-content-row">
- <div class="layout-content-col span-4">
- <h4>
- Filters on Google Play
- </h4>
- <p>
- Make sure your app gets to the right users by filtering on a wide range of characteristics
- such as platform versions and hardware features.
- </p><a href="{@docRoot}guide/google/play/filters.html">Learn more »</a>
- </div>
- <div class="layout-content-col span-4">
- <h4>
- Multiple APK Support
- </h4>
- <p>
- Distribute different APKs based on a variety of properties such as platform version, screen
- size, and GLES texture compression support.
- </p><a href="{@docRoot}guide/google/play/publishing/multiple-apks.html">Learn more »</a>
- </div>
- <div class="layout-content-col span-4">
- <h4>
- APK Expansion files
- </h4>
- <p>
- Tap into Google's content delivery services by serving up to 4GB of assets for free. Provide
- users with high-fidelity graphics, media files, or other large assets that are required by
- your app.
- </p><a href="{@docRoot}guide/google/play/expansion-files.html">Learn more »</a>
- </div>
-</div>
-<h2 id="integration">
- Track Performance with Analytics
-</h2>
-<p>
- Google Analytics let you find out how users find your apps and how they use them. Start
- integrating analytics to measure your app's success.
-</p><a href="https://developers.google.com/analytics/devguides/collection/android/">Learn more
-»</a>
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index 46c4398..d7aacbf 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -529,125 +529,10 @@
<li><a href="<?cs var:toroot ?>guide/practices/tablets-and-handsets.html">
<span class="en">Supporting Tablets and Handsets</span>
</a></li>
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/practices/performance.html">
- <span class="en">Designing for Performance</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>guide/practices/jni.html">
- <span class="en">JNI Tips</span>
- </a></li>
- </ul>
- </li>
- <li><a href="<?cs var:toroot ?>guide/practices/responsiveness.html">
- <span class="en">Designing for Responsiveness</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/seamlessness.html">
- <span class="en">Designing for Seamlessness</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/security.html">
- <span class="en">Designing for Security</span>
- </a></li>
</ul>
</li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/google/index.html">
- <span class="en">Google Services</span>
- </a></div>
- <ul>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot?>guide/google/play/billing/index.html">
- <span class="en">In-app Billing</span></a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot?>guide/google/play/billing/billing_overview.html">
- <span class="en">In-app Billing Overview</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/billing/billing_integrate.html">
- <span class="en">Implementing In-app Billing</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/billing/billing_subscriptions.html">
- <span class="en">Subscriptions</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/billing/billing_best_practices.html">
- <span class="en">Security and Design</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/billing/billing_testing.html">
- <span class="en">Testing In-app Billing</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/billing/billing_admin.html">
- <span class="en">Administering In-app Billing</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/billing/billing_reference.html">
- <span class="en">In-app Billing Reference</span></a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/google/play/licensing/index.html">
- <span class="en">Application Licensing</span></a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot?>guide/google/play/licensing/overview.html">
- <span class="en">Licensing Overview</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/licensing/setting-up.html">
- <span class="en">Setting Up for Licensing</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/licensing/adding-licensing.html">
- <span class="en">Adding Licensing to Your App</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/play/licensing/licensing-reference.html">
- <span class="en">Licensing Reference</span></a>
- </li>
- </ul>
- </li>
- <li><a href="<?cs var:toroot ?>guide/google/play/services.html">
- <span class="en">Google Play Services</span></a>
- </li>
- <li><a href="<?cs var:toroot ?>guide/google/play/filters.html">
- <span class="en">Filters on Google Play</span></a>
- </li>
- <li><a href="<?cs var:toroot ?>guide/google/play/publishing/multiple-apks.html">
- <span class="en">Multiple APK Support</span></a>
- </li>
- <li><a href="<?cs var:toroot ?>guide/google/play/expansion-files.html">
- <span class="en">APK Expansion Files</span></a>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/google/gcm/index.html">
- <span class="en">Google Cloud Messaging</span></a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot?>guide/google/gcm/gs.html">
- <span class="en">Getting Started</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/gcm/demo.html">
- <span class="en">Demo App Tutorial</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/gcm/adv.html">
- <span class="en">Advanced Topics</span></a>
- </li>
- <li><a href="<?cs var:toroot?>guide/google/gcm/c2dm.html">
- <span class="en">Migration</span></a>
- </li>
- </ul>
- </li>
-
- </ul>
- </li><!-- end Google Play -->
-
-
-
<!-- this needs to move
<li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/index.html">
diff --git a/docs/html/guide/practices/app-design/performance.jd b/docs/html/guide/practices/app-design/performance.jd
deleted file mode 100644
index 078999b..0000000
--- a/docs/html/guide/practices/app-design/performance.jd
+++ /dev/null
@@ -1,410 +0,0 @@
-page.title=Designing for Performance
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-<ol>
- <li><a href="#intro">Introduction</a></li>
- <li><a href="#optimize_judiciously">Optimize Judiciously</a></li>
- <li><a href="#object_creation">Avoid Creating Unnecessary Objects</a></li>
- <li><a href="#myths">Performance Myths</a></li>
- <li><a href="#prefer_static">Prefer Static Over Virtual</a></li>
- <li><a href="#internal_get_set">Avoid Internal Getters/Setters</a></li>
- <li><a href="#use_final">Use Static Final For Constants</a></li>
- <li><a href="#foreach">Use Enhanced For Loop Syntax</a></li>
- <li><a href="#package_inner">Consider Package Instead of Private Access with Inner Classes</a></li>
- <li><a href="#avoidfloat">Use Floating-Point Judiciously</a> </li>
- <li><a href="#library">Know And Use The Libraries</a></li>
- <li><a href="#native_methods">Use Native Methods Judiciously</a></li>
- <li><a href="#closing_notes">Closing Notes</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>An Android application will run on a mobile device with limited computing
-power and storage, and constrained battery life. Because of
-this, it should be <em>efficient</em>. Battery life is one reason you might
-want to optimize your app even if it already seems to run "fast enough".
-Battery life is important to users, and Android's battery usage breakdown
-means users will know if your app is responsible draining their battery.</p>
-
-<p>Note that although this document primarily covers micro-optimizations,
-these will almost never make or break your software. Choosing the right
-algorithms and data structures should always be your priority, but is
-outside the scope of this document.</p>
-
-<a name="intro" id="intro"></a>
-<h2>Introduction</h2>
-
-<p>There are two basic rules for writing efficient code:</p>
-<ul>
- <li>Don't do work that you don't need to do.</li>
- <li>Don't allocate memory if you can avoid it.</li>
-</ul>
-
-<h2 id="optimize_judiciously">Optimize Judiciously</h2>
-
-<p>This document is about Android-specific micro-optimization, so it assumes
-that you've already used profiling to work out exactly what code needs to be
-optimized, and that you already have a way to measure the effect (good or bad)
-of any changes you make. You only have so much engineering time to invest, so
-it's important to know you're spending it wisely.
-
-<p>(See <a href="#closing_notes">Closing Notes</a> for more on profiling and
-writing effective benchmarks.)
-
-<p>This document also assumes that you made the best decisions about data
-structures and algorithms, and that you've also considered the future
-performance consequences of your API decisions. Using the right data
-structures and algorithms will make more difference than any of the advice
-here, and considering the performance consequences of your API decisions will
-make it easier to switch to better implementations later (this is more
-important for library code than for application code).
-
-<p>(If you need that kind of advice, see Josh Bloch's <em>Effective Java</em>,
-item 47.)</p>
-
-<p>One of the trickiest problems you'll face when micro-optimizing an Android
-app is that your app is pretty much guaranteed to be running on multiple
-hardware platforms. Different versions of the VM running on different
-processors running at different speeds. It's not even generally the case
-that you can simply say "device X is a factor F faster/slower than device Y",
-and scale your results from one device to others. In particular, measurement
-on the emulator tells you very little about performance on any device. There
-are also huge differences between devices with and without a JIT: the "best"
-code for a device with a JIT is not always the best code for a device
-without.</p>
-
-<p>If you want to know how your app performs on a given device, you need to
-test on that device.</p>
-
-<a name="object_creation"></a>
-<h2>Avoid Creating Unnecessary Objects</h2>
-
-<p>Object creation is never free. A generational GC with per-thread allocation
-pools for temporary objects can make allocation cheaper, but allocating memory
-is always more expensive than not allocating memory.</p>
-
-<p>If you allocate objects in a user interface loop, you will force a periodic
-garbage collection, creating little "hiccups" in the user experience. The
-concurrent collector introduced in Gingerbread helps, but unnecessary work
-should always be avoided.</p>
-
-<p>Thus, you should avoid creating object instances you don't need to. Some
-examples of things that can help:</p>
-
-<ul>
- <li>If you have a method returning a string, and you know that its result
- will always be appended to a StringBuffer anyway, change your signature
- and implementation so that the function does the append directly,
- instead of creating a short-lived temporary object.</li>
- <li>When extracting strings from a set of input data, try
- to return a substring of the original data, instead of creating a copy.
- You will create a new String object, but it will share the char[]
- with the data. (The trade-off being that if you're only using a small
- part of the original input, you'll be keeping it all around in memory
- anyway if you go this route.)</li>
-</ul>
-
-<p>A somewhat more radical idea is to slice up multidimensional arrays into
-parallel single one-dimension arrays:</p>
-
-<ul>
- <li>An array of ints is a much better than an array of Integers,
- but this also generalizes to the fact that two parallel arrays of ints
- are also a <strong>lot</strong> more efficient than an array of (int,int)
- objects. The same goes for any combination of primitive types.</li>
- <li>If you need to implement a container that stores tuples of (Foo,Bar)
- objects, try to remember that two parallel Foo[] and Bar[] arrays are
- generally much better than a single array of custom (Foo,Bar) objects.
- (The exception to this, of course, is when you're designing an API for
- other code to access; in those cases, it's usually better to trade
- good API design for a small hit in speed. But in your own internal
- code, you should try and be as efficient as possible.)</li>
-</ul>
-
-<p>Generally speaking, avoid creating short-term temporary objects if you
-can. Fewer objects created mean less-frequent garbage collection, which has
-a direct impact on user experience.</p>
-
-<a name="avoid_enums" id="avoid_enums"></a>
-<a name="myths" id="myths"></a>
-<h2>Performance Myths</h2>
-
-<p>Previous versions of this document made various misleading claims. We
-address some of them here.</p>
-
-<p>On devices without a JIT, it is true that invoking methods via a
-variable with an exact type rather than an interface is slightly more
-efficient. (So, for example, it was cheaper to invoke methods on a
-<code>HashMap map</code> than a <code>Map map</code>, even though in both
-cases the map was a <code>HashMap</code>.) It was not the case that this
-was 2x slower; the actual difference was more like 6% slower. Furthermore,
-the JIT makes the two effectively indistinguishable.</p>
-
-<p>On devices without a JIT, caching field accesses is about 20% faster than
-repeatedly accesssing the field. With a JIT, field access costs about the same
-as local access, so this isn't a worthwhile optimization unless you feel it
-makes your code easier to read. (This is true of final, static, and static
-final fields too.)
-
-<a name="prefer_static" id="prefer_static"></a>
-<h2>Prefer Static Over Virtual</h2>
-
-<p>If you don't need to access an object's fields, make your method static.
-Invocations will be about 15%-20% faster.
-It's also good practice, because you can tell from the method
-signature that calling the method can't alter the object's state.</p>
-
-<a name="internal_get_set" id="internal_get_set"></a>
-<h2>Avoid Internal Getters/Setters</h2>
-
-<p>In native languages like C++ it's common practice to use getters (e.g.
-<code>i = getCount()</code>) instead of accessing the field directly (<code>i
-= mCount</code>). This is an excellent habit for C++, because the compiler can
-usually inline the access, and if you need to restrict or debug field access
-you can add the code at any time.</p>
-
-<p>On Android, this is a bad idea. Virtual method calls are expensive,
-much more so than instance field lookups. It's reasonable to follow
-common object-oriented programming practices and have getters and setters
-in the public interface, but within a class you should always access
-fields directly.</p>
-
-<p>Without a JIT, direct field access is about 3x faster than invoking a
-trivial getter. With the JIT (where direct field access is as cheap as
-accessing a local), direct field access is about 7x faster than invoking a
-trivial getter. This is true in Froyo, but will improve in the future when
-the JIT inlines getter methods.</p>
-
-<p>Note that if you're using ProGuard, you can have the best
-of both worlds because ProGuard can inline accessors for you.</p>
-
-<a name="use_final" id="use_final"></a>
-<h2>Use Static Final For Constants</h2>
-
-<p>Consider the following declaration at the top of a class:</p>
-
-<pre>static int intVal = 42;
-static String strVal = "Hello, world!";</pre>
-
-<p>The compiler generates a class initializer method, called
-<code><clinit></code>, that is executed when the class is first used.
-The method stores the value 42 into <code>intVal</code>, and extracts a
-reference from the classfile string constant table for <code>strVal</code>.
-When these values are referenced later on, they are accessed with field
-lookups.</p>
-
-<p>We can improve matters with the "final" keyword:</p>
-
-<pre>static final int intVal = 42;
-static final String strVal = "Hello, world!";</pre>
-
-<p>The class no longer requires a <code><clinit></code> method,
-because the constants go into static field initializers in the dex file.
-Code that refers to <code>intVal</code> will use
-the integer value 42 directly, and accesses to <code>strVal</code> will
-use a relatively inexpensive "string constant" instruction instead of a
-field lookup. (Note that this optimization only applies to primitive types and
-<code>String</code> constants, not arbitrary reference types. Still, it's good
-practice to declare constants <code>static final</code> whenever possible.)</p>
-
-<a name="foreach" id="foreach"></a>
-<h2>Use Enhanced For Loop Syntax</h2>
-
-<p>The enhanced for loop (also sometimes known as "for-each" loop) can be used
-for collections that implement the Iterable interface and for arrays.
-With collections, an iterator is allocated to make interface calls
-to hasNext() and next(). With an ArrayList, a hand-written counted loop is
-about 3x faster (with or without JIT), but for other collections the enhanced
-for loop syntax will be exactly equivalent to explicit iterator usage.</p>
-
-<p>There are several alternatives for iterating through an array:</p>
-
-<pre> static class Foo {
- int mSplat;
- }
- Foo[] mArray = ...
-
- public void zero() {
- int sum = 0;
- for (int i = 0; i < mArray.length; ++i) {
- sum += mArray[i].mSplat;
- }
- }
-
- public void one() {
- int sum = 0;
- Foo[] localArray = mArray;
- int len = localArray.length;
-
- for (int i = 0; i < len; ++i) {
- sum += localArray[i].mSplat;
- }
- }
-
- public void two() {
- int sum = 0;
- for (Foo a : mArray) {
- sum += a.mSplat;
- }
- }
-</pre>
-
-<p><strong>zero()</strong> is slowest, because the JIT can't yet optimize away
-the cost of getting the array length once for every iteration through the
-loop.</p>
-
-<p><strong>one()</strong> is faster. It pulls everything out into local
-variables, avoiding the lookups. Only the array length offers a performance
-benefit.</p>
-
-<p><strong>two()</strong> is fastest for devices without a JIT, and
-indistinguishable from <strong>one()</strong> for devices with a JIT.
-It uses the enhanced for loop syntax introduced in version 1.5 of the Java
-programming language.</p>
-
-<p>To summarize: use the enhanced for loop by default, but consider a
-hand-written counted loop for performance-critical ArrayList iteration.</p>
-
-<p>(See also <em>Effective Java</em> item 46.)</p>
-
-<a name="package_inner" id="package_inner"></a>
-<h2>Consider Package Instead of Private Access with Private Inner Classes</h2>
-
-<p>Consider the following class definition:</p>
-
-<pre>public class Foo {
- private class Inner {
- void stuff() {
- Foo.this.doStuff(Foo.this.mValue);
- }
- }
-
- private int mValue;
-
- public void run() {
- Inner in = new Inner();
- mValue = 27;
- in.stuff();
- }
-
- private void doStuff(int value) {
- System.out.println("Value is " + value);
- }
-}</pre>
-
-<p>The key things to note here are that we define a private inner class
-(<code>Foo$Inner</code>) that directly accesses a private method and a private
-instance field in the outer class. This is legal, and the code prints "Value is
-27" as expected.</p>
-
-<p>The problem is that the VM considers direct access to <code>Foo</code>'s
-private members from <code>Foo$Inner</code> to be illegal because
-<code>Foo</code> and <code>Foo$Inner</code> are different classes, even though
-the Java language allows an inner class to access an outer class' private
-members. To bridge the gap, the compiler generates a couple of synthetic
-methods:</p>
-
-<pre>/*package*/ static int Foo.access$100(Foo foo) {
- return foo.mValue;
-}
-/*package*/ static void Foo.access$200(Foo foo, int value) {
- foo.doStuff(value);
-}</pre>
-
-<p>The inner class code calls these static methods whenever it needs to
-access the <code>mValue</code> field or invoke the <code>doStuff</code> method
-in the outer class. What this means is that the code above really boils down to
-a case where you're accessing member fields through accessor methods.
-Earlier we talked about how accessors are slower than direct field
-accesses, so this is an example of a certain language idiom resulting in an
-"invisible" performance hit.</p>
-
-<p>If you're using code like this in a performance hotspot, you can avoid the
-overhead by declaring fields and methods accessed by inner classes to have
-package access, rather than private access. Unfortunately this means the fields
-can be accessed directly by other classes in the same package, so you shouldn't
-use this in public API.</p>
-
-<a name="avoidfloat" id="avoidfloat"></a>
-<h2>Use Floating-Point Judiciously</h2>
-
-<p>As a rule of thumb, floating-point is about 2x slower than integer on
-Android devices. This is true on a FPU-less, JIT-less G1 and a Nexus One with
-an FPU and the JIT. (Of course, absolute speed difference between those two
-devices is about 10x for arithmetic operations.)</p>
-
-<p>In speed terms, there's no difference between <code>float</code> and
-<code>double</code> on the more modern hardware. Space-wise, <code>double</code>
-is 2x larger. As with desktop machines, assuming space isn't an issue, you
-should prefer <code>double</code> to <code>float</code>.</p>
-
-<p>Also, even for integers, some chips have hardware multiply but lack
-hardware divide. In such cases, integer division and modulus operations are
-performed in software — something to think about if you're designing a
-hash table or doing lots of math.</p>
-
-<a name="library" id="library"></a>
-<h2>Know And Use The Libraries</h2>
-
-<p>In addition to all the usual reasons to prefer library code over rolling
-your own, bear in mind that the system is at liberty to replace calls
-to library methods with hand-coded assembler, which may be better than the
-best code the JIT can produce for the equivalent Java. The typical example
-here is <code>String.indexOf</code> and friends, which Dalvik replaces with
-an inlined intrinsic. Similarly, the <code>System.arraycopy</code> method
-is about 9x faster than a hand-coded loop on a Nexus One with the JIT.</p>
-
-<p>(See also <em>Effective Java</em> item 47.)</p>
-
-<a name="native_methods" id="native_methods"></a>
-<h2>Use Native Methods Judiciously</h2>
-
-<p>Native code isn't necessarily more efficient than Java. For one thing,
-there's a cost associated with the Java-native transition, and the JIT can't
-optimize across these boundaries. If you're allocating native resources (memory
-on the native heap, file descriptors, or whatever), it can be significantly
-more difficult to arrange timely collection of these resources. You also
-need to compile your code for each architecture you wish to run on (rather
-than rely on it having a JIT). You may even have to compile multiple versions
-for what you consider the same architecture: native code compiled for the ARM
-processor in the G1 can't take full advantage of the ARM in the Nexus One, and
-code compiled for the ARM in the Nexus One won't run on the ARM in the G1.</p>
-
-<p>Native code is primarily useful when you have an existing native codebase
-that you want to port to Android, not for "speeding up" parts of a Java app.</p>
-
-<p>If you do need to use native code, you should read our
-<a href="{@docRoot}guide/practices/jni.html">JNI Tips</a>.</p>
-
-<p>(See also <em>Effective Java</em> item 54.)</p>
-
-<a name="closing_notes" id="closing_notes"></a>
-<h2>Closing Notes</h2>
-
-<p>One last thing: always measure. Before you start optimizing, make sure you
-have a problem. Make sure you can accurately measure your existing performance,
-or you won't be able to measure the benefit of the alternatives you try.</p>
-
-<p>Every claim made in this document is backed up by a benchmark. The source
-to these benchmarks can be found in the <a href="http://code.google.com/p/dalvik/source/browse/#svn/trunk/benchmarks">code.google.com "dalvik" project</a>.</p>
-
-<p>The benchmarks are built with the
-<a href="http://code.google.com/p/caliper/">Caliper</a> microbenchmarking
-framework for Java. Microbenchmarks are hard to get right, so Caliper goes out
-of its way to do the hard work for you, and even detect some cases where you're
-not measuring what you think you're measuring (because, say, the VM has
-managed to optimize all your code away). We highly recommend you use Caliper
-to run your own microbenchmarks.</p>
-
-<p>You may also find
-<a href="{@docRoot}tools/debugging/debugging-tracing.html">Traceview</a> useful
-for profiling, but it's important to realize that it currently disables the JIT,
-which may cause it to misattribute time to code that the JIT may be able to win
-back. It's especially important after making changes suggested by Traceview
-data to ensure that the resulting code actually runs faster when run without
-Traceview.
diff --git a/docs/html/guide/practices/app-design/responsiveness.jd b/docs/html/guide/practices/app-design/responsiveness.jd
deleted file mode 100644
index a00e3aa..0000000
--- a/docs/html/guide/practices/app-design/responsiveness.jd
+++ /dev/null
@@ -1,140 +0,0 @@
-page.title=Designing for Responsiveness
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-<ol>
- <li><a href="#anr">What Triggers ANR?</a></li>
- <li><a href="#avoiding">How to Avoid ANR</a></li>
- <li><a href="#reinforcing">Reinforcing Responsiveness</a></li>
-</ol>
-
-</div>
-</div>
-
-<div class="figure">
-<img src="{@docRoot}images/anr.png" alt="Screenshot of ANR dialog box" width="240" height="320"/>
-<p><strong>Figure 1.</strong> An ANR dialog displayed to the user.</p>
-</div>
-
-<p>It's possible to write code that wins every performance test in the world,
-but still sends users in a fiery rage when they try to use the application.
-These are the applications that aren't <em>responsive</em> enough — the
-ones that feel sluggish, hang or freeze for significant periods, or take too
-long to process input. </p>
-
-<p>In Android, the system guards against applications that are insufficiently
-responsive for a period of time by displaying a dialog to the user, called the
-Application Not Responding (ANR) dialog, shown at right in Figure 1. The user
-can choose to let the application continue, but the user won't appreciate having
-to act on this dialog every time he or she uses your application. It's critical
-to design responsiveness into your application, so that the system never has
-cause to display an ANR dialog to the user. </p>
-
-<p>Generally, the system displays an ANR if an application cannot respond to
-user input. For example, if an application blocks on some I/O operation
-(frequently a network access), then the main application thread won't be able to
-process incoming user input events. After a time, the system concludes that the
-application is frozen, and displays the ANR to give the user the option to kill
-it. </p>
-
-<p>Similarly, if your application spends too much time building an elaborate in-memory
-structure, or perhaps computing the next move in a game, the system will
-conclude that your application has hung. It's always important to make
-sure these computations are efficient using the techniques above, but even the
-most efficient code still takes time to run.</p>
-
-<p>In both of these cases, the recommended approach is to create a child thread and do
-most of your work there. This keeps the main thread (which drives the user
-interface event loop) running and prevents the system from concluding that your code
-has frozen. Since such threading usually is accomplished at the class
-level, you can think of responsiveness as a <em>class</em> problem. (Compare
-this with basic performance, which was described above as a <em>method</em>-level
-concern.)</p>
-
-<p>This document describes how the Android system determines whether an
-application is not responding and provides guidelines for ensuring that your
-application stays responsive. </p>
-
-<h2 id="anr">What Triggers ANR?</h2>
-
-<p>In Android, application responsiveness is monitored by the Activity Manager
-and Window Manager system services. Android will display the ANR dialog
-for a particular application when it detects one of the following
-conditions:</p>
-<ul>
- <li>No response to an input event (e.g. key press, screen touch)
- within 5 seconds</li>
- <li>A {@link android.content.BroadcastReceiver BroadcastReceiver}
- hasn't finished executing within 10 seconds</li>
-</ul>
-
-<h2 id="avoiding">How to Avoid ANR</h2>
-
-<p>Given the above definition for ANR, let's examine why this can occur in
-Android applications and how best to structure your application to avoid ANR.</p>
-
-<p>Android applications normally run entirely on a single (i.e. main) thread.
-This means that anything your application is doing in the main thread that
-takes a long time to complete can trigger the ANR dialog because your
-application is not giving itself a chance to handle the input event or Intent
-broadcast.</p>
-
-<p>Therefore any method that runs in the main thread should do as little work
-as possible. In particular, Activities should do as little as possible to set
-up in key life-cycle methods such as <code>onCreate()</code> and
-<code>onResume()</code>. Potentially long running operations such as network
-or database operations, or computationally expensive calculations such as
-resizing bitmaps should be done in a child thread (or in the case of databases
-operations, via an asynchronous request). However, this does not mean that
-your main thread should block while waiting for the child thread to
-complete — nor should you call <code>Thread.wait()</code> or
-<code>Thread.sleep()</code>. Instead of blocking while waiting for a child
-thread to complete, your main thread should provide a {@link
-android.os.Handler Handler} for child threads to post back to upon completion.
-Designing your application in this way will allow your main thread to remain
-responsive to input and thus avoid ANR dialogs caused by the 5 second input
-event timeout. These same practices should be followed for any other threads
-that display UI, as they are also subject to the same timeouts.</p>
-
-<p>You can use {@link android.os.StrictMode} to help find potentially
-long running operations such as network or database operations that
-you might accidentally be doing your main thread.</p>
-
-<p>The specific constraint on IntentReceiver execution time emphasizes what
-they were meant to do: small, discrete amounts of work in the background such
-as saving a setting or registering a Notification. So as with other methods
-called in the main thread, applications should avoid potentially long-running
-operations or calculations in BroadcastReceivers. But instead of doing intensive
-tasks via child threads (as the life of a BroadcastReceiver is short), your
-application should start a {@link android.app.Service Service} if a
-potentially long running action needs to be taken in response to an Intent
-broadcast. As a side note, you should also avoid starting an Activity from an
-Intent Receiver, as it will spawn a new screen that will steal focus from
-whatever application the user is currently has running. If your application
-has something to show the user in response to an Intent broadcast, it should
-do so using the {@link android.app.NotificationManager Notification
-Manager}.</p>
-
-<h2 id="reinforcing">Reinforcing Responsiveness</h2>
-
-<p>Generally, 100 to 200ms is the threshold beyond which users will perceive
-lag (or lack of "snappiness," if you will) in an application. As such, here
-are some additional tips beyond what you should do to avoid ANR that will help
-make your application seem responsive to users.</p>
-
-<ul>
- <li>If your application is doing work in the background in response to
- user input, show that progress is being made ({@link
- android.widget.ProgressBar ProgressBar} and {@link
- android.app.ProgressDialog ProgressDialog} are useful for this).</li>
- <li>For games specifically, do calculations for moves in a child
- thread.</li>
- <li>If your application has a time-consuming initial setup phase, consider
- showing a splash screen or rendering the main view as quickly as possible
- and filling in the information asynchronously. In either case, you should
- indicate somehow that progress is being made, lest the user perceive that
- the application is frozen.</li>
-</ul>
diff --git a/docs/html/guide/practices/performance.jd b/docs/html/guide/practices/performance.jd
deleted file mode 100644
index 3e2714c..0000000
--- a/docs/html/guide/practices/performance.jd
+++ /dev/null
@@ -1,413 +0,0 @@
-page.title=Designing for Performance
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-<ol>
- <li><a href="#intro">Introduction</a></li>
- <li><a href="#optimize_judiciously">Optimize Judiciously</a></li>
- <li><a href="#object_creation">Avoid Creating Unnecessary Objects</a></li>
- <li><a href="#myths">Performance Myths</a></li>
- <li><a href="#prefer_static">Prefer Static Over Virtual</a></li>
- <li><a href="#internal_get_set">Avoid Internal Getters/Setters</a></li>
- <li><a href="#use_final">Use Static Final For Constants</a></li>
- <li><a href="#foreach">Use Enhanced For Loop Syntax</a></li>
- <li><a href="#package_inner">Consider Package Instead of Private Access with Inner Classes</a></li>
- <li><a href="#avoidfloat">Use Floating-Point Judiciously</a> </li>
- <li><a href="#library">Know And Use The Libraries</a></li>
- <li><a href="#native_methods">Use Native Methods Judiciously</a></li>
- <li><a href="#closing_notes">Closing Notes</a></li>
-</ol>
-
-</div>
-</div>
-
-<p>An Android application will run on a mobile device with limited computing
-power and storage, and constrained battery life. Because of
-this, it should be <em>efficient</em>. Battery life is one reason you might
-want to optimize your app even if it already seems to run "fast enough".
-Battery life is important to users, and Android's battery usage breakdown
-means users will know if your app is responsible draining their battery.</p>
-
-<p>Note that although this document primarily covers micro-optimizations,
-these will almost never make or break your software. Choosing the right
-algorithms and data structures should always be your priority, but is
-outside the scope of this document.</p>
-
-<a name="intro" id="intro"></a>
-<h2>Introduction</h2>
-
-<p>There are two basic rules for writing efficient code:</p>
-<ul>
- <li>Don't do work that you don't need to do.</li>
- <li>Don't allocate memory if you can avoid it.</li>
-</ul>
-
-<h2 id="optimize_judiciously">Optimize Judiciously</h2>
-
-<p>This document is about Android-specific micro-optimization, so it assumes
-that you've already used profiling to work out exactly what code needs to be
-optimized, and that you already have a way to measure the effect (good or bad)
-of any changes you make. You only have so much engineering time to invest, so
-it's important to know you're spending it wisely.
-
-<p>(See <a href="#closing_notes">Closing Notes</a> for more on profiling and
-writing effective benchmarks.)
-
-<p>This document also assumes that you made the best decisions about data
-structures and algorithms, and that you've also considered the future
-performance consequences of your API decisions. Using the right data
-structures and algorithms will make more difference than any of the advice
-here, and considering the performance consequences of your API decisions will
-make it easier to switch to better implementations later (this is more
-important for library code than for application code).
-
-<p>(If you need that kind of advice, see Josh Bloch's <em>Effective Java</em>,
-item 47.)</p>
-
-<p>One of the trickiest problems you'll face when micro-optimizing an Android
-app is that your app is pretty much guaranteed to be running on multiple
-hardware platforms. Different versions of the VM running on different
-processors running at different speeds. It's not even generally the case
-that you can simply say "device X is a factor F faster/slower than device Y",
-and scale your results from one device to others. In particular, measurement
-on the emulator tells you very little about performance on any device. There
-are also huge differences between devices with and without a JIT: the "best"
-code for a device with a JIT is not always the best code for a device
-without.</p>
-
-<p>If you want to know how your app performs on a given device, you need to
-test on that device.</p>
-
-<a name="object_creation"></a>
-<h2>Avoid Creating Unnecessary Objects</h2>
-
-<p>Object creation is never free. A generational GC with per-thread allocation
-pools for temporary objects can make allocation cheaper, but allocating memory
-is always more expensive than not allocating memory.</p>
-
-<p>If you allocate objects in a user interface loop, you will force a periodic
-garbage collection, creating little "hiccups" in the user experience. The
-concurrent collector introduced in Gingerbread helps, but unnecessary work
-should always be avoided.</p>
-
-<p>Thus, you should avoid creating object instances you don't need to. Some
-examples of things that can help:</p>
-
-<ul>
- <li>If you have a method returning a string, and you know that its result
- will always be appended to a StringBuffer anyway, change your signature
- and implementation so that the function does the append directly,
- instead of creating a short-lived temporary object.</li>
- <li>When extracting strings from a set of input data, try
- to return a substring of the original data, instead of creating a copy.
- You will create a new String object, but it will share the char[]
- with the data. (The trade-off being that if you're only using a small
- part of the original input, you'll be keeping it all around in memory
- anyway if you go this route.)</li>
-</ul>
-
-<p>A somewhat more radical idea is to slice up multidimensional arrays into
-parallel single one-dimension arrays:</p>
-
-<ul>
- <li>An array of ints is a much better than an array of Integers,
- but this also generalizes to the fact that two parallel arrays of ints
- are also a <strong>lot</strong> more efficient than an array of (int,int)
- objects. The same goes for any combination of primitive types.</li>
- <li>If you need to implement a container that stores tuples of (Foo,Bar)
- objects, try to remember that two parallel Foo[] and Bar[] arrays are
- generally much better than a single array of custom (Foo,Bar) objects.
- (The exception to this, of course, is when you're designing an API for
- other code to access; in those cases, it's usually better to trade
- good API design for a small hit in speed. But in your own internal
- code, you should try and be as efficient as possible.)</li>
-</ul>
-
-<p>Generally speaking, avoid creating short-term temporary objects if you
-can. Fewer objects created mean less-frequent garbage collection, which has
-a direct impact on user experience.</p>
-
-<a name="avoid_enums" id="avoid_enums"></a>
-<a name="myths" id="myths"></a>
-<h2>Performance Myths</h2>
-
-<p>Previous versions of this document made various misleading claims. We
-address some of them here.</p>
-
-<p>On devices without a JIT, it is true that invoking methods via a
-variable with an exact type rather than an interface is slightly more
-efficient. (So, for example, it was cheaper to invoke methods on a
-<code>HashMap map</code> than a <code>Map map</code>, even though in both
-cases the map was a <code>HashMap</code>.) It was not the case that this
-was 2x slower; the actual difference was more like 6% slower. Furthermore,
-the JIT makes the two effectively indistinguishable.</p>
-
-<p>On devices without a JIT, caching field accesses is about 20% faster than
-repeatedly accesssing the field. With a JIT, field access costs about the same
-as local access, so this isn't a worthwhile optimization unless you feel it
-makes your code easier to read. (This is true of final, static, and static
-final fields too.)
-
-<a name="prefer_static" id="prefer_static"></a>
-<h2>Prefer Static Over Virtual</h2>
-
-<p>If you don't need to access an object's fields, make your method static.
-Invocations will be about 15%-20% faster.
-It's also good practice, because you can tell from the method
-signature that calling the method can't alter the object's state.</p>
-
-<a name="internal_get_set" id="internal_get_set"></a>
-<h2>Avoid Internal Getters/Setters</h2>
-
-<p>In native languages like C++ it's common practice to use getters (e.g.
-<code>i = getCount()</code>) instead of accessing the field directly (<code>i
-= mCount</code>). This is an excellent habit for C++, because the compiler can
-usually inline the access, and if you need to restrict or debug field access
-you can add the code at any time.</p>
-
-<p>On Android, this can be a bad idea. Virtual method calls can be more
-expensive than instance field lookups. It's reasonable to follow
-common object-oriented programming practices and have getters and setters
-in the public interface, but within a class you might want to access
-fields directly.</p>
-
-<p>Without a JIT, direct field access is about 3x faster than invoking a
-trivial getter (one that simply returns the value of a field, without
-any dereferencing or array indexing). With the Froyo JIT, direct field
-access was about 7x faster than invoking a trivial getter. Since
-Gingerbread, though, the JIT inlines trivial getter methods, making
-that particular optimization obsolete. Manual inlining guided by
-profiling can still be a useful technique in general, though.</a>
-
-<p>Note that if you're using ProGuard, you can have the best
-of both worlds even with non-trival accessors, because ProGuard can inline
-for you.</p>
-
-<a name="use_final" id="use_final"></a>
-<h2>Use Static Final For Constants</h2>
-
-<p>Consider the following declaration at the top of a class:</p>
-
-<pre>static int intVal = 42;
-static String strVal = "Hello, world!";</pre>
-
-<p>The compiler generates a class initializer method, called
-<code><clinit></code>, that is executed when the class is first used.
-The method stores the value 42 into <code>intVal</code>, and extracts a
-reference from the classfile string constant table for <code>strVal</code>.
-When these values are referenced later on, they are accessed with field
-lookups.</p>
-
-<p>We can improve matters with the "final" keyword:</p>
-
-<pre>static final int intVal = 42;
-static final String strVal = "Hello, world!";</pre>
-
-<p>The class no longer requires a <code><clinit></code> method,
-because the constants go into static field initializers in the dex file.
-Code that refers to <code>intVal</code> will use
-the integer value 42 directly, and accesses to <code>strVal</code> will
-use a relatively inexpensive "string constant" instruction instead of a
-field lookup. (Note that this optimization only applies to primitive types and
-<code>String</code> constants, not arbitrary reference types. Still, it's good
-practice to declare constants <code>static final</code> whenever possible.)</p>
-
-<a name="foreach" id="foreach"></a>
-<h2>Use Enhanced For Loop Syntax</h2>
-
-<p>The enhanced for loop (also sometimes known as "for-each" loop) can be used
-for collections that implement the Iterable interface and for arrays.
-With collections, an iterator is allocated to make interface calls
-to hasNext() and next(). With an ArrayList, a hand-written counted loop is
-about 3x faster (with or without JIT), but for other collections the enhanced
-for loop syntax will be exactly equivalent to explicit iterator usage.</p>
-
-<p>There are several alternatives for iterating through an array:</p>
-
-<pre> static class Foo {
- int mSplat;
- }
- Foo[] mArray = ...
-
- public void zero() {
- int sum = 0;
- for (int i = 0; i < mArray.length; ++i) {
- sum += mArray[i].mSplat;
- }
- }
-
- public void one() {
- int sum = 0;
- Foo[] localArray = mArray;
- int len = localArray.length;
-
- for (int i = 0; i < len; ++i) {
- sum += localArray[i].mSplat;
- }
- }
-
- public void two() {
- int sum = 0;
- for (Foo a : mArray) {
- sum += a.mSplat;
- }
- }
-</pre>
-
-<p><strong>zero()</strong> is slowest, because the JIT can't yet optimize away
-the cost of getting the array length once for every iteration through the
-loop.</p>
-
-<p><strong>one()</strong> is faster. It pulls everything out into local
-variables, avoiding the lookups. Only the array length offers a performance
-benefit.</p>
-
-<p><strong>two()</strong> is fastest for devices without a JIT, and
-indistinguishable from <strong>one()</strong> for devices with a JIT.
-It uses the enhanced for loop syntax introduced in version 1.5 of the Java
-programming language.</p>
-
-<p>To summarize: use the enhanced for loop by default, but consider a
-hand-written counted loop for performance-critical ArrayList iteration.</p>
-
-<p>(See also <em>Effective Java</em> item 46.)</p>
-
-<a name="package_inner" id="package_inner"></a>
-<h2>Consider Package Instead of Private Access with Private Inner Classes</h2>
-
-<p>Consider the following class definition:</p>
-
-<pre>public class Foo {
- private class Inner {
- void stuff() {
- Foo.this.doStuff(Foo.this.mValue);
- }
- }
-
- private int mValue;
-
- public void run() {
- Inner in = new Inner();
- mValue = 27;
- in.stuff();
- }
-
- private void doStuff(int value) {
- System.out.println("Value is " + value);
- }
-}</pre>
-
-<p>The key things to note here are that we define a private inner class
-(<code>Foo$Inner</code>) that directly accesses a private method and a private
-instance field in the outer class. This is legal, and the code prints "Value is
-27" as expected.</p>
-
-<p>The problem is that the VM considers direct access to <code>Foo</code>'s
-private members from <code>Foo$Inner</code> to be illegal because
-<code>Foo</code> and <code>Foo$Inner</code> are different classes, even though
-the Java language allows an inner class to access an outer class' private
-members. To bridge the gap, the compiler generates a couple of synthetic
-methods:</p>
-
-<pre>/*package*/ static int Foo.access$100(Foo foo) {
- return foo.mValue;
-}
-/*package*/ static void Foo.access$200(Foo foo, int value) {
- foo.doStuff(value);
-}</pre>
-
-<p>The inner class code calls these static methods whenever it needs to
-access the <code>mValue</code> field or invoke the <code>doStuff</code> method
-in the outer class. What this means is that the code above really boils down to
-a case where you're accessing member fields through accessor methods.
-Earlier we talked about how accessors are slower than direct field
-accesses, so this is an example of a certain language idiom resulting in an
-"invisible" performance hit.</p>
-
-<p>If you're using code like this in a performance hotspot, you can avoid the
-overhead by declaring fields and methods accessed by inner classes to have
-package access, rather than private access. Unfortunately this means the fields
-can be accessed directly by other classes in the same package, so you shouldn't
-use this in public API.</p>
-
-<a name="avoidfloat" id="avoidfloat"></a>
-<h2>Use Floating-Point Judiciously</h2>
-
-<p>As a rule of thumb, floating-point is about 2x slower than integer on
-Android devices. This is true on a FPU-less, JIT-less G1 and a Nexus One with
-an FPU and the JIT. (Of course, absolute speed difference between those two
-devices is about 10x for arithmetic operations.)</p>
-
-<p>In speed terms, there's no difference between <code>float</code> and
-<code>double</code> on the more modern hardware. Space-wise, <code>double</code>
-is 2x larger. As with desktop machines, assuming space isn't an issue, you
-should prefer <code>double</code> to <code>float</code>.</p>
-
-<p>Also, even for integers, some chips have hardware multiply but lack
-hardware divide. In such cases, integer division and modulus operations are
-performed in software — something to think about if you're designing a
-hash table or doing lots of math.</p>
-
-<a name="library" id="library"></a>
-<h2>Know And Use The Libraries</h2>
-
-<p>In addition to all the usual reasons to prefer library code over rolling
-your own, bear in mind that the system is at liberty to replace calls
-to library methods with hand-coded assembler, which may be better than the
-best code the JIT can produce for the equivalent Java. The typical example
-here is <code>String.indexOf</code> and friends, which Dalvik replaces with
-an inlined intrinsic. Similarly, the <code>System.arraycopy</code> method
-is about 9x faster than a hand-coded loop on a Nexus One with the JIT.</p>
-
-<p>(See also <em>Effective Java</em> item 47.)</p>
-
-<a name="native_methods" id="native_methods"></a>
-<h2>Use Native Methods Judiciously</h2>
-
-<p>Native code isn't necessarily more efficient than Java. For one thing,
-there's a cost associated with the Java-native transition, and the JIT can't
-optimize across these boundaries. If you're allocating native resources (memory
-on the native heap, file descriptors, or whatever), it can be significantly
-more difficult to arrange timely collection of these resources. You also
-need to compile your code for each architecture you wish to run on (rather
-than rely on it having a JIT). You may even have to compile multiple versions
-for what you consider the same architecture: native code compiled for the ARM
-processor in the G1 can't take full advantage of the ARM in the Nexus One, and
-code compiled for the ARM in the Nexus One won't run on the ARM in the G1.</p>
-
-<p>Native code is primarily useful when you have an existing native codebase
-that you want to port to Android, not for "speeding up" parts of a Java app.</p>
-
-<p>If you do need to use native code, you should read our
-<a href="{@docRoot}guide/practices/jni.html">JNI Tips</a>.</p>
-
-<p>(See also <em>Effective Java</em> item 54.)</p>
-
-<a name="closing_notes" id="closing_notes"></a>
-<h2>Closing Notes</h2>
-
-<p>One last thing: always measure. Before you start optimizing, make sure you
-have a problem. Make sure you can accurately measure your existing performance,
-or you won't be able to measure the benefit of the alternatives you try.</p>
-
-<p>Every claim made in this document is backed up by a benchmark. The source
-to these benchmarks can be found in the <a href="http://code.google.com/p/dalvik/source/browse/#svn/trunk/benchmarks">code.google.com "dalvik" project</a>.</p>
-
-<p>The benchmarks are built with the
-<a href="http://code.google.com/p/caliper/">Caliper</a> microbenchmarking
-framework for Java. Microbenchmarks are hard to get right, so Caliper goes out
-of its way to do the hard work for you, and even detect some cases where you're
-not measuring what you think you're measuring (because, say, the VM has
-managed to optimize all your code away). We highly recommend you use Caliper
-to run your own microbenchmarks.</p>
-
-<p>You may also find
-<a href="{@docRoot}tools/debugging/debugging-tracing.html">Traceview</a> useful
-for profiling, but it's important to realize that it currently disables the JIT,
-which may cause it to misattribute time to code that the JIT may be able to win
-back. It's especially important after making changes suggested by Traceview
-data to ensure that the resulting code actually runs faster when run without
-Traceview.
diff --git a/docs/html/guide/practices/responsiveness.jd b/docs/html/guide/practices/responsiveness.jd
deleted file mode 100644
index a00e3aa..0000000
--- a/docs/html/guide/practices/responsiveness.jd
+++ /dev/null
@@ -1,140 +0,0 @@
-page.title=Designing for Responsiveness
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-
-<h2>In this document</h2>
-<ol>
- <li><a href="#anr">What Triggers ANR?</a></li>
- <li><a href="#avoiding">How to Avoid ANR</a></li>
- <li><a href="#reinforcing">Reinforcing Responsiveness</a></li>
-</ol>
-
-</div>
-</div>
-
-<div class="figure">
-<img src="{@docRoot}images/anr.png" alt="Screenshot of ANR dialog box" width="240" height="320"/>
-<p><strong>Figure 1.</strong> An ANR dialog displayed to the user.</p>
-</div>
-
-<p>It's possible to write code that wins every performance test in the world,
-but still sends users in a fiery rage when they try to use the application.
-These are the applications that aren't <em>responsive</em> enough — the
-ones that feel sluggish, hang or freeze for significant periods, or take too
-long to process input. </p>
-
-<p>In Android, the system guards against applications that are insufficiently
-responsive for a period of time by displaying a dialog to the user, called the
-Application Not Responding (ANR) dialog, shown at right in Figure 1. The user
-can choose to let the application continue, but the user won't appreciate having
-to act on this dialog every time he or she uses your application. It's critical
-to design responsiveness into your application, so that the system never has
-cause to display an ANR dialog to the user. </p>
-
-<p>Generally, the system displays an ANR if an application cannot respond to
-user input. For example, if an application blocks on some I/O operation
-(frequently a network access), then the main application thread won't be able to
-process incoming user input events. After a time, the system concludes that the
-application is frozen, and displays the ANR to give the user the option to kill
-it. </p>
-
-<p>Similarly, if your application spends too much time building an elaborate in-memory
-structure, or perhaps computing the next move in a game, the system will
-conclude that your application has hung. It's always important to make
-sure these computations are efficient using the techniques above, but even the
-most efficient code still takes time to run.</p>
-
-<p>In both of these cases, the recommended approach is to create a child thread and do
-most of your work there. This keeps the main thread (which drives the user
-interface event loop) running and prevents the system from concluding that your code
-has frozen. Since such threading usually is accomplished at the class
-level, you can think of responsiveness as a <em>class</em> problem. (Compare
-this with basic performance, which was described above as a <em>method</em>-level
-concern.)</p>
-
-<p>This document describes how the Android system determines whether an
-application is not responding and provides guidelines for ensuring that your
-application stays responsive. </p>
-
-<h2 id="anr">What Triggers ANR?</h2>
-
-<p>In Android, application responsiveness is monitored by the Activity Manager
-and Window Manager system services. Android will display the ANR dialog
-for a particular application when it detects one of the following
-conditions:</p>
-<ul>
- <li>No response to an input event (e.g. key press, screen touch)
- within 5 seconds</li>
- <li>A {@link android.content.BroadcastReceiver BroadcastReceiver}
- hasn't finished executing within 10 seconds</li>
-</ul>
-
-<h2 id="avoiding">How to Avoid ANR</h2>
-
-<p>Given the above definition for ANR, let's examine why this can occur in
-Android applications and how best to structure your application to avoid ANR.</p>
-
-<p>Android applications normally run entirely on a single (i.e. main) thread.
-This means that anything your application is doing in the main thread that
-takes a long time to complete can trigger the ANR dialog because your
-application is not giving itself a chance to handle the input event or Intent
-broadcast.</p>
-
-<p>Therefore any method that runs in the main thread should do as little work
-as possible. In particular, Activities should do as little as possible to set
-up in key life-cycle methods such as <code>onCreate()</code> and
-<code>onResume()</code>. Potentially long running operations such as network
-or database operations, or computationally expensive calculations such as
-resizing bitmaps should be done in a child thread (or in the case of databases
-operations, via an asynchronous request). However, this does not mean that
-your main thread should block while waiting for the child thread to
-complete — nor should you call <code>Thread.wait()</code> or
-<code>Thread.sleep()</code>. Instead of blocking while waiting for a child
-thread to complete, your main thread should provide a {@link
-android.os.Handler Handler} for child threads to post back to upon completion.
-Designing your application in this way will allow your main thread to remain
-responsive to input and thus avoid ANR dialogs caused by the 5 second input
-event timeout. These same practices should be followed for any other threads
-that display UI, as they are also subject to the same timeouts.</p>
-
-<p>You can use {@link android.os.StrictMode} to help find potentially
-long running operations such as network or database operations that
-you might accidentally be doing your main thread.</p>
-
-<p>The specific constraint on IntentReceiver execution time emphasizes what
-they were meant to do: small, discrete amounts of work in the background such
-as saving a setting or registering a Notification. So as with other methods
-called in the main thread, applications should avoid potentially long-running
-operations or calculations in BroadcastReceivers. But instead of doing intensive
-tasks via child threads (as the life of a BroadcastReceiver is short), your
-application should start a {@link android.app.Service Service} if a
-potentially long running action needs to be taken in response to an Intent
-broadcast. As a side note, you should also avoid starting an Activity from an
-Intent Receiver, as it will spawn a new screen that will steal focus from
-whatever application the user is currently has running. If your application
-has something to show the user in response to an Intent broadcast, it should
-do so using the {@link android.app.NotificationManager Notification
-Manager}.</p>
-
-<h2 id="reinforcing">Reinforcing Responsiveness</h2>
-
-<p>Generally, 100 to 200ms is the threshold beyond which users will perceive
-lag (or lack of "snappiness," if you will) in an application. As such, here
-are some additional tips beyond what you should do to avoid ANR that will help
-make your application seem responsive to users.</p>
-
-<ul>
- <li>If your application is doing work in the background in response to
- user input, show that progress is being made ({@link
- android.widget.ProgressBar ProgressBar} and {@link
- android.app.ProgressDialog ProgressDialog} are useful for this).</li>
- <li>For games specifically, do calculations for moves in a child
- thread.</li>
- <li>If your application has a time-consuming initial setup phase, consider
- showing a splash screen or rendering the main view as quickly as possible
- and filling in the information asynchronously. In either case, you should
- indicate somehow that progress is being made, lest the user perceive that
- the application is frozen.</li>
-</ul>
diff --git a/docs/html/guide/practices/security.jd b/docs/html/guide/practices/security.jd
deleted file mode 100644
index 36eeff8..0000000
--- a/docs/html/guide/practices/security.jd
+++ /dev/null
@@ -1,767 +0,0 @@
-page.title=Designing for Security
-@jd:body
-
-<div id="qv-wrapper">
-<div id="qv">
-<h2>In this document</h2>
-<ol>
-<li><a href="#Dalvik">Using Dalvik Code</a></li>
-<li><a href="#Native">Using Native Code</a></li>
-<li><a href="#Data">Storing Data</a></li>
-<li><a href="#IPC">Using IPC</a></li>
-<li><a href="#Permissions">Using Permissions</a></li>
-<li><a href="#Networking">Using Networking</a></li>
-<li><a href="#DynamicCode">Dynamically Loading Code</a></li>
-<li><a href="#Input">Performing Input Validation</a></li>
-<li><a href="#UserData">Handling User Data</a></li>
-<li><a href="#Crypto">Using Cryptography</a></li>
-</ol>
-<h2>See also</h2>
-<ol>
-<li><a href="http://source.android.com/tech/security/index.html">Android
-Security Overview</a></li>
-<li><a href="{@docRoot}guide/topics/security/permissions.html">Permissions</a></li>
-</ol>
-</div></div>
-<p>Android was designed so that most developers will be able to build
-applications using the default settings and not be confronted with difficult
-decisions about security. Android also has a number of security features built
-into the operating system that significantly reduce the frequency and impact of
-application security issues.</p>
-
-<p>Some of the security features that help developers build secure applications
-include:
-<ul>
-<li>The Android Application Sandbox that isolates data and code execution on a
-per-application basis.</li>
-<li>Android application framework with robust implementations of common
-security functionality such as cryptography, permissions, and secure IPC.</li>
-<li>Technologies like ASLR, NX, ProPolice, safe_iop, OpenBSD dlmalloc, OpenBSD
-calloc, and Linux mmap_min_addr to mitigate risks associated with common memory
-management errors</li>
-<li>An encrypted filesystem that can be enabled to protect data on lost or
-stolen devices.</li>
-</ul></p>
-
-<p>Nevertheless, it is important for developers to be familiar with Android
-security best practices to make sure they take advantage of these capabilities
-and to reduce the likelihood of inadvertently introducing security issues that
-can affect their applications.</p>
-
-<p>This document is organized around common APIs and development techniques
-that can have security implications for your application and its users. As
-these best practices are constantly evolving, we recommend you check back
-occasionally throughout your application development process.</p>
-
-<a name="Dalvik"></a>
-<h2>Using Dalvik Code</h2>
-<p>Writing secure code that runs in virtual machines is a well-studied topic
-and many of the issues are not specific to Android. Rather than attempting to
-rehash these topics, we’d recommend that you familiarize yourself with the
-existing literature. Two of the more popular resources are:
-<ul>
-<li><a href="http://www.securingjava.com/toc.html">
-http://www.securingjava.com/toc.html</a></li>
-<li><a
-href="https://www.owasp.org/index.php/Java_Security_Resources">
-https://www.owasp.org/index.php/Java_Security_Resources</a></li>
-</ul></p>
-
-<p>This document is focused on the areas which are Android specific and/or
-different from other environments. For developers experienced with VM
-programming in other environments, there are two broad issues that may be
-different about writing apps for Android:
-<ul>
-<li>Some virtual machines, such as the JVM or .net runtime, act as a security
-boundary, isolating code from the underlying operating system capabilities. On
-Android, the Dalvik VM is not a security boundary -- the application sandbox is
-implemented at the OS level, so Dalvik can interoperate with native code in the
-same application without any security constraints.</li>
-<li>Given the limited storage on mobile devices, it’s common for developers
-to want to build modular applications and use dynamic class loading. When
-doing this consider both the source where you retrieve your application logic
-and where you store it locally. Do not use dynamic class loading from sources
-that are not verified, such as unsecured network sources or external storage,
-since that code can be modified to include malicious behavior.</li>
-</ul></p>
-
-<a name="Native"></a>
-<h2>Using Native Code</h2>
-
-<p>In general, we encourage developers to use the Android SDK for most
-application development, rather than using native code. Applications built
-with native code are more complex, less portable, and more like to include
-common memory corruption errors such as buffer overflows.</p>
-
-<p>Android is built using the Linux kernel and being familiar with Linux
-development security best practices is especially useful if you are going to
-use native code. This document is too short to discuss all of those best
-practices, but one of the most popular resources is “Secure Programming for
-Linux and Unix HOWTO”, available at <a
-href="http://www.dwheeler.com/secure-programs">
-http://www.dwheeler.com/secure-programs</a>.</p>
-
-<p>An important difference between Android and most Linux environments is the
-Application Sandbox. On Android, all applications run in the Application
-Sandbox, including those written with native code. At the most basic level, a
-good way to think about it for developers familiar with Linux is to know that
-every application is given a unique UID with very limited permissions. This is
-discussed in more detail in the <a
-href="http://source.android.com/tech/security/index.html">Android Security
-Overview</a> and you should be familiar with application permissions even if
-you are using native code.</p>
-
-<a name="Data"></a>
-<h2>Storing Data</h2>
-
-<h3>Using internal files</h3>
-
-<p>By default, files created on <a
-href="{@docRoot}guide/topics/data/data-storage.html#filesInternal">internal
-storage</a> are only accessible to the application that created the file. This
-protection is implemented by Android and is sufficient for most
-applications.</p>
-
-<p>Use of <a
-href="{@docRoot}reference/android/content/Context.html#MODE_WORLD_WRITEABLE">
-world writable</a> or <a
-href="{@docRoot}reference/android/content/Context.html#MODE_WORLD_READABLE">world
-readable</a> files for IPC is discouraged because it does not provide
-the ability to limit data access to particular applications, nor does it
-provide any control on data format. As an alternative, you might consider using
-a ContentProvider which provides read and write permissions, and can make
-dynamic permission grants on a case-by-case basis.</p>
-
-<p>To provide additional protection for sensitive data, some applications
-choose to encrypt local files using a key that is not accessible to the
-application. (For example, a key can be placed in a {@link java.security.KeyStore}
-and protected with a user password that is not stored on the device). While this
-does not protect data from a root compromise that can monitor the user
-inputting the password, it can provide protection for a lost device without <a
-href="http://source.android.com/tech/encryption/index.html">file system
-encryption</a>.</p>
-
-<h3>Using external storage</h3>
-
-<p>Files created on <a
-href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">external
-storage</a>, such as SD Cards, are globally readable and writable. Since
-external storage can be removed by the user and also modified by any
-application, applications should not store sensitive information using
-external storage.</p>
-
-<p>As with data from any untrusted source, applications should perform input
-validation when handling data from external storage (see Input Validation
-section). We strongly recommend that applications not store executables or
-class files on external storage prior to dynamic loading. If an application
-does retrieve executable files from external storage they should be signed and
-cryptographically verified prior to dynamic loading.</p>
-
-<h3>Using content providers</h3>
-
-<p>ContentProviders provide a structured storage mechanism that can be limited
-to your own application, or exported to allow access by other applications. By
-default, a <code>
-<a href="{@docRoot}reference/android/content/ContentProvider.html">
-ContentProvider</a></code> is
-<a href="{@docRoot}guide/topics/manifest/provider-element.html#exported">exported
-</a> for use by other applications. If you do not intend to provide other
-applications with access to your<code>
-<a href="{@docRoot}reference/android/content/ContentProvider.html">
-ContentProvider</a></code>, mark them as <code><a
-href="{@docRoot}guide/topics/manifest/provider-element.html#exported">
-android:exported=false</a></code> in the application manifest.</p>
-
-<p>When creating a <code>
-<a href="{@docRoot}reference/android/content/ContentProvider.html">ContentProvider
-</a></code> that will be exported for use by other applications, you can specify
-a single
-<a href="{@docRoot}guide/topics/manifest/provider-element.html#prmsn">permission
-</a> for reading and writing, or distinct permissions for reading and writing
-within the manifest. We recommend that you limit your permissions to those
-required to accomplish the task at hand. Keep in mind that it’s usually
-easier to add permissions later to expose new functionality than it is to take
-them away and break existing users.</p>
-
-<p>If you are using a <code>
-<a href="{@docRoot}reference/android/content/ContentProvider.html">
-ContentProvider</a></code> for sharing data between applications built by the
-same developer, it is preferable to use
-<a href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">signature
-level permissions</a>. Signature permissions do not require user confirmation,
-so they provide a better user experience and more controlled access to the
-<code>
-<a href="{@docRoot}reference/android/content/ContentProvider.html">
-ContentProvider</a></code>.</p>
-
-<p>ContentProviders can also provide more granular access by declaring the <a
-href="{@docRoot}guide/topics/manifest/provider-element.html#gprmsn">
-grantUriPermissions</a> element and using the <code><a
-href="{@docRoot}reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMISSION">FLAG_GRANT_READ_URI_PERMISSION</a></code>
-and <code><a
-href="{@docRoot}reference/android/content/Intent.html#FLAG_GRANT_WRITE_URI_PERMISSION">FLAG_GRANT_WRITE_URI_PERMISSION</a></code>
-flags in the Intent object
-that activates the component. The scope of these permissions can be further
-limited by the <code><a
-href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">
-grant-uri-permission element</a></code>.</p>
-
-<p>When accessing a <code>
-<a href="{@docRoot}reference/android/content/ContentProvider.html">
-ContentProvider</a></code>, use parameterized query methods such as <code>
-<a href="{@docRoot}reference/android/content/ContentProvider.html#query(android.net.Uri,%20java.lang.String[],%20java.lang.String,%20java.lang.String[],%20java.lang.String)">query()</a></code>, <code><a
-href="{@docRoot}reference/android/content/ContentProvider.html#update(android.net.Uri,%20android.content.ContentValues,%20java.lang.String,%20java.lang.String[])">update()</a></code>, and <code><a
-href="{@docRoot}reference/android/content/ContentProvider.html#delete(android.net.Uri,%20java.lang.String,%20java.lang.String[])">delete()</a></code> to avoid
-potential <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL
-Injection</a> from untrusted data. Note that using parameterized methods is not
-sufficient if the <code>selection</code> is built by concatenating user data
-prior to submitting it to the method.</p>
-
-<p>Do not have a false sense of security about the write permission. Consider
-that the write permission allows SQL statements which make it possible for some
-data to be confirmed using creative <code>WHERE</code> clauses and parsing the
-results. For example, an attacker might probe for presence of a specific phone
-number in a call-log by modifying a row only if that phone number already
-exists. If the content provider data has predictable structure, the write
-permission may be equivalent to providing both reading and writing.</p>
-
-<a name="IPC"></a>
-<h2>Using Interprocess Communication (IPC)</h2>
-
-<p>Some Android applications attempt to implement IPC using traditional Linux
-techniques such as network sockets and shared files. We strongly encourage the
-use of Android system functionality for IPC such as Intents, Binders, Services,
-and Receivers. The Android IPC mechanisms allow you to verify the identity of
-the application connecting to your IPC and set security policy for each IPC
-mechanism.</p>
-
-<p>Many of the security elements are shared across IPC mechanisms. <a
-href="{@docRoot}reference/android/content/BroadcastReceiver.html">
-Broadcast Receivers</a>, <a
-href="{@docRoot}reference/android/R.styleable.html#AndroidManifestActivity">
-Activities</a>, and <a
-href="{@docRoot}reference/android/R.styleable.html#AndroidManifestService">
-Services</a> are all declared in the application manifest. If your IPC mechanism is
-not intended for use by other applications, set the <a
-href="{@docRoot}guide/topics/manifest/service-element.html#exported">{@code android:exported}</a>
-property to false. This is useful for applications that consist of multiple processes
-within the same UID, or if you decide late in development that you do not
-actually want to expose functionality as IPC but you don’t want to rewrite
-the code.</p>
-
-<p>If your IPC is intended to be accessible to other applications, you can
-apply a security policy by using the <a
-href="{@docRoot}reference/android/R.styleable.html#AndroidManifestPermission">
-Permission</a> tag. If IPC is between applications built by the same developer,
-it is preferable to use <a
-href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">signature
-level permissions</a>. Signature permissions do not require user confirmation,
-so they provide a better user experience and more controlled access to the IPC
-mechanism.</p>
-
-<p>One area that can introduce confusion is the use of intent filters. Note
-that Intent filters should not be considered a security feature -- components
-can be invoked directly and may not have data that would conform to the intent
-filter. You should perform input validation within your intent receiver to
-confirm that it is properly formatted for the invoked receiver, service, or
-activity.</p>
-
-<h3>Using intents</h3>
-
-<p>Intents are the preferred mechanism for asynchronous IPC in Android.
-Depending on your application requirements, you might use <code><a
-href="{@docRoot}reference/android/content/Context.html#sendBroadcast(android.content.Intent)">sendBroadcast()</a></code>,
-<code><a
-href="{@docRoot}reference/android/content/Context.html#sendOrderedBroadcast(android.content.Intent,%20java.lang.String)">sendOrderedBroadcast()</a></code>,
-or direct an intent to a specific application component.</p>
-
-<p>Note that ordered broadcasts can be “consumed” by a recipient, so they
-may not be delivered to all applications. If you are sending an Intent where
-delivery to a specific receiver is required, the intent must be delivered
-directly to the receiver.</p>
-
-<p>Senders of an intent can verify that the recipient has a permission
-specifying a non-Null Permission upon sending. Only applications with that
-Permission will receive the intent. If data within a broadcast intent may be
-sensitive, you should consider applying a permission to make sure that
-malicious applications cannot register to receive those messages without
-appropriate permissions. In those circumstances, you may also consider
-invoking the receiver directly, rather than raising a broadcast.</p>
-
-<h3>Using binder and AIDL interfaces</h3>
-
-<p><a href="{@docRoot}reference/android/os/Binder.html">Binders</a> are the
-preferred mechanism for RPC-style IPC in Android. They provide a well-defined
-interface that enables mutual authentication of the endpoints, if required.</p>
-
-<p>We strongly encourage designing interfaces in a manner that does not require
-interface specific permission checks. Binders are not declared within the
-application manifest, and therefore you cannot apply declarative permissions
-directly to a Binder. Binders generally inherit permissions declared in the
-application manifest for the Service or Activity within which they are
-implemented. If you are creating an interface that requires authentication
-and/or access controls on a specific binder interface, those controls must be
-explicitly added as code in the interface.</p>
-
-<p>If providing an interface that does require access controls, use <code><a
-href="{@docRoot}reference/android/content/Context.html#checkCallingPermission(java.lang.String)">checkCallingPermission()</a></code>
-to verify whether the
-caller of the Binder has a required permission. This is especially important
-before accessing a Service on behalf of the caller, as the identify of your
-application is passed to other interfaces. If invoking an interface provided
-by a Service, the <code><a
-href="{@docRoot}reference/android/content/Context.html#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)">bindService()</a></code>
- invocation may fail if you do not have permission to access the given Service.
- If calling an interface provided locally by your own application, it may be
-useful to use the <code><a
-href="{@docRoot}reference/android/os/Binder.html#clearCallingIdentity()">
-clearCallingIdentity()</a></code> to satisfy internal security checks.</p>
-
-<h3>Using broadcast receivers</h3>
-
-<p>Broadcast receivers are used to handle asynchronous requests initiated via
-an intent.</p>
-
-<p>By default, receivers are exported and can be invoked by any other
-application. If your <code><a
-href="{@docRoot}reference/android/content/BroadcastReceiver.html">
-BroadcastReceivers</a></code> is intended for use by other applications, you
-may want to apply security permissions to receivers using the <code><a
-href="{@docRoot}guide/topics/manifest/receiver-element.html">
-<receiver></a></code> element within the application manifest. This will
-prevent applications without appropriate permissions from sending an intent to
-the <code><a
-href="{@docRoot}reference/android/content/BroadcastReceiver.html">
-BroadcastReceivers</a></code>.</p>
-
-<h3>Using Services</h3>
-
-<p>Services are often used to supply functionality for other applications to
-use. Each service class must have a corresponding <service> declaration in its
-package's AndroidManifest.xml.</p>
-
-<p>By default, Services are exported and can be invoked by any other
-application. Services can be protected using the <a
-href="{@docRoot}guide/topics/manifest/service-element.html#prmsn">{@code android:permission}</a>
-attribute
-within the manifest’s <code><a
-href="{@docRoot}guide/topics/manifest/service-element.html">
-<service></a></code> tag. By doing so, other applications will need to declare
-a corresponding <code><a
-href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a>
-</code> element in their own manifest to be
-able to start, stop, or bind to the service.</p>
-
-<p>A Service can protect individual IPC calls into it with permissions, by
-calling <code><a
-href="{@docRoot}reference/android/content/Context.html#checkCallingPermission(java.lang.String)">checkCallingPermission()</a></code>
-before executing
-the implementation of that call. We generally recommend using the
-declarative permissions in the manifest, since those are less prone to
-oversight.</p>
-
-<h3>Using Activities</h3>
-
-<p>Activities are most often used for providing the core user-facing
-functionality of an application. By default, Activities are exported and
-invokable by other applications only if they have an intent filter or binder
-declared. In general, we recommend that you specifically declare a Receiver or
-Service to handle IPC, since this modular approach reduces the risk of exposing
-functionality that is not intended for use by other applications.</p>
-
-<p>If you do expose an Activity for purposes of IPC, the <code><a
-href="{@docRoot}guide/topics/manifest/activity-element.html#prmsn">android:permission</a></code>
-attribute in the <code><a
-href="{@docRoot}guide/topics/manifest/activity-element.html">
-<activity></a></code> declaration in the application manifest can be used to
-restrict access to only those applications which have the stated
-permissions.</p>
-
-<a name="Permissions"></a>
-<h2>Using Permissions</h2>
-
-<h3>Requesting Permissions</h3>
-
-<p>We recommend minimizing the number of permissions requested by an
-application. Not having access to sensitive permissions reduces the risk of
-inadvertently misusing those permissions, can improve user adoption, and makes
-applications less attractive targets for attackers.</p>
-
-<p>If it is possible to design your application in a way that does not require
-a permission, that is preferable. For example, rather than requesting access
-to device information to create an identifier, create a <a
-href="{@docRoot}reference/java/util/UUID.html">GUID</a> for your application.
-(This specific example is also discussed in Handling User Data) Or, rather than
-using external storage, store data in your application directory.</p>
-
-<p>If a permission is not required, do not request it. This sounds simple, but
-there has been quite a bit of research into the frequency of over-requesting
-permissions. If you’re interested in the subject you might start with this
-research paper published by U.C. Berkeley: <a
-href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-48.pdf">
-http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-48.pdf</a></p>
-
-<p>In addition to requesting permissions, your application can use <a
-href="{@docRoot}guide/topics/manifest/permission-element.html">permissions</a>
-to protect IPC that is security sensitive and will be exposed to other
-applications -- such as a <code><a
-href="{@docRoot}reference/android/content/ContentProvider.html">
-ContentProvider</a></code>. In general, we recommend using access controls
-other than user confirmed permissions where possible since permissions can
-be confusing for users. For example, consider using the <a
-href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">signature
-protection level</a> on permissions for IPC communication between applications
-provided by a single developer.</p>
-
-<p>Do not cause permission re-delegation. This occurs when an app exposes data
-over IPC that is only available because it has a specific permission, but does
-not require that permission of any clients of it’s IPC interface. More
-details on the potential impacts, and frequency of this type of problem is
-provided in this research paper published at USENIX: <a
-href="http://www.cs.berkeley.edu/~afelt/felt_usenixsec2011.pdf">http://www.cs.be
-rkeley.edu/~afelt/felt_usenixsec2011.pdf</a></p>
-
-<h3>Creating Permissions</h3>
-
-<p>Generally, you should strive to create as few permissions as possible while
-satisfying your security requirements. Creating a new permission is relatively
-uncommon for most applications, since <a
-href="{@docRoot}reference/android/Manifest.permission.html">system-defined
-permissions</a> cover many situations. Where appropriate,
-perform access checks using existing permissions.</p>
-
-<p>If you must create a new permission, consider whether you can accomplish
-your task with a Signature permission. Signature permissions are transparent
-to the user and only allow access by applications signed by the same developer
-as application performing the permission check. If you create a Dangerous
-permission, then the user needs to decide whether to install the application.
-This can be confusing for other developers, as well as for users.</p>
-
-<p>If you create a Dangerous permission, there are a number of complexities
-that you need to consider.
-<ul>
-<li>The permission must have a string that concisely expresses to a user the
-security decision they will be required to make.</li>
-<li>The permission string must be localized to many different languages.</li>
-<li>Uses may choose not to install an application because a permission is
-confusing or perceived as risky.</li>
-<li>Applications may request the permission when the creator of the permission
-has not been installed.</li>
-</ul></p>
-
-<p>Each of these poses a significant non-technical challenge for an application
-developer, which is why we discourage the use of Dangerous permission.</p>
-
-<a name="Networking"></a>
-<h2>Using Networking</h2>
-
-<h3>Using IP Networking</h3>
-
-<p>Networking on Android is not significantly different from Linux
-environments. The key consideration is making sure that appropriate protocols
-are used for sensitive data, such as <a
-href="{@docRoot}reference/javax/net/ssl/HttpsURLConnection.html">HTTPS</a> for
-web traffic. We prefer use of HTTPS over HTTP anywhere that HTTPS is
-supported on the server, since mobile devices frequently connect on networks
-that are not secured, such as public WiFi hotspots.</p>
-
-<p>Authenticated, encrypted socket-level communication can be easily
-implemented using the <code><a
-href="{@docRoot}reference/javax/net/ssl/SSLSocket.html">SSLSocket</a></code>
-class. Given the frequency with which Android devices connect to unsecured
-wireless networks using WiFi, the use of secure networking is strongly
-encouraged for all applications.</p>
-
-<p>We have seen some applications use <a
-href="http://en.wikipedia.org/wiki/Localhost">localhost</a> network ports for
-handling sensitive IPC. We discourage this approach since these interfaces are
-accessible by other applications on the device. Instead, use an Android IPC
-mechanism where authentication is possible such as a Service and Binder. (Even
-worse than using loopback is to bind to INADDR_ANY since then your application
-may receive requests from anywhere. We’ve seen that, too.)</p>
-
-<p>Also, one common issue that warrants repeating is to make sure that you do
-not trust data downloaded from HTTP or other insecure protocols. This includes
-validation of input in <code><a
-href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code> and
-any responses to intents issued against HTTP.</p>
-
-<h3>Using Telephony Networking</h3>
-
-<p>SMS is the telephony protocol most frequently used by Android developers.
-Developers should keep in mind that this protocol was primarily designed for
-user-to-user communication and is not well-suited for some application
-purposes. Due to the limitations of SMS, we strongly recommend the use of <a
-href="http://code.google.com/android/c2dm/">C2DM</a> and IP networking for
-sending data messages to devices.</p>
-
-<p>Many developers do not realize that SMS is not encrypted or strongly
-authenticated on the network or on the device. In particular, any SMS receiver
-should expect that a malicious user may have sent the SMS to your application
--- do not rely on unauthenticated SMS data to perform sensitive commands.
-Also, you should be aware that SMS may be subject to spoofing and/or
-interception on the network. On the Android-powered device itself, SMS
-messages are transmitted as Broadcast intents, so they may be read or captured
-by other applications that have the READ_SMS permission.</p>
-
-<a name="DynamicCode"></a>
-<h2>Dynamically Loading Code</h2>
-
-<p>We strongly discourage loading code from outside of the application APK.
-Doing so significantly increases the likelihood of application compromise due
-to code injection or code tampering. It also adds complexity around version
-management and application testing. Finally, it can make it impossible to
-verify the behavior of an application, so it may be prohibited in some
-environments.</p>
-
-<p>If your application does dynamically load code, the most important thing to
-keep in mind about dynamically loaded code is that it runs with the same
-security permissions as the application APK. The user made a decision to
-install your application based on your identity, and they are expecting that
-you provide any code run within the application, including code that is
-dynamically loaded.</p>
-
-<p>The major security risk associated with dynamically loading code is that the
-code needs to come from a verifiable source. If the modules are included
-directly within your APK, then they cannot be modified by other applications.
-This is true whether the code is a native library or a class being loaded using
-<a href="{@docRoot}reference/dalvik/system/DexClassLoader.html">
-<code>DexClassLoader</code></a>. We have seen many instances of applications
-attempting to load code from insecure locations, such as downloaded from the
-network over unencrypted protocols or from world writable locations such as
-external storage. These locations could allow someone on the network to modify
-the content in transit, or another application on a users device to modify the
-content, respectively.</p>
-
-
-<h3>Using WebView</h3>
-
-<p>Since WebView consumes web content that can include HTML and JavaScript,
-improper use can introduce common web security issues such as <a
-href="http://en.wikipedia.org/wiki/Cross_site_scripting">cross-site-scripting</a
-> (JavaScript injection). Android includes a number of mechanisms to reduce
-the scope of these potential issues by limiting the capability of WebView to
-the minimum functionality required by your application.</p>
-
-<p>If your application does not directly use JavaScript within a <code><a
-href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code>, do
-not call
-<a href="{@docRoot}reference/android/webkit/WebSettings.html#setJavaScriptEnabled(boolean)">
-<code>setJavaScriptEnabled()</code></a>. We have seen this method invoked
-in sample code that might be repurposed in production application -- so
-remove it if necessary. By default, <code><a
-href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code> does
-not execute JavaScript so cross-site-scripting is not possible.</p>
-
-<p>Use <code><a
-href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> with
-particular care because it allows JavaScript to invoke operations that are
-normally reserved for Android applications. Only expose <code><a
-href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> to
-sources from which all input is trustworthy. If untrusted input is allowed,
-untrusted JavaScript may be able to invoke Android methods. In general, we
-recommend only exposing <code><a
-href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> to
-JavaScript that is contained within your application APK.</p>
-
-<p>Do not trust information downloaded over HTTP, use HTTPS instead. Even if
-you are connecting only to a single website that you trust or control, HTTP is
-subject to <a
-href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">MiTM</a> attacks
-and interception of data. Sensitive capabilities using <code><a
-href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> should
-not ever be exposed to unverified script downloaded over HTTP. Note that even
-with the use of HTTPS,
-<code><a
-href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code>
-increases the attack surface of your application to include the server
-infrastructure and all CAs trusted by the Android-powered device.</p>
-
-<p>If your application accesses sensitive data with a <code><a
-href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code>, you
-may want to use the <code><a
-href="{@docRoot}reference/android/webkit/WebView.html#clearCache(boolean)">
-clearCache()</a></code> method to delete any files stored locally. Server side
-headers like no-cache can also be used to indicate that an application should
-not cache particular content.</p>
-
-<a name="Input"></a>
-<h2>Performing Input Validation</h2>
-
-<p>Insufficient input validation is one of the most common security problems
-affecting applications, regardless of what platform they run on. Android does
-have platform-level countermeasures that reduce the exposure of applications to
-input validation issues, you should use those features where possible. Also
-note that selection of type-safe languages tends to reduce the likelihood of
-input validation issues. We strongly recommend building your applications with
-the Android SDK.</p>
-
-<p>If you are using native code, then any data read from files, received over
-the network, or received from an IPC has the potential to introduce a security
-issue. The most common problems are <a
-href="http://en.wikipedia.org/wiki/Buffer_overflow">buffer overflows</a>, <a
-href="http://en.wikipedia.org/wiki/Double_free#Use_after_free">use after
-free</a>, and <a
-href="http://en.wikipedia.org/wiki/Off-by-one_error">off-by-one errors</a>.
-Android provides a number of technologies like ASLR and DEP that reduce the
-exploitability of these errors, but they do not solve the underlying problem.
-These can be prevented by careful handling of pointers and managing of
-buffers.</p>
-
-<p>Dynamic, string based languages such as JavaScript and SQL are also subject
-to input validation problems due to escape characters and <a
-href="http://en.wikipedia.org/wiki/Code_injection">script injection</a>.</p>
-
-<p>If you are using data within queries that are submitted to SQL Database or a
-Content Provider, SQL Injection may be an issue. The best defense is to use
-parameterized queries, as is discussed in the ContentProviders section.
-Limiting permissions to read-only or write-only can also reduce the potential
-for harm related to SQL Injection.</p>
-
-<p>If you are using <code><a
-href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code>, then
-you must consider the possibility of XSS. If your application does not
-directly use JavaScript within a <code><a
-href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code>, do
-not call setJavaScriptEnabled() and XSS is no longer possible. If you must
-enable JavaScript then the WebView section provides other security best
-practices.</p>
-
-<p>If you cannot use the security features above, we strongly recommend the use
-of well-structured data formats and verifying that the data conforms to the
-expected format. While blacklisting of characters or character-replacement can
-be an effective strategy, these techniques are error-prone in practice and
-should be avoided when possible.</p>
-
-<a name="UserData"></a>
-<h2>Handling User Data</h2>
-
-<p>In general, the best approach is to minimize use of APIs that access
-sensitive or personal user data. If you have access to data and can avoid
-storing or transmitting the information, do not store or transmit the data.
-Finally, consider if there is a way that your application logic can be
-implemented using a hash or non-reversible form of the data. For example, your
-application might use the hash of an an email address as a primary key, to
-avoid transmitting or storing the email address. This reduces the chances of
-inadvertently exposing data, and it also reduces the chance of attackers
-attempting to exploit your application.</p>
-
-<p>If your application accesses personal information such as passwords or
-usernames, keep in mind that some jurisdictions may require you to provide a
-privacy policy explaining your use and storage of that data. So following the
-security best practice of minimizing access to user data may also simplify
-compliance.</p>
-
-<p>You should also consider whether your application might be inadvertently
-exposing personal information to other parties such as third-party components
-for advertising or third-party services used by your application. If you don't
-know why a component or service requires a personal information, don’t
-provide it. In general, reducing the access to personal information by your
-application will reduce the potential for problems in this area.</p>
-
-<p>If access to sensitive data is required, evaluate whether that information
-must be transmitted to a server, or whether the operation can be performed on
-the client. Consider running any code using sensitive data on the client to
-avoid transmitting user data.</p>
-
-<p>Also, make sure that you do not inadvertently expose user data to other
-application on the device through overly permissive IPC, world writable files,
-or network sockets. This is a special case of permission redelegation,
-discussed in the Requesting Permissions section.</p>
-
-<p>If a GUID is required, create a large, unique number and store it. Do not
-use phone identifiers such as the phone number or IMEI which may be associated
-with personal information. This topic is discussed in more detail in the <a
-href="http://android-developers.blogspot.com/2011/03/identifying-app-installations.html">Android Developer Blog</a>.</p>
-
-<p>Application developers should be careful writing to on-device logs.
-In Android, logs are a shared resource, and are available
-to an application with the
-<a href="{@docRoot}reference/android/Manifest.permission.html#READ_LOGS">
-<code>READ_LOGS</code></a> permission. Even though the phone log data
-is temporary and erased on reboot, inappropriate logging of user information
-could inadvertently leak user data to other applications.</p>
-
-
-<h3>Handling Credentials</h3>
-
-<p>In general, we recommend minimizing the frequency of asking for user
-credentials -- to make phishing attacks more conspicuous, and less likely to be
-successful. Instead use an authorization token and refresh it.</p>
-
-<p>Where possible, username and password should not be stored on the device.
-Instead, perform initial authentication using the username and password
-supplied by the user, and then use a short-lived, service-specific
-authorization token.</p>
-
-<p>Services that will be accessible to multiple applications should be accessed
-using <code>
-<a href="{@docRoot}reference/android/accounts/AccountManager.html">
-AccountManager</a></code>. If possible, use the <code><a
-href="{@docRoot}reference/android/accounts/AccountManager.html">
-AccountManager</a></code> class to invoke a cloud-based service and do not store
-passwords on the device.</p>
-
-<p>After using <code><a
-href="{@docRoot}reference/android/accounts/AccountManager.html">
-AccountManager</a></code> to retrieve an Account, check the <code><a
-href="{@docRoot}reference/android/accounts/Account.html#CREATOR">CREATOR</a>
-</code> before passing in any credentials, so that you do not inadvertently pass
-credentials to the wrong application.</p>
-
-<p>If credentials are to be used only by applications that you create, then you
-can verify the application which accesses the <code><a
-href="{@docRoot}reference/android/accounts/AccountManager.html">
-AccountManager</a></code> using <code><a
-href="{@docRoot}reference/android/content/pm/PackageManager.html#checkSignatures(java.lang.String,%20java.lang.String)">checkSignature()</a></code>.
-Alternatively, if only one application will use the credential, you might use a
-{@link java.security.KeyStore} for
-storage.</p>
-
-<a name="Crypto"></a>
-<h2>Using Cryptography</h2>
-
-<p>In addition to providing data isolation, supporting full-filesystem
-encryption, and providing secure communications channels Android provides a
-wide array of algorithms for protecting data using cryptography.</p>
-
-<p>In general, try to use the highest level of pre-existing framework
-implementation that can support your use case. If you need to securely
-retrieve a file from a known location, a simple HTTPS URI may be adequate and
-require no knowledge of cryptography on your part. If you need a secure
-tunnel, consider using
-<a href="{@docRoot}reference/javax/net/ssl/HttpsURLConnection.html">
-<code>HttpsURLConnection</code></a> or <code><a
-href="{@docRoot}reference/javax/net/ssl/SSLSocket.html">SSLSocket</a></code>,
-rather than writing your own protocol.</p>
-
-<p>If you do find yourself needing to implement your own protocol, we strongly
-recommend that you not implement your own cryptographic algorithms. Use
-existing cryptographic algorithms such as those in the implementation of AES or
-RSA provided in the <code><a
-href="{@docRoot}reference/javax/crypto/Cipher.html">Cipher</a></code> class.</p>
-
-<p>Use a secure random number generator (
-<a href="{@docRoot}reference/java/security/SecureRandom.html">
-<code>SecureRandom</code></a>) to initialize any cryptographic keys (<a
-href="{@docRoot}reference/javax/crypto/KeyGenerator.html">
-<code>KeyGenerator</code></a>). Use of a key that is not generated with a secure random
-number generator significantly weakens the strength of the algorithm, and may
-allow offline attacks.</p>
-
-<p>If you need to store a key for repeated use, use a mechanism like
- {@link java.security.KeyStore} that
-provides a mechanism for long term storage and retrieval of cryptographic
-keys.</p>
-
-<h2>Conclusion</h2>
-
-<p>Android provides developers with the ability to design applications with a
-broad range of security requirements. These best practices will help you make
-sure that your application takes advantage of the security benefits provided by
-the platform.</p>
-
-<p>You can receive more information on these topics and discuss security best
-practices with other developers in the <a
-href="http://groups.google.com/group/android-security-discuss">Android Security
-Discuss</a> Google Group</p>
diff --git a/docs/html/guide/topics/appwidgets/index.jd b/docs/html/guide/topics/appwidgets/index.jd
index 7e031d9..6e6fa28 100644
--- a/docs/html/guide/topics/appwidgets/index.jd
+++ b/docs/html/guide/topics/appwidgets/index.jd
@@ -3,14 +3,6 @@
<div id="qv-wrapper">
<div id="qv">
- <h2>Quickview</h2>
- <ul>
- <li>App Widgets provide users access to some of your application features
-directly from the Home screen (without the need to launch an activity)</li>
- <li>App Widgets are backed by a special kind of broadcast receiver that
-handles the App
-Widget lifecycle</li>
- </ul>
<h2>In this document</h2>
<ol>
@@ -33,6 +25,11 @@
</ol>
</li>
<li><a href="#preview">Setting a Preview Image</a></li>
+ <li><a href="#lockscreen">Enabling App Widgets on the Lockscreen
+ <ol>
+ <li><a href="#lockscreen-sizing">Sizing guidelines</li>
+ </ol>
+ </li>
<li><a href="#collections">Using App Widgets with Collections</a>
<ol>
<li><a href="#collection_sample">Sample application</a></li>
@@ -50,18 +47,6 @@
<li>{@link android.appwidget.AppWidgetProviderInfo}</li>
<li>{@link android.appwidget.AppWidgetManager}</li>
</ol>
-
- <h2>See also</h2>
- <ol>
- <li><a
-href="{@docRoot}guide/practices/ui_guidelines/widget_design.html">App Widget
-Design
- Guidelines</a></li>
- <li><a
-href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-
-widgets-and.html">Introducing
- home screen widgets and the AppWidget framework »</a></li>
- </ol>
</div>
</div>
@@ -77,11 +62,17 @@
below shows
the Music App Widget.</p>
-<img src="{@docRoot}images/appwidget.png" alt="" />
+<img src="{@docRoot}images/appwidgets/appwidget.png" alt="" />
<p>This document describes how to publish an App Widget using an App Widget
provider.</p>
+<div class="note design">
+<p><strong>Widget Design</strong></p>
+ <p>For information about how to design your app widget, read the <a
+href="{@docRoot}design/patterns/widgets.html">Widgets</a> design guide.</p>
+</div>
+
<h2 id="Basics">The Basics</h2>
@@ -179,7 +170,9 @@
android:previewImage="@drawable/preview"
android:initialLayout="@layout/example_appwidget"
android:configure="com.example.android.ExampleAppWidgetConfigure"
- android:resizeMode="horizontal|vertical">
+ android:resizeMode="horizontal|vertical"
+ android:widgetCategory="home_screen|keyguard"
+ android:initialKeyguardLayout="@layout/example_keyguard">
</appwidget-provider>
</pre>
@@ -274,7 +267,21 @@
handles to change the size on the layout grid. Values for the
<code>resizeMode</code> attribute include "horizontal", "vertical", and "none".
To declare a widget as resizeable horizontally and vertically, supply the value
-"horizontal|vertical". Introduced in Android 3.1.</li> </ul>
+"horizontal|vertical". Introduced in Android 3.1.</li>
+
+<li>The <code>widgetCategory</code> attribute declares whether your App Widget can be displayed on the home screen,
+the lock screen (keyguard), or both. Values for this attribute include "home_screen" and "keyguard". A widget that
+is displayed on both needs to ensure that it follows the design guidelines for both widget classes. For more
+information, see <a href="#lockscreen">Enabling App Widgets on the Lockscreen</a>. The default value is "home_screen". Introduced in Android 4.2.
+</li>
+
+<li>The <code>initialKeyguardLayout</code> attribute points to the layout resource
+that defines the lock screen App Widget layout. This works the same way as the
+{@link android.appwidget.AppWidgetProviderInfo#initialLayout android:initialLayout},
+in that it provides a layout that can appear immediately until your app widget is initialized and able to update
+the layout. Introduced in Android 4.2.</li>
+
+</ul>
<p>See the {@link android.appwidget.AppWidgetProviderInfo} class for more
information on the
@@ -731,6 +738,66 @@
application and set it up how you'd like your preview image to appear, then save
it and place it in your application's drawable resources.</p>
+<h2 id="lockscreen">Enabling App Widgets on the Lockscreen</h2>
+
+<p>Android 4.2 introduces the ability for users to add widgets to the lock screen. To indicate that your app widget is available for use on the lock screen, declare the {@link android.appwidget.AppWidgetProviderInfo#widgetCategory android:widgetCategory} attribute in the XML file that specifies your {@link android.appwidget.AppWidgetProviderInfo}. This attribute supports two values: "home_screen" and "keyguard". An app widget can declare support for one or both.</p>
+
+<p>By default, every app widget supports placement on the Home screen, so "home_screen" is the default value for the
+{@link android.appwidget.AppWidgetProviderInfo#widgetCategory android:widgetCategory} attribute. If you want your app widget to be available for the lock screen, add the "keyguard" value:</p>
+<pre>
+<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
+ ...
+ android:widgetCategory="keyguard|home_screen">
+</appwidget-provider>
+</pre>
+
+<p>If you declare a widget to be displayable on both keyguard (lockscreen) and home, it's likely that you'll want to customize the widget depending on where it is displayed. For example, you might create a separate layout file for keyguard vs. home. The next step is to detect the widget category at runtime and respond accordingly.
+
+You can detect whether your widget is on the lockscreen or home screen by calling
+{@link android.appwidget.AppWidgetManager#getAppWidgetOptions getAppWidgetOptions()}
+to get the widget's options as a {@link android.os.Bundle}. The returned bundle will include the key
+{@link android.appwidget.AppWidgetManager#OPTION_APPWIDGET_HOST_CATEGORY}, whose value will be one of {@link android.appwidget.AppWidgetProviderInfo#WIDGET_CATEGORY_HOME_SCREEN} or
+{@link android.appwidget.AppWidgetProviderInfo#WIDGET_CATEGORY_KEYGUARD}. This value is determined by the host into which the widget is bound. In the {@link android.appwidget.AppWidgetProvider}, you can then check the widget's category, for example:</p>
+
+<pre>
+AppWidgetManager appWidgetManager;
+int widgetId;
+Bundle myOptions = appWidgetManager.getAppWidgetOptions (widgetId);
+
+// Get the value of OPTION_APPWIDGET_HOST_CATEGORY
+int category = myOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY, -1);
+
+// If the value is WIDGET_CATEGORY_KEYGUARD, it's a lockscreen widget
+boolean isKeyguard = category == AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD;
+</pre>
+
+<p>Once you know the widget's category, you can optionally load a different base layout, set different properties, and so on. For example:</p>
+
+<pre>
+int baseLayout = isKeyguard ? R.layout.keyguard_widget_layout : R.layout.widget_layout;
+</pre>
+
+
+<p>You should also specify an initial layout for your app widget when on the lock screen with the
+{@link android.appwidget.AppWidgetProviderInfo#initialKeyguardLayout android:initialKeyguardLayout} attribute. This works the same way as the
+{@link android.appwidget.AppWidgetProviderInfo#initialLayout android:initialLayout}, in that it provides a layout that can appear immediately until your app widget is initialized and able to update the layout.</p>
+
+<h3 id="lockscreen-sizing">Sizing guidelines</h3>
+
+<p>When a widget is hosted on the lockscreen, the framework ignores the {@code minWidth}, {@code minHeight}, {@code minResizeWidth}, and {@code minResizeHeight} fields. If a widget is also a home screen widget, these parameters are still needed as they're still used on home, but they will be ignored for purposes of the lockscreen.</p>
+
+<p>The width of a lockscreen widget always fills the provided space. For the height of a lockscreen widget, you have the following options:</p>
+
+<ul>
+ <li>If the widget does not mark itself as vertically resizable ({@code android:resizeMode="vertical"}), then the widget height will always be "small":
+ <ul>
+ <li>On a phone in portrait mode, "small" is defined as the space remaining when an unlock UI is being displayed.</li>
+ <li>On tablets and landscape phones, "small" is set on a per-device basis.</li>
+ </ul>
+ </li>
+ <li>If the widget marks itself as vertically resizable, then the widget height shows up as "small" on portrait phones displaying an unlock UI. In all other cases, the widget sizes to fill the available height.</li>
+</ul>
+
<h2 id="collections">Using App Widgets with Collections</h2>
<p>Android 3.0 introduces App Widgets with collections. These kinds of App
@@ -815,7 +882,7 @@
sample</a>:</p>
<p>
-<img src="{@docRoot}resources/images/StackWidget.png" alt="" />
+<img src="{@docRoot}images/appwidgets/StackWidget.png" alt="" />
</p>
<p>This sample consists of a stack of 10 views, which display the values
@@ -1318,7 +1385,7 @@
the {@link android.widget.RemoteViewsService.RemoteViewsFactory
RemoteViewsFactory}, and how you can trigger updates:</p>
-<img src="{@docRoot}images/appwidget_collections.png" alt="" />
+<img src="{@docRoot}images/appwidgets/appwidget_collections.png" alt="" />
<p>One feature of App Widgets that use collections is the ability to provide
users with up-to-date content. For example, consider the Android 3.0 Gmail
diff --git a/docs/html/guide/topics/renderscript/compute.jd b/docs/html/guide/topics/renderscript/compute.jd
index d464c90..5f466ce 100644
--- a/docs/html/guide/topics/renderscript/compute.jd
+++ b/docs/html/guide/topics/renderscript/compute.jd
@@ -10,12 +10,11 @@
<ol>
<li><a href="#overview">Renderscript System Overview</a></li>
+ <li><a href="#filterscript">Filterscript</a></li>
<li>
<a href="#creating-renderscript">Creating a Computation Renderscript</a>
-
<ol>
<li><a href="#creating-rs-file">Creating the Renderscript file</a></li>
-
<li><a href="#calling">Calling the Renderscript code</a></li>
</ol>
</li>
@@ -111,16 +110,34 @@
<p>For a more detailed explanation of how all of these layers work together, see
<a href="{@docRoot}guide/topics/renderscript/advanced.html">Advanced Renderscript</a>.<p>
+<h2 id="filterscript">Filterscript</h2>
+
+<p>Introduced in Android 4.2 (API Level 17), Filterscript defines a subset of Renderscript
+that focuses on image processing operations, such as those
+that you would typically write with an OpenGL ES fragment shader. You still write your scripts
+using the standard Renderscript runtime APIs, but within stricter
+constraints that ensure wider compatibility and improved optimization across
+CPUs, GPUs, and DSPs. At compile time, the precompiler evaluates Filterscript files and
+applies a more stringent set of warnings and errors than
+it does for standard Renderscript files. The following list describes the major constraints
+of Filterscript when compared to Renderscript:</p>
+
+<ul>
+<li>Inputs and return values of root functions cannot contain pointers. The default root function
+signature contains pointers, so you must use the <code>__attribute__((kernel))</code> attribute to declare a custom
+root function when using Filterscript.</li>
+<li>Built-in types cannot exceed 32-bits.</li>
+<li>Filterscript must always use relaxed floating point precision by using the
+<code>rs_fp_relaxed</code> pragma.</li>
+<li>Filterscript files must end with an <code>.fs</code> extension, instead of an <code>.rs</code> extension.</li>
+</ul>
<h2 id="creating-renderscript">Creating a Renderscript</h2>
-<p>Renderscripts scale to the amount of
+<p>Renderscript scales to the amount of
processing cores available on the device. This is enabled through a function named
<code>rsForEach()</code> (or the <code>forEach_root()</code> method at the Android framework level).
-that automatically partitions work across available processing cores on the device.
-For now, Renderscript can only take advantage of CPU
-cores, but in the future, they can potentially run on other types of processors such as GPUs and
-DSPs.</p>
+that automatically partitions work across available processing cores on the device.</p>
<p>Implementing a Renderscript involves creating a <code>.rs</code> file that contains
your Renderscript code and calling it at the Android framework level with the
@@ -149,10 +166,9 @@
<li>A pragma declaration (<code>#pragma version(1)</code>) that declares the version of
Renderscript that you are using (1 is the only value for now).</li>
-
- <li><p>A <code>root()</code> function that is the main worker function. The root function is
- called by the <code>rsForEach</code> function, which allows the Renderscript code to be called and
- executed on multiple cores if they are available. The <code>root()</code> function must return
+
+ <li><p>A root function (or kernel) that is the main entry point to your Renderscript.
+ The default <code>root()</code> function must return
<code>void</code> and accept the following arguments:</p>
<ul>
@@ -172,10 +188,22 @@
<li>The size of the user-defined data.</li>
</ul>
+
+ <p>Starting in Android 4.1 (API Level 16), you can choose to define your own root function arguments
+ without adhering to the default root function signature described previously. In addition,
+ you can declare multiple root functions in the same Renderscript. To do this, use the <code>__attribute__((kernel))</code>
+ attribute to define a custom root function. For example, here's a root function
+ that returns a <code>uchar4</code> and accepts two <code>uint32_t</code> types: </p>
+
+ <pre>
+ uchar4 __attribute__((kernel)) root(uint32_t x, uint32_t y) {
+ ...
+ }
+ </pre>
</li>
<li>An optional <code>init()</code> function. This allows you to do any initialization
- before the <code>root()</code> function runs, such as initializing variables. This
+ before the root function runs, such as initializing variables. This
function runs once and is called automatically when the Renderscript starts, before anything
else in your Renderscript.</li>
@@ -203,6 +231,46 @@
}
</pre>
+<h4>Setting floating point precision</h4>
+<p>You can define the floating point precision required by your compute algorithms. This is useful if you
+ require less precision than the IEEE 754-2008 standard (used by default). You can define
+the floating-point precision level of your script with the following pragmas:</p>
+
+<ul>
+ <li><code>#pragma rs_fp_full</code> (default if nothing is specified): For apps that
+ require floating point precision as outlined by the IEEE 754-2008 standard.
+</li>
+ <li><code>#pragma rs_fp_relaxed</code> - For apps that don’t require
+ strict IEEE 754-2008 compliance and can tolerate less precision. This mode enables
+ flush-to-zero for denorms and round-towards-zero.
+</li>
+ <li><code>#pragma rs_fp_imprecise</code> - For apps that don’t have stringent precision requirements. This mode enables
+ everything in <code>rs_fp_relaxed</code> along with the following:
+<ul>
+ <li>Operations resulting in -0.0 can return +0.0 instead.</li>
+ <li>Operations on INF and NAN are undefined.</li>
+</ul>
+</li>
+</ul>
+
+<h4>Script intrinsics</h4>
+<p>Renderscript adds support for a set of script intrinsics, which are pre-implemented
+filtering primitives that reduce the amount of
+code that you need to write. They also are implemented to ensure that your app gets the
+maximum performance gain possible.</p>
+
+<p>
+Intrinsics are available for the following:
+<ul>
+ <li>{@link android.renderscript.ScriptIntrinsicBlend Blends}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicBlur Blur}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicColorMatrix Color matrix}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicConvolve3x3 3x3 convolve}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicConvolve5x5 5x5 convolve}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicLUT Per-channel lookup table}</li>
+ <li>{@link android.renderscript.ScriptIntrinsicYuvToRGB Converting an Android YUV buffer to RGB}</li>
+</ul>
+
<h3 id="calling">Calling the Renderscript code</h3>
<p>You can call the Renderscript from your Android framework code by
@@ -317,24 +385,15 @@
is optional, but useful if your Renderscript requires additional information other than
the necessary memory allocations.</p>
-<h3>Setting floating point precision</h3>
-<p>You can define the floating point precision required by your compute algorithms. This is useful if you
- require less precision than the IEEE 754-2008 standard (used by default). You can define
-the floating-point precision level of your script with the following pragmas:</p>
-<ul>
- <li><code>#pragma rs_fp_full</code> (default if nothing is specified): For apps that
- require floating point precision as outlined by the IEEE 754-2008 standard.
-</li>
- <li><code>#pragma rs_fp_relaxed</code> - For apps that don’t require
- strict IEEE 754-2008 compliance and can tolerate less precision. This mode enables
- flush-to-zero for denorms and round-towards-zero.
-</li>
- <li><code>#pragma rs_fp_imprecise</code> - For apps that don’t have stringent precision requirements. This mode enables
- everything in <code>rs_fp_relaxed</code> along with the following:
-<ul>
- <li>Operations resulting in -0.0 can return +0.0 instead.</li>
- <li>Operations on INF and NAN are undefined.</li>
-</ul>
-</li>
-</ul>
\ No newline at end of file
+<h4>Script groups</h4>
+
+<p>You can group Renderscript scripts together and execute them all with a single call as though
+they were part of a single script. This allows Renderscript to optimize execution of the scripts
+in ways that it could not do if the scripts were executed individually.</p>
+
+<p>To build a script groupm, use the {@link android.renderscript.ScriptGroup.Builder} class to create a {@link android.renderscript.ScriptGroup}
+defining the operations. At execution time, Renderscript optimizes the run order and the connections between these
+operations for best performance.
+
+<p class="note"><strong>Important:</strong> The script group must be a direct acyclic graph for this feature to work.</p>
diff --git a/docs/html/guide/topics/resources/more-resources.jd b/docs/html/guide/topics/resources/more-resources.jd
index d37b9f8..9fa1a2d 100644
--- a/docs/html/guide/topics/resources/more-resources.jd
+++ b/docs/html/guide/topics/resources/more-resources.jd
@@ -540,7 +540,7 @@
<dt>resource reference:</dt>
<dd>
-In Java: <code>R.array.<em>string_array_name</em></code><br/>
+In Java: <code>R.array.<em>integer_array_name</em></code><br/>
In XML: <code>@[<em>package</em>:]array.<em>integer_array_name</em></code>
</dd>
@@ -565,7 +565,7 @@
<dd><strong>Required.</strong> This must be the root node.
<p>No attributes.</p>
</dd>
- <dt id="integer-array-element"><code><string-array></code></dt>
+ <dt id="integer-array-element"><code><integer-array></code></dt>
<dd>Defines an array of integers. Contains one or more child {@code <item>} elements.
<p class="caps">attributes:</p>
<dl class="atn-list">
diff --git a/docs/html/images/anr.png b/docs/html/images/anr.png
index f6e16ef..46520ef 100644
--- a/docs/html/images/anr.png
+++ b/docs/html/images/anr.png
Binary files differ
diff --git a/docs/html/images/appwidgets/StackWidget.png b/docs/html/images/appwidgets/StackWidget.png
new file mode 100644
index 0000000..f2f83a0
--- /dev/null
+++ b/docs/html/images/appwidgets/StackWidget.png
Binary files differ
diff --git a/docs/html/images/appwidget.png b/docs/html/images/appwidgets/appwidget.png
similarity index 100%
rename from docs/html/images/appwidget.png
rename to docs/html/images/appwidgets/appwidget.png
Binary files differ
diff --git a/docs/html/images/appwidget_collections.png b/docs/html/images/appwidgets/appwidget_collections.png
similarity index 100%
rename from docs/html/images/appwidget_collections.png
rename to docs/html/images/appwidgets/appwidget_collections.png
Binary files differ
diff --git a/docs/html/images/external-display.png b/docs/html/images/external-display.png
new file mode 100644
index 0000000..f71d09f
--- /dev/null
+++ b/docs/html/images/external-display.png
Binary files differ
diff --git a/docs/html/images/gps-analytics.png b/docs/html/images/gps-analytics.png
new file mode 100644
index 0000000..7da0be1
--- /dev/null
+++ b/docs/html/images/gps-analytics.png
Binary files differ
diff --git a/docs/html/images/gps-maps.png b/docs/html/images/gps-maps.png
new file mode 100644
index 0000000..2e2a716
--- /dev/null
+++ b/docs/html/images/gps-maps.png
Binary files differ
diff --git a/docs/html/images/gps-plus.png b/docs/html/images/gps-plus.png
new file mode 100644
index 0000000..630ba0ae
--- /dev/null
+++ b/docs/html/images/gps-plus.png
Binary files differ
diff --git a/docs/html/images/gps-small.png b/docs/html/images/gps-small.png
new file mode 100644
index 0000000..790e483
--- /dev/null
+++ b/docs/html/images/gps-small.png
Binary files differ
diff --git a/docs/html/images/gps.png b/docs/html/images/gps.png
new file mode 100644
index 0000000..84d761d
--- /dev/null
+++ b/docs/html/images/gps.png
Binary files differ
diff --git a/docs/html/images/jb-dev-options-device.png b/docs/html/images/jb-dev-options-device.png
new file mode 100644
index 0000000..6265b34
--- /dev/null
+++ b/docs/html/images/jb-dev-options-device.png
Binary files differ
diff --git a/docs/html/images/jb-device-2.png b/docs/html/images/jb-device-2.png
new file mode 100644
index 0000000..33fda16
--- /dev/null
+++ b/docs/html/images/jb-device-2.png
Binary files differ
diff --git a/docs/html/images/jb-devices.png b/docs/html/images/jb-devices.png
new file mode 100644
index 0000000..e09891f
--- /dev/null
+++ b/docs/html/images/jb-devices.png
Binary files differ
diff --git a/docs/html/images/jb-dream-1.png b/docs/html/images/jb-dream-1.png
new file mode 100644
index 0000000..419ef0b
--- /dev/null
+++ b/docs/html/images/jb-dream-1.png
Binary files differ
diff --git a/docs/html/images/jb-external-display.png b/docs/html/images/jb-external-display.png
new file mode 100644
index 0000000..c3e415b
--- /dev/null
+++ b/docs/html/images/jb-external-display.png
Binary files differ
diff --git a/docs/html/images/jb-lock-calendar.png b/docs/html/images/jb-lock-calendar.png
new file mode 100644
index 0000000..860f6c1
--- /dev/null
+++ b/docs/html/images/jb-lock-calendar.png
Binary files differ
diff --git a/docs/html/images/jb-nexus10-1.png b/docs/html/images/jb-nexus10-1.png
new file mode 100644
index 0000000..2ce53a3e
--- /dev/null
+++ b/docs/html/images/jb-nexus10-1.png
Binary files differ
diff --git a/docs/html/images/jb-rs-chart-gpu.png b/docs/html/images/jb-rs-chart-gpu.png
new file mode 100644
index 0000000..dd67467
--- /dev/null
+++ b/docs/html/images/jb-rs-chart-gpu.png
Binary files differ
diff --git a/docs/html/images/jb-rs-chart-versions.png b/docs/html/images/jb-rs-chart-versions.png
new file mode 100644
index 0000000..764aec1
--- /dev/null
+++ b/docs/html/images/jb-rs-chart-versions.png
Binary files differ
diff --git a/docs/html/images/jb-rtl.png b/docs/html/images/jb-rtl.png
new file mode 100644
index 0000000..a7b8180
--- /dev/null
+++ b/docs/html/images/jb-rtl.png
Binary files differ
diff --git a/docs/html/images/play-services-diagram.graffle/data.plist b/docs/html/images/play-services-diagram.graffle/data.plist
new file mode 100644
index 0000000..837341c
--- /dev/null
+++ b/docs/html/images/play-services-diagram.graffle/data.plist
@@ -0,0 +1,1020 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>ApplicationVersion</key>
+ <array>
+ <string>com.omnigroup.OmniGrafflePro</string>
+ <string>138.33.0.157554</string>
+ </array>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {576, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>CreationDate</key>
+ <string>2012-11-14 22:20:40 +0000</string>
+ <key>Creator</key>
+ <string>Robert Ly</string>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1 0/72 in</string>
+ <key>FileType</key>
+ <string>auto</string>
+ <key>GraphDocumentVersion</key>
+ <integer>8</integer>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{206.5, 311.05804}, {55, 24}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.65</string>
+ <key>w</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>199</integer>
+ <key>Line</key>
+ <dict>
+ <key>ID</key>
+ <integer>198</integer>
+ <key>Offset</key>
+ <real>-2</real>
+ <key>Position</key>
+ <real>0.59412848949432373</real>
+ <key>RotationType</key>
+ <integer>0</integer>
+ </dict>
+ <key>Magnets</key>
+ <array>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>RTFD</key>
+ <data>
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0
+ ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp
+ bmcBlIQBKwdVcGRhdGVzhoQCaUkBB5KEhIQMTlNEaWN0
+ aW9uYXJ5AJSEAWkDkoSWlgdOU0NvbG9yhpKEhIQHTlND
+ b2xvcgCUhAFjA4QCZmYAg2ZmJj+GkoSWlgZOU0ZvbnSG
+ koSEhAZOU0ZvbnQelJkchAVbMjhjXQYAAAAUAAAA//5I
+ AGUAbAB2AGUAdABpAGMAYQCEAWYMmwCbAZsAmwCGkoSW
+ lhBOU1BhcmFncmFwaFN0eWxlhpKEhIQQTlNQYXJhZ3Jh
+ cGhTdHlsZQCUhARDQ0BTAgCEhIQHTlNBcnJheQCUmQyS
+ hISECU5TVGV4dFRhYgCUhAJDZgAchpKEpaQAOIaShKWk
+ AFSGkoSlpABwhpKEpaQAgYwAhpKEpaQAgagAhpKEpaQA
+ gcQAhpKEpaQAgeAAhpKEpaQAgfwAhpKEpaQAgRgBhpKE
+ paQAgTQBhpKEpaQAgVABhoYAhoaG
+ </data>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf2 Updates}</string>
+ <key>alpha</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ <integer>7</integer>
+ <real>0.64999997615814209</real>
+ </array>
+ </array>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>DroidSans</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>ID</key>
+ <integer>198</integer>
+ <key>OrthogonalBarAutomatic</key>
+ <false/>
+ <key>OrthogonalBarPoint</key>
+ <string>{0, 0}</string>
+ <key>OrthogonalBarPosition</key>
+ <real>4.1290435791015625</real>
+ <key>Points</key>
+ <array>
+ <string>{165.58636, 347.00049}</string>
+ <string>{232, 325}</string>
+ <string>{271, 300}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.7</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>HeadArrow</key>
+ <string>0</string>
+ <key>LineType</key>
+ <integer>2</integer>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>1800</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{282.74756, 257.67365}, {273.33658, 82.000977}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>1806</integer>
+ <key>ImageID</key>
+ <integer>8</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>DroidSans</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>1800</integer>
+ <key>Info</key>
+ <integer>4</integer>
+ </dict>
+ <key>ID</key>
+ <integer>196</integer>
+ <key>OrthogonalBarAutomatic</key>
+ <false/>
+ <key>OrthogonalBarPoint</key>
+ <string>{0, 0}</string>
+ <key>OrthogonalBarPosition</key>
+ <real>4.1290435791015625</real>
+ <key>Points</key>
+ <array>
+ <string>{57.379539, 223}</string>
+ <string>{43.586342, 347.00049}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.7</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>LineType</key>
+ <integer>2</integer>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>203</integer>
+ <key>Info</key>
+ <integer>4</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{57.379539, 207}, {94.413635, 32}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.65</string>
+ <key>w</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>203</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.578326</string>
+ <key>g</key>
+ <string>0.578615</string>
+ <key>r</key>
+ <string>0.578453</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>15</real>
+ <key>Pattern</key>
+ <integer>1</integer>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>RTFD</key>
+ <data>
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0
+ ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp
+ bmcBlIQBKw5DbGllbnQgTGlicmFyeYaEAmlJAQ6ShISE
+ DE5TRGljdGlvbmFyeQCUhAFpBJKElpYOTlNPcmlnaW5h
+ bEZvbnSGkoSEhAZOU0ZvbnQelJkchAVbMjhjXQYAAAAU
+ AAAA//5IAGUAbAB2AGUAdABpAGMAYQCEAWYMhAFjAJ0B
+ nQCdAIaShJaWEE5TUGFyYWdyYXBoU3R5bGWGkoSEhBdO
+ U011dGFibGVQYXJhZ3JhcGhTdHlsZQCEhBBOU1BhcmFn
+ cmFwaFN0eWxlAJSEBENDQFMCAIUAhpKElpYGTlNGb250
+ hpKakoSWlgdOU0NvbG9yhpKEhIQHTlNDb2xvcgCUnQOE
+ AmZmAINmZiY/hoaG
+ </data>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf2 Client Library}</string>
+ <key>VerticalPad</key>
+ <integer>10</integer>
+ <key>alpha</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ <integer>14</integer>
+ <real>0.64999997615814209</real>
+ </array>
+ </array>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{43.586342, 306}, {122.00003, 82.000977}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.65</string>
+ <key>w</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans-Bold</string>
+ <key>NSKern</key>
+ <real>0.0</real>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>1800</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.938075</string>
+ <key>g</key>
+ <string>0.938269</string>
+ <key>r</key>
+ <string>0.938154</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.45</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Draws</key>
+ <string>NO</string>
+ <key>Fuzziness</key>
+ <real>0.0</real>
+ <key>ShadowVector</key>
+ <string>{0.5, 2}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.700224</string>
+ <key>g</key>
+ <string>0.700574</string>
+ <key>r</key>
+ <string>0.700377</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>3</real>
+ <key>Width</key>
+ <real>3</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>RTFD</key>
+ <data>
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0
+ ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp
+ bmcBlIQBKxlHb29nbGUgUGxheQpzZXJ2aWNlcyBBUEsK
+ hoQCaUkBGZKEhIQMTlNEaWN0aW9uYXJ5AJSEAWkDkoSW
+ lgdOU0NvbG9yhpKEhIQHTlNDb2xvcgCUhAFjA4QCZmYA
+ g2ZmJj+GkoSWlgZOU0ZvbnSGkoSEhAZOU0ZvbnQelJkc
+ hAVbMjhjXQYAAAAUAAAA//5IAGUAbAB2AGUAdABpAGMA
+ YQCEAWYMmwCbAZsAmwCGkoSWlhBOU1BhcmFncmFwaFN0
+ eWxlhpKEhIQQTlNQYXJhZ3JhcGhTdHlsZQCUhARDQ0BT
+ AgCEhIQHTlNBcnJheQCUmQyShISECU5TVGV4dFRhYgCU
+ hAJDZgAchpKEpaQAOIaShKWkAFSGkoSlpABwhpKEpaQA
+ gYwAhpKEpaQAgagAhpKEpaQAgcQAhpKEpaQAgeAAhpKE
+ paQAgfwAhpKEpaQAgRgBhpKEpaQAgTQBhpKEpaQAgVAB
+ hoYAhoaG
+ </data>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf2 Google Play\
+services APK\
+}</string>
+ <key>VerticalPad</key>
+ <integer>10</integer>
+ <key>alpha</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ <integer>25</integer>
+ <real>0.64999997615814209</real>
+ </array>
+ </array>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>2</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{43.586342, 195}, {122.00003, 82.000977}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.65</string>
+ <key>w</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans-Bold</string>
+ <key>NSKern</key>
+ <real>0.0</real>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>249</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.938075</string>
+ <key>g</key>
+ <string>0.938269</string>
+ <key>r</key>
+ <string>0.938154</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.45</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Draws</key>
+ <string>NO</string>
+ <key>Fuzziness</key>
+ <real>0.0</real>
+ <key>ShadowVector</key>
+ <string>{0.5, 2}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.700224</string>
+ <key>g</key>
+ <string>0.700574</string>
+ <key>r</key>
+ <string>0.700377</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>3</real>
+ <key>Width</key>
+ <real>3</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>RTFD</key>
+ <data>
+ BAtzdHJlYW10eXBlZIHoA4QBQISEhBJOU0F0dHJpYnV0
+ ZWRTdHJpbmcAhIQITlNPYmplY3QAhZKEhIQITlNTdHJp
+ bmcBlIQBKwhZb3VyIEFwcIaEAmlJAQiShISEDE5TRGlj
+ dGlvbmFyeQCUhAFpBJKElpYOTlNPcmlnaW5hbEZvbnSG
+ koSEhAZOU0ZvbnQelJkchAVbMjhjXQYAAAAUAAAA//5I
+ AGUAbAB2AGUAdABpAGMAYQCEAWYMhAFjAJ0BnQCdAIaS
+ hJaWEE5TUGFyYWdyYXBoU3R5bGWGkoSEhBdOU011dGFi
+ bGVQYXJhZ3JhcGhTdHlsZQCEhBBOU1BhcmFncmFwaFN0
+ eWxlAJSEBENDQFMCAIUAhpKElpYGTlNGb250hpKakoSW
+ lgdOU0NvbG9yhpKEhIQHTlNDb2xvcgCUnQOEAmZmAINm
+ ZiY/hoaG
+ </data>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf2 Your App}</string>
+ <key>VerticalPad</key>
+ <integer>10</integer>
+ <key>alpha</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ <integer>8</integer>
+ <real>0.64999997615814209</real>
+ </array>
+ </array>
+ </dict>
+ <key>TextPlacement</key>
+ <integer>2</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{25.847038, 415.18762}, {157.43497, 20.991331}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>1795</integer>
+ <key>ImageID</key>
+ <integer>4</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{167.76729, 156.73196}, {15.743497, 10.058347}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>9</real>
+ </dict>
+ <key>ID</key>
+ <integer>1796</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Align</key>
+ <integer>2</integer>
+ <key>Pad</key>
+ <integer>2</integer>
+ <key>RTFD</key>
+ <data>
+ BAtzdHJlYW10eXBlZIHoA4QBQISE
+ hBJOU0F0dHJpYnV0ZWRTdHJpbmcA
+ hIQITlNPYmplY3QAhZKEhIQITlNT
+ dHJpbmcBlIQBKwQyOjMwhoQCaUkB
+ BJKEhIQMTlNEaWN0aW9uYXJ5AJSE
+ AWkDkoSWlgdOU0NvbG9yhpKEhIQH
+ TlNDb2xvcgCUhAFjAoQEZmZmZoPO
+ zEw+g7a1NT+D5+VlPwGGkoSWlhBO
+ U1BhcmFncmFwaFN0eWxlhpKEhIQQ
+ TlNQYXJhZ3JhcGhTdHlsZQCUhARD
+ Q0BTAQCEhIQHTlNBcnJheQCUmQyS
+ hISECU5TVGV4dFRhYgCUhAJDZgAc
+ hpKEoqEAOIaShKKhAFSGkoSioQBw
+ hpKEoqEAgYwAhpKEoqEAgagAhpKE
+ oqEAgcQAhpKEoqEAgeAAhpKEoqEA
+ gfwAhpKEoqEAgRgBhpKEoqEAgTQB
+ hpKEoqEAgVABhoYAhpKElpYGTlNG
+ b250hpKEhIQGTlNGb250HpSZHIQF
+ WzI4Y10GAAAAFAAAAP/+SABlAGwA
+ dgBlAHQAaQBjAGEAhAFmCJsAmwGb
+ AJsAhoaG
+ </data>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf340
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red45\green166\blue222;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr
+
+\f0\fs16 \cf2 2:30}</string>
+ <key>VerticalPad</key>
+ <integer>2</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{25.847008, 156.29468}, {157.47868, 10.932985}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>1797</integer>
+ <key>ImageID</key>
+ <integer>3</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{10.999992, 113}, {187.17274, 367.34827}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>1798</integer>
+ <key>ImageID</key>
+ <integer>5</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{25.847038, 156.29462}, {157.43497, 279.8844}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>1799</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>1794</integer>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{269.83173, 246.96591}, {299.16827, 99.416443}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>4</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>9</real>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>GuidesLocked</key>
+ <string>NO</string>
+ <key>GuidesVisible</key>
+ <string>YES</string>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>ImageCounter</key>
+ <integer>9</integer>
+ <key>ImageLinkBack</key>
+ <array>
+ <dict/>
+ <dict/>
+ <dict/>
+ <dict/>
+ </array>
+ <key>ImageList</key>
+ <array>
+ <string>image8.tiff</string>
+ <string>image5.pdf</string>
+ <string>image4.png</string>
+ <string>image3.png</string>
+ </array>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>LinksVisible</key>
+ <string>NO</string>
+ <key>MagnetsVisible</key>
+ <string>NO</string>
+ <key>MasterSheets</key>
+ <array/>
+ <key>ModificationDate</key>
+ <string>2012-11-14 23:00:27 +0000</string>
+ <key>Modifier</key>
+ <string>Robert Ly</string>
+ <key>NotesVisible</key>
+ <string>NO</string>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>OriginVisible</key>
+ <string>NO</string>
+ <key>PageBreaks</key>
+ <string>YES</string>
+ <key>PrintInfo</key>
+ <dict>
+ <key>NSBottomMargin</key>
+ <array>
+ <string>float</string>
+ <string>41</string>
+ </array>
+ <key>NSHorizonalPagination</key>
+ <array>
+ <string>int</string>
+ <string>0</string>
+ </array>
+ <key>NSLeftMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSPaperSize</key>
+ <array>
+ <string>coded</string>
+ <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAx7X05TU2l6ZT1mZn2WgWQCgRgDhg==</string>
+ </array>
+ <key>NSPrintReverseOrientation</key>
+ <array>
+ <string>int</string>
+ <string>0</string>
+ </array>
+ <key>NSRightMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSTopMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ </dict>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>ReadOnly</key>
+ <string>NO</string>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 1</string>
+ <key>SmartAlignmentGuidesActive</key>
+ <string>YES</string>
+ <key>SmartDistanceGuidesActive</key>
+ <string>YES</string>
+ <key>UniqueID</key>
+ <integer>1</integer>
+ <key>UseEntirePage</key>
+ <false/>
+ <key>VPages</key>
+ <integer>1</integer>
+ <key>WindowInfo</key>
+ <dict>
+ <key>CurrentSheet</key>
+ <integer>0</integer>
+ <key>ExpandedCanvases</key>
+ <array>
+ <dict>
+ <key>name</key>
+ <string>Canvas 1</string>
+ </dict>
+ </array>
+ <key>ListView</key>
+ <true/>
+ <key>OutlineWidth</key>
+ <integer>142</integer>
+ <key>RightSidebar</key>
+ <false/>
+ <key>ShowRuler</key>
+ <true/>
+ <key>Sidebar</key>
+ <true/>
+ <key>SidebarWidth</key>
+ <integer>120</integer>
+ <key>VisibleRegion</key>
+ <string>{{-392, -138}, {1359, 1010}}</string>
+ <key>Zoom</key>
+ <real>1</real>
+ <key>ZoomValues</key>
+ <array>
+ <array>
+ <string>Canvas 1</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ </array>
+ </dict>
+ <key>saveQuickLookFiles</key>
+ <string>NO</string>
+</dict>
+</plist>
diff --git a/docs/html/images/play-services-diagram.graffle/image3.png b/docs/html/images/play-services-diagram.graffle/image3.png
new file mode 100644
index 0000000..87e38f9
--- /dev/null
+++ b/docs/html/images/play-services-diagram.graffle/image3.png
Binary files differ
diff --git a/docs/html/images/play-services-diagram.graffle/image4.png b/docs/html/images/play-services-diagram.graffle/image4.png
new file mode 100644
index 0000000..89a8bb3
--- /dev/null
+++ b/docs/html/images/play-services-diagram.graffle/image4.png
Binary files differ
diff --git a/docs/html/images/play-services-diagram.graffle/image5.pdf b/docs/html/images/play-services-diagram.graffle/image5.pdf
new file mode 100644
index 0000000..c2baa60
--- /dev/null
+++ b/docs/html/images/play-services-diagram.graffle/image5.pdf
Binary files differ
diff --git a/docs/html/images/play-services-diagram.graffle/image8.tiff b/docs/html/images/play-services-diagram.graffle/image8.tiff
new file mode 100644
index 0000000..c934b78
--- /dev/null
+++ b/docs/html/images/play-services-diagram.graffle/image8.tiff
Binary files differ
diff --git a/docs/html/images/play-services-diagram.png b/docs/html/images/play-services-diagram.png
new file mode 100644
index 0000000..09b9a69
--- /dev/null
+++ b/docs/html/images/play-services-diagram.png
Binary files differ
diff --git a/docs/html/images/testing/UIAutomatorViewer.png b/docs/html/images/testing/UIAutomatorViewer.png
new file mode 100644
index 0000000..5a4aaa4
--- /dev/null
+++ b/docs/html/images/testing/UIAutomatorViewer.png
Binary files differ
diff --git a/docs/html/images/tools/dev-options-inmilk.png b/docs/html/images/tools/dev-options-inmilk.png
new file mode 100644
index 0000000..f0e323e
--- /dev/null
+++ b/docs/html/images/tools/dev-options-inmilk.png
Binary files differ
diff --git a/docs/html/images/training/notifications-bigview.png b/docs/html/images/training/notifications-bigview.png
new file mode 100644
index 0000000..83a5610
--- /dev/null
+++ b/docs/html/images/training/notifications-bigview.png
Binary files differ
diff --git a/docs/html/images/training/notifications-normalview.png b/docs/html/images/training/notifications-normalview.png
new file mode 100644
index 0000000..06ea970
--- /dev/null
+++ b/docs/html/images/training/notifications-normalview.png
Binary files differ
diff --git a/docs/html/index.jd b/docs/html/index.jd
index 1d47ed7..97f12b3 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -17,14 +17,10 @@
<a href="{@docRoot}about/versions/jelly-bean.html"><img src="{@docRoot}images/home/android-jellybean.png" ></a>
</div>
<div class="content-right col-6">
- <h1>Jelly Bean now available!</h1>
- <p>Android 4.1 (Jelly Bean) builds on what's great about Android
- with improvements to performance and user experience.</p>
- <p>New APIs are also available that allow you to build richer and more
- interactive notifications, transfer larger
- payloads through NFC, discover services over Wi-Fi, and much more.</p>
- <p><a href="{@docRoot}about/versions/jelly-bean.html" class="button">More
- about Jelly Bean</a></p>
+ <h1>Android 4.2 Jelly Bean!</h1>
+ <p>The latest version of Jelly Bean is here, with performance optimizations, a refreshed UI, and great new features for developers. </p>
+ <p>Android 4.2 includes APIs for developing lock sceen widgets and Daydream screensavers, using external displays, creating RTL layouts, building flexible UI with nested Fragments, and much more.</p>
+ <p><a href="/about/versions/jelly-bean.html" class="button">Learn More</a></p>
</div>
</li>
<li class="item carousel-home">
diff --git a/docs/html/sdk/api_diff/17/changes.html b/docs/html/sdk/api_diff/17/changes.html
new file mode 100644
index 0000000..f1290b8
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<!-- on Mon Nov 12 19:50:58 PST 2012 -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+API Differences between 16 and 17
+</TITLE>
+<link href="../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</head>
+<frameset cols="242,**" framespacing="1" frameborder="yes" border="1" bordercolor="#e9e9e9">
+<frameset rows="174,**" framespacing="1" frameborder="yes" border="1" bordercolor="#e9e9e9">
+ <frame src="changes/jdiff_topleftframe.html" scrolling="no" name="topleftframe" frameborder="1">
+ <frame src="changes/alldiffs_index_all.html" scrolling="auto" name="bottomleftframe" frameborder="1">
+ </frameset>
+ <frame src="changes/changes-summary.html" scrolling="auto" name="rightframe" frameborder="1">
+</frameset>
+<noframes>
+<h2>
+Frame Alert
+</h2>
+
+<p>
+This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+<br>
+Link to <a href="changes/changes-summary.html" target="_top">Non-frame version.</A>
+</noframes>
+</html>
diff --git a/docs/html/sdk/api_diff/17/changes/alldiffs_index_additions.html b/docs/html/sdk/api_diff/17/changes/alldiffs_index_additions.html
new file mode 100644
index 0000000..e40f4c0
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/alldiffs_index_additions.html
@@ -0,0 +1,1773 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+All Additions Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="alldiffs_index_all.html" xclass="hiddenlink">All Differences</a>
+ <br>
+<A HREF="alldiffs_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<b>Additions</b>
+ <br>
+<A HREF="alldiffs_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<!-- Field ACTION_DREAMING_STARTED -->
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STARTED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STARTED</A>
+</nobr><br>
+<!-- Field ACTION_DREAMING_STOPPED -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STOPPED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STOPPED</A>
+</nobr><br>
+<!-- Field ACTION_IMAGE_CAPTURE_SECURE -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.ACTION_IMAGE_CAPTURE_SECURE" class="hiddenlink" target="rightframe">ACTION_IMAGE_CAPTURE_SECURE</A>
+</nobr><br>
+<!-- Field ACTION_PACKAGE_VERIFIED -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_PACKAGE_VERIFIED" class="hiddenlink" target="rightframe">ACTION_PACKAGE_VERIFIED</A>
+</nobr><br>
+<!-- Field ACTION_QUICK_CLOCK -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_QUICK_CLOCK" class="hiddenlink" target="rightframe">ACTION_QUICK_CLOCK</A>
+</nobr><br>
+<!-- Field ACTION_USER_BACKGROUND -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_BACKGROUND" class="hiddenlink" target="rightframe">ACTION_USER_BACKGROUND</A>
+</nobr><br>
+<!-- Field ACTION_USER_FOREGROUND -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_FOREGROUND" class="hiddenlink" target="rightframe">ACTION_USER_FOREGROUND</A>
+</nobr><br>
+<!-- Field ACTION_USER_INITIALIZE -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_INITIALIZE" class="hiddenlink" target="rightframe">ACTION_USER_INITIALIZE</A>
+</nobr><br>
+<!-- Field AFFECTS_BATTERY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AFFECTS_BATTERY" class="hiddenlink" target="rightframe">AFFECTS_BATTERY</A>
+</nobr><br>
+<!-- Field ALIGN_END -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_END" class="hiddenlink" target="rightframe">ALIGN_END</A>
+</nobr><br>
+<!-- Field ALIGN_PARENT_END -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_END" class="hiddenlink" target="rightframe">ALIGN_PARENT_END</A>
+</nobr><br>
+<!-- Field ALIGN_PARENT_START -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_START" class="hiddenlink" target="rightframe">ALIGN_PARENT_START</A>
+</nobr><br>
+<!-- Field ALIGN_START -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_START" class="hiddenlink" target="rightframe">ALIGN_START</A>
+</nobr><br>
+<!-- Package android.hardware.display -->
+<A HREF="changes-summary.html#android.hardware.display" class="hiddenlink" target="rightframe"><b>android.hardware.display</b></A><br>
+<!-- Package android.service.dreams -->
+<A HREF="changes-summary.html#android.service.dreams" class="hiddenlink" target="rightframe"><b>android.service.dreams</b></A><br>
+<!-- Field APP_INFO -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.APP_INFO" class="hiddenlink" target="rightframe">APP_INFO</A>
+</nobr><br>
+<!-- Method apply -->
+<i>apply</i><br>
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+<!-- Method apply -->
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, int, int, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+<!-- Method applyDisplay -->
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.applyDisplay_added(int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe"><b>applyDisplay</b>
+(<code>int, Rect, Rect, int</code>)</A></nobr><br>
+<!-- Method applyOverrideConfiguration -->
+<nobr><A HREF="android.view.ContextThemeWrapper.html#android.view.ContextThemeWrapper.applyOverrideConfiguration_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe"><b>applyOverrideConfiguration</b>
+(<code>Configuration</code>)</A></nobr><br>
+<!-- Class AtomicFile -->
+<A HREF="pkg_android.util.html#AtomicFile" class="hiddenlink" target="rightframe"><b>AtomicFile</b></A><br>
+<!-- Field AUDIO_SETTINGS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AUDIO_SETTINGS" class="hiddenlink" target="rightframe">AUDIO_SETTINGS</A>
+</nobr><br>
+<!-- Class AutoCompleteTextView.OnDismissListener -->
+<A HREF="pkg_android.widget.html#AutoCompleteTextView.OnDismissListener" class="hiddenlink" target="rightframe"><b><i>AutoCompleteTextView.OnDismissListener</i></b></A><br>
+<!-- Field BATTERY_PLUGGED_WIRELESS -->
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.BatteryManager.html#android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS" class="hiddenlink" target="rightframe">BATTERY_PLUGGED_WIRELESS</A>
+</nobr><br>
+<!-- Method bindAppWidgetIdIfAllowed -->
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.bindAppWidgetIdIfAllowed_added(int, android.content.ComponentName, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>bindAppWidgetIdIfAllowed</b>
+(<code>int, ComponentName, Bundle</code>)</A></nobr><br>
+<!-- Field BLUETOOTH_NETWORK -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BLUETOOTH_NETWORK" class="hiddenlink" target="rightframe">BLUETOOTH_NETWORK</A>
+</nobr><br>
+<!-- Field BOOKMARKS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BOOKMARKS" class="hiddenlink" target="rightframe">BOOKMARKS</A>
+</nobr><br>
+<!-- Field CALENDAR -->
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CALENDAR" class="hiddenlink" target="rightframe">CALENDAR</A>
+</nobr><br>
+<!-- Method call -->
+<nobr><A HREF="android.content.ContentProviderClient.html#android.content.ContentProviderClient.call_added(java.lang.String, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>call</b>
+(<code>String, String, Bundle</code>)</A></nobr><br>
+<!-- Field CAMERA -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CAMERA" class="hiddenlink" target="rightframe">CAMERA</A>
+</nobr><br>
+<!-- Field canDisableShutterSound -->
+<nobr><A HREF="android.hardware.Camera.CameraInfo.html#android.hardware.Camera.CameraInfo.canDisableShutterSound" class="hiddenlink" target="rightframe">canDisableShutterSound</A>
+</nobr><br>
+<!-- Class CellIdentityCdma -->
+<A HREF="pkg_android.telephony.html#CellIdentityCdma" class="hiddenlink" target="rightframe"><b>CellIdentityCdma</b></A><br>
+<!-- Class CellIdentityGsm -->
+<A HREF="pkg_android.telephony.html#CellIdentityGsm" class="hiddenlink" target="rightframe"><b>CellIdentityGsm</b></A><br>
+<!-- Class CellIdentityLte -->
+<A HREF="pkg_android.telephony.html#CellIdentityLte" class="hiddenlink" target="rightframe"><b>CellIdentityLte</b></A><br>
+<!-- Class CellInfo -->
+<A HREF="pkg_android.telephony.html#CellInfo" class="hiddenlink" target="rightframe"><b>CellInfo</b></A><br>
+<!-- Class CellInfoCdma -->
+<A HREF="pkg_android.telephony.html#CellInfoCdma" class="hiddenlink" target="rightframe"><b>CellInfoCdma</b></A><br>
+<!-- Class CellInfoGsm -->
+<A HREF="pkg_android.telephony.html#CellInfoGsm" class="hiddenlink" target="rightframe"><b>CellInfoGsm</b></A><br>
+<!-- Class CellInfoLte -->
+<A HREF="pkg_android.telephony.html#CellInfoLte" class="hiddenlink" target="rightframe"><b>CellInfoLte</b></A><br>
+<!-- Class CellSignalStrength -->
+<A HREF="pkg_android.telephony.html#CellSignalStrength" class="hiddenlink" target="rightframe"><b>CellSignalStrength</b></A><br>
+<!-- Class CellSignalStrengthCdma -->
+<A HREF="pkg_android.telephony.html#CellSignalStrengthCdma" class="hiddenlink" target="rightframe"><b>CellSignalStrengthCdma</b></A><br>
+<!-- Class CellSignalStrengthGsm -->
+<A HREF="pkg_android.telephony.html#CellSignalStrengthGsm" class="hiddenlink" target="rightframe"><b>CellSignalStrengthGsm</b></A><br>
+<!-- Class CellSignalStrengthLte -->
+<A HREF="pkg_android.telephony.html#CellSignalStrengthLte" class="hiddenlink" target="rightframe"><b>CellSignalStrengthLte</b></A><br>
+<!-- Field checkedTextViewStyle -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.checkedTextViewStyle" class="hiddenlink" target="rightframe">checkedTextViewStyle</A>
+</nobr><br>
+<!-- Field CONFIG_DENSITY -->
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_DENSITY" class="hiddenlink" target="rightframe">CONFIG_DENSITY</A>
+</nobr><br>
+<!-- Field CONFIG_LAYOUT_DIRECTION -->
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_LAYOUT_DIRECTION" class="hiddenlink" target="rightframe">CONFIG_LAYOUT_DIRECTION</A>
+</nobr><br>
+<!-- Method convertQuartSecToDecDegrees -->
+<nobr><A HREF="android.telephony.cdma.CdmaCellLocation.html#android.telephony.cdma.CdmaCellLocation.convertQuartSecToDecDegrees_added(int)" class="hiddenlink" target="rightframe"><b>convertQuartSecToDecDegrees</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method createBitmap -->
+<i>createBitmap</i><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<!-- Method createBitmap -->
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<!-- Method createBitmap -->
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<!-- Method createConfigurationContext -->
+<i>createConfigurationContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method createConfigurationContext -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method createConfigurationContext -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method createDisplayContext -->
+<i>createDisplayContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method createDisplayContext -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method createDisplayContext -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method createFieldID -->
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createFieldID_added(int, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createFieldID</b>
+(<code>int, Element</code>)</A></nobr><br>
+<!-- Method createKernelID -->
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createKernelID_added(int, int, android.renderscript.Element, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createKernelID</b>
+(<code>int, int, Element, Element</code>)</A></nobr><br>
+<!-- Field DENSITY_DPI_UNDEFINED -->
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.DENSITY_DPI_UNDEFINED" class="hiddenlink" target="rightframe">DENSITY_DPI_UNDEFINED</A>
+</nobr><br>
+<!-- Field densityDpi -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
+</nobr><br>
+<!-- Field DEVICE_ALARMS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DEVICE_ALARMS" class="hiddenlink" target="rightframe">DEVICE_ALARMS</A>
+</nobr><br>
+<!-- Method dispatchGenericMotionEvent -->
+<i>dispatchGenericMotionEvent</i><br>
+ <nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html#android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl
+</A></nobr><br>
+<!-- Method dispatchGenericMotionEvent -->
+ <nobr><A HREF="android.view.inputmethod.InputMethodSession.html#android.view.inputmethod.InputMethodSession.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.view.inputmethod.InputMethodSession
+</A></nobr><br>
+<!-- Field DISPLAY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DISPLAY" class="hiddenlink" target="rightframe">DISPLAY</A>
+</nobr><br>
+<!-- Field DISPLAY_SERVICE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.DISPLAY_SERVICE" class="hiddenlink" target="rightframe">DISPLAY_SERVICE</A>
+</nobr><br>
+<!-- Class EGL14 -->
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.opengl.html#EGL14" class="hiddenlink" target="rightframe"><b>EGL14</b></A><br>
+<!-- Class EGLConfig -->
+<A HREF="pkg_android.opengl.html#EGLConfig" class="hiddenlink" target="rightframe"><b>EGLConfig</b></A><br>
+<!-- Class EGLContext -->
+<A HREF="pkg_android.opengl.html#EGLContext" class="hiddenlink" target="rightframe"><b>EGLContext</b></A><br>
+<!-- Class EGLDisplay -->
+<A HREF="pkg_android.opengl.html#EGLDisplay" class="hiddenlink" target="rightframe"><b>EGLDisplay</b></A><br>
+<!-- Class EGLObjectHandle -->
+<A HREF="pkg_android.opengl.html#EGLObjectHandle" class="hiddenlink" target="rightframe"><b>EGLObjectHandle</b></A><br>
+<!-- Class EGLSurface -->
+<A HREF="pkg_android.opengl.html#EGLSurface" class="hiddenlink" target="rightframe"><b>EGLSurface</b></A><br>
+<!-- Method elapsedRealtimeNanos -->
+<nobr><A HREF="android.os.SystemClock.html#android.os.SystemClock.elapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>elapsedRealtimeNanos</b>
+()</A></nobr><br>
+<!-- Method enableHardwareAcceleration -->
+<nobr><A HREF="android.inputmethodservice.InputMethodService.html#android.inputmethodservice.InputMethodService.enableHardwareAcceleration_added()" class="hiddenlink" target="rightframe"><b>enableHardwareAcceleration</b>
+()</A></nobr><br>
+<!-- Method enableShutterSound -->
+<nobr><A HREF="android.hardware.Camera.html#android.hardware.Camera.enableShutterSound_added(boolean)" class="hiddenlink" target="rightframe"><b>enableShutterSound</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Field END_OF -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.END_OF" class="hiddenlink" target="rightframe">END_OF</A>
+</nobr><br>
+<!-- Method equals -->
+<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.equals_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>equals</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<!-- Method exp -->
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.exp_added(float)" class="hiddenlink" target="rightframe"><b>exp</b>
+(<code>float</code>)</A></nobr><br>
+<!-- Method extendVerificationTimeout -->
+<i>extendVerificationTimeout</i><br>
+ <nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.content.pm.PackageManager
+</A></nobr><br>
+<!-- Method extendVerificationTimeout -->
+ <nobr><A HREF="android.test.mock.MockPackageManager.html#android.test.mock.MockPackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.test.mock.MockPackageManager
+</A></nobr><br>
+<!-- Field EXTRA_NETWORK_TYPE -->
+<nobr><A HREF="android.net.ConnectivityManager.html#android.net.ConnectivityManager.EXTRA_NETWORK_TYPE" class="hiddenlink" target="rightframe">EXTRA_NETWORK_TYPE</A>
+</nobr><br>
+<!-- Field EXTRA_ORIGINATING_URI -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_ORIGINATING_URI" class="hiddenlink" target="rightframe">EXTRA_ORIGINATING_URI</A>
+</nobr><br>
+<!-- Field EXTRA_REFERRER -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_REFERRER" class="hiddenlink" target="rightframe">EXTRA_REFERRER</A>
+</nobr><br>
+<!-- Field EXTRA_VERIFICATION_RESULT -->
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.EXTRA_VERIFICATION_RESULT" class="hiddenlink" target="rightframe">EXTRA_VERIFICATION_RESULT</A>
+</nobr><br>
+<!-- Field FEATURE_CAMERA_ANY -->
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.FEATURE_CAMERA_ANY" class="hiddenlink" target="rightframe">FEATURE_CAMERA_ANY</A>
+</nobr><br>
+<!-- Field FEEDBACK_BRAILLE -->
+<nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html#android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_BRAILLE" class="hiddenlink" target="rightframe">FEEDBACK_BRAILLE</A>
+</nobr><br>
+<!-- Field FLAG_COSTS_MONEY -->
+<nobr><A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.FLAG_COSTS_MONEY" class="hiddenlink" target="rightframe">FLAG_COSTS_MONEY</A>
+</nobr><br>
+<!-- Field FLAG_INSTALLED -->
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_INSTALLED" class="hiddenlink" target="rightframe">FLAG_INSTALLED</A>
+</nobr><br>
+<!-- Field FLAG_IS_DATA_ONLY -->
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_IS_DATA_ONLY" class="hiddenlink" target="rightframe">FLAG_IS_DATA_ONLY</A>
+</nobr><br>
+<!-- Field FLAG_PERSONAL_INFO -->
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.FLAG_PERSONAL_INFO" class="hiddenlink" target="rightframe">FLAG_PERSONAL_INFO</A>
+</nobr><br>
+<!-- Field FLAG_SECURE -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SECURE" class="hiddenlink" target="rightframe">FLAG_SECURE</A>
+</nobr><br>
+<!-- Field FLAG_SINGLE_USER -->
+<i>FLAG_SINGLE_USER</i><br>
+<nobr> in
+<A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A>
+</nobr><br>
+<!-- Field FLAG_SINGLE_USER -->
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<!-- Field FLAG_SINGLE_USER -->
+<nobr> in
+<A HREF="android.content.pm.ServiceInfo.html#android.content.pm.ServiceInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ServiceInfo</A>
+</nobr><br>
+<!-- Field FLAG_SUPPORTS_PROTECTED_BUFFERS -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SUPPORTS_PROTECTED_BUFFERS" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_PROTECTED_BUFFERS</A>
+</nobr><br>
+<!-- Field FLAG_SUPPORTS_RTL -->
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_SUPPORTS_RTL" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_RTL</A>
+</nobr><br>
+<!-- Field flags -->
+<i>flags</i><br>
+<nobr> in
+<A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionGroupInfo</A>
+</nobr><br>
+<!-- Field flags -->
+<nobr> in
+<A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionInfo</A>
+</nobr><br>
+<!-- Field flags -->
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<!-- Field format12Hour -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.format12Hour" class="hiddenlink" target="rightframe">format12Hour</A>
+</nobr><br>
+<!-- Field format24Hour -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.format24Hour" class="hiddenlink" target="rightframe">format24Hour</A>
+</nobr><br>
+<!-- Method generateViewId -->
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.View.html#android.view.View.generateViewId_added()" class="hiddenlink" target="rightframe"><b>generateViewId</b>
+()</A></nobr><br>
+<!-- Method getAbsoluteGravity -->
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.getAbsoluteGravity_added(int, int)" class="hiddenlink" target="rightframe"><b>getAbsoluteGravity</b>
+(<code>int, int</code>)</A></nobr><br>
+<!-- Method getAllCellInfo -->
+<nobr><A HREF="android.telephony.TelephonyManager.html#android.telephony.TelephonyManager.getAllCellInfo_added()" class="hiddenlink" target="rightframe"><b>getAllCellInfo</b>
+()</A></nobr><br>
+<!-- Method getAnimateFirstView -->
+<nobr><A HREF="android.widget.ViewAnimator.html#android.widget.ViewAnimator.getAnimateFirstView_added()" class="hiddenlink" target="rightframe"><b>getAnimateFirstView</b>
+()</A></nobr><br>
+<!-- Method getCallingUserHandle -->
+<nobr><A HREF="android.os.Binder.html#android.os.Binder.getCallingUserHandle_added()" class="hiddenlink" target="rightframe"><b>getCallingUserHandle</b>
+()</A></nobr><br>
+<!-- Method getChildFragmentManager -->
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getChildFragmentManager_added()" class="hiddenlink" target="rightframe"><b>getChildFragmentManager</b>
+()</A></nobr><br>
+<!-- Method getCompoundDrawablesRelative -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundDrawablesRelative_added()" class="hiddenlink" target="rightframe"><b>getCompoundDrawablesRelative</b>
+()</A></nobr><br>
+<!-- Method getCompoundPaddingEnd -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingEnd</b>
+()</A></nobr><br>
+<!-- Method getCompoundPaddingStart -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingStart</b>
+()</A></nobr><br>
+<!-- Method getCreatorPackage -->
+<i>getCreatorPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getCreatorPackage -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getCreatorUid -->
+<i>getCreatorUid</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getCreatorUid -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getCreatorUserHandle -->
+<i>getCreatorUserHandle</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getCreatorUserHandle -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getDefaultUserAgent -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getDefaultUserAgent_added(android.content.Context)" class="hiddenlink" target="rightframe"><b>getDefaultUserAgent</b>
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getDisplay -->
+<nobr><A HREF="android.view.View.html#android.view.View.getDisplay_added()" class="hiddenlink" target="rightframe"><b>getDisplay</b>
+()</A></nobr><br>
+<!-- Method getElapsedRealtimeNanos -->
+<nobr><A HREF="android.location.Location.html#android.location.Location.getElapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>getElapsedRealtimeNanos</b>
+()</A></nobr><br>
+<!-- Method getFlags -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getFlags_added()" class="hiddenlink" target="rightframe"><b>getFlags</b>
+()</A></nobr><br>
+<!-- Method getKeyguardDisabledFeatures -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.getKeyguardDisabledFeatures_added(android.content.ComponentName)" class="hiddenlink" target="rightframe"><b>getKeyguardDisabledFeatures</b>
+(<code>ComponentName</code>)</A></nobr><br>
+<!-- Method getLabeledBy -->
+<nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabeledBy_added()" class="hiddenlink" target="rightframe"><b>getLabeledBy</b>
+()</A></nobr><br>
+<!-- Method getLabelFor -->
+<i>getLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+<!-- Method getLabelFor -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method getLayoutDirection -->
+<i>getLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.res.Configuration
+</A></nobr><br>
+<!-- Method getLayoutDirection -->
+ <nobr><A HREF="android.view.View.html#android.view.View.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+<!-- Method getLayoutDirection -->
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<!-- Method getLayoutDirectionFromLocale -->
+<nobr><A HREF="android.text.TextUtils.html#android.text.TextUtils.getLayoutDirectionFromLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>getLayoutDirectionFromLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<!-- Method getMarginEnd -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginEnd_added()" class="hiddenlink" target="rightframe"><b>getMarginEnd</b>
+()</A></nobr><br>
+<!-- Method getMarginStart -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginStart_added()" class="hiddenlink" target="rightframe"><b>getMarginStart</b>
+()</A></nobr><br>
+<!-- Method getMediaPlaybackRequiresUserGesture -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getMediaPlaybackRequiresUserGesture_added()" class="hiddenlink" target="rightframe"><b>getMediaPlaybackRequiresUserGesture</b>
+()</A></nobr><br>
+<!-- Method getName -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getName_added()" class="hiddenlink" target="rightframe"><b>getName</b>
+()</A></nobr><br>
+<!-- Method getPaddingEnd -->
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getPaddingEnd</b>
+()</A></nobr><br>
+<!-- Method getPaddingStart -->
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getPaddingStart</b>
+()</A></nobr><br>
+<!-- Method getParentFragment -->
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getParentFragment_added()" class="hiddenlink" target="rightframe"><b>getParentFragment</b>
+()</A></nobr><br>
+<!-- Method getPresentationDisplay -->
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.getPresentationDisplay_added()" class="hiddenlink" target="rightframe"><b>getPresentationDisplay</b>
+()</A></nobr><br>
+<!-- Method getProperty -->
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.getProperty_added(java.lang.String)" class="hiddenlink" target="rightframe"><b>getProperty</b>
+(<code>String</code>)</A></nobr><br>
+<!-- Method getRealMetrics -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealMetrics_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>getRealMetrics</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<!-- Method getRealSize -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealSize_added(android.graphics.Point)" class="hiddenlink" target="rightframe"><b>getRealSize</b>
+(<code>Point</code>)</A></nobr><br>
+<!-- Method getRegisteredCallbackCount -->
+<nobr><A HREF="android.os.RemoteCallbackList.html#android.os.RemoteCallbackList.getRegisteredCallbackCount_added()" class="hiddenlink" target="rightframe"><b>getRegisteredCallbackCount</b>
+()</A></nobr><br>
+<!-- Method getTextAlignment -->
+<nobr><A HREF="android.view.View.html#android.view.View.getTextAlignment_added()" class="hiddenlink" target="rightframe"><b>getTextAlignment</b>
+()</A></nobr><br>
+<!-- Method getTextDirection -->
+<nobr><A HREF="android.view.View.html#android.view.View.getTextDirection_added()" class="hiddenlink" target="rightframe"><b>getTextDirection</b>
+()</A></nobr><br>
+<!-- Method getTextLocale -->
+<i>getTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.graphics.Paint
+</A></nobr><br>
+<!-- Method getTextLocale -->
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Method getTotalPaddingEnd -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingEnd</b>
+()</A></nobr><br>
+<!-- Method getTotalPaddingStart -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingStart</b>
+()</A></nobr><br>
+<!-- Method glGetActiveAttrib -->
+<i>glGetActiveAttrib</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetActiveAttrib -->
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetActiveUniform -->
+<i>glGetActiveUniform</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetActiveUniform -->
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetShaderSource -->
+<nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetShaderSource_added(int)" class="hiddenlink" target="rightframe"><b>glGetShaderSource</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Field GLOBAL_ACTION_QUICK_SETTINGS -->
+<nobr><A HREF="android.accessibilityservice.AccessibilityService.html#android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_QUICK_SETTINGS" class="hiddenlink" target="rightframe">GLOBAL_ACTION_QUICK_SETTINGS</A>
+</nobr><br>
+<!-- Method hasMipMap -->
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.hasMipMap_added()" class="hiddenlink" target="rightframe"><b>hasMipMap</b>
+()</A></nobr><br>
+<!-- Method hasResourceWallpaper -->
+<nobr><A HREF="android.app.WallpaperManager.html#android.app.WallpaperManager.hasResourceWallpaper_added(int)" class="hiddenlink" target="rightframe"><b>hasResourceWallpaper</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method hypot -->
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.hypot_added(float, float)" class="hiddenlink" target="rightframe"><b>hypot</b>
+(<code>float, float</code>)</A></nobr><br>
+<!-- Field initialKeyguardLayout -->
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>initialKeyguardLayout</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<!-- Field initialKeyguardLayout -->
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<!-- Constructor InputMethodSubtype -->
+<nobr><A HREF="android.view.inputmethod.InputMethodSubtype.html#android.view.inputmethod.InputMethodSubtype.ctor_added(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)" class="hiddenlink" target="rightframe"><b>InputMethodSubtype</b>
+(<code>int, int, String, String, String, boolean, boolean, int</code>)</A></nobr> constructor<br>
+<!-- Field INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE" class="hiddenlink" target="rightframe">INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE</A>
+</nobr><br>
+<!-- Field INTENT_ACTION_TEXT_OPEN_FROM_SEARCH -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_TEXT_OPEN_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_TEXT_OPEN_FROM_SEARCH</A>
+</nobr><br>
+<!-- Field INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH</A>
+</nobr><br>
+<!-- Field IS_ORGANIZER -->
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.IS_ORGANIZER" class="hiddenlink" target="rightframe">IS_ORGANIZER</A>
+</nobr><br>
+<!-- Field IS_PRIMARY -->
+<nobr><A HREF="android.provider.CalendarContract.CalendarColumns.html#android.provider.CalendarContract.CalendarColumns.IS_PRIMARY" class="hiddenlink" target="rightframe">IS_PRIMARY</A>
+</nobr><br>
+<!-- Method isDestroyed -->
+<i>isDestroyed</i><br>
+ <nobr><A HREF="android.app.Activity.html#android.app.Activity.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.Activity
+</A></nobr><br>
+<!-- Method isDestroyed -->
+ <nobr><A HREF="android.app.FragmentManager.html#android.app.FragmentManager.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.FragmentManager
+</A></nobr><br>
+<!-- Method isEnabled -->
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.isEnabled_added()" class="hiddenlink" target="rightframe"><b>isEnabled</b>
+()</A></nobr><br>
+<!-- Method isMarginRelative -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.isMarginRelative_added()" class="hiddenlink" target="rightframe"><b>isMarginRelative</b>
+()</A></nobr><br>
+<!-- Method isPaddingRelative -->
+<nobr><A HREF="android.view.View.html#android.view.View.isPaddingRelative_added()" class="hiddenlink" target="rightframe"><b>isPaddingRelative</b>
+()</A></nobr><br>
+<!-- Method isPremultiplied -->
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.isPremultiplied_added()" class="hiddenlink" target="rightframe"><b>isPremultiplied</b>
+()</A></nobr><br>
+<!-- Method isValid -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.isValid_added()" class="hiddenlink" target="rightframe"><b>isValid</b>
+()</A></nobr><br>
+<!-- Class JavascriptInterface -->
+<A NAME="J"></A>
+<br><font size="+2">J</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#JavascriptInterface" class="hiddenlink" target="rightframe"><b>JavascriptInterface</b></A><br>
+<!-- Field JELLY_BEAN_MR1 -->
+<nobr><A HREF="android.os.Build.VERSION_CODES.html#android.os.Build.VERSION_CODES.JELLY_BEAN_MR1" class="hiddenlink" target="rightframe">JELLY_BEAN_MR1</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_FEATURES_ALL -->
+<A NAME="K"></A>
+<br><font size="+2">K</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_ALL</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_FEATURES_NONE -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_NONE</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_SECURE_CAMERA -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_SECURE_CAMERA</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_WIDGETS_ALL -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_WIDGETS_ALL</A>
+</nobr><br>
+<!-- Field labelFor -->
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.R.attr.html#android.R.attr.labelFor" class="hiddenlink" target="rightframe">labelFor</A>
+</nobr><br>
+<!-- Field layout_alignEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignEnd" class="hiddenlink" target="rightframe">layout_alignEnd</A>
+</nobr><br>
+<!-- Field layout_alignParentEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentEnd" class="hiddenlink" target="rightframe">layout_alignParentEnd</A>
+</nobr><br>
+<!-- Field layout_alignParentStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentStart" class="hiddenlink" target="rightframe">layout_alignParentStart</A>
+</nobr><br>
+<!-- Field layout_alignStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignStart" class="hiddenlink" target="rightframe">layout_alignStart</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_INHERIT -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_INHERIT</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_LOCALE -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LOCALE</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_LTR -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LTR" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LTR</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_RTL -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_RTL" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_RTL</A>
+</nobr><br>
+<!-- Field layout_marginEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginEnd" class="hiddenlink" target="rightframe">layout_marginEnd</A>
+</nobr><br>
+<!-- Field layout_marginStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginStart" class="hiddenlink" target="rightframe">layout_marginStart</A>
+</nobr><br>
+<!-- Field layout_toEndOf -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toEndOf" class="hiddenlink" target="rightframe">layout_toEndOf</A>
+</nobr><br>
+<!-- Field layout_toStartOf -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toStartOf" class="hiddenlink" target="rightframe">layout_toStartOf</A>
+</nobr><br>
+<!-- Field layoutDirection -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layoutDirection" class="hiddenlink" target="rightframe">layoutDirection</A>
+</nobr><br>
+<!-- Field LIMIT_PARAM_KEY -->
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.LIMIT_PARAM_KEY" class="hiddenlink" target="rightframe">LIMIT_PARAM_KEY</A>
+</nobr><br>
+<!-- Field LISTEN_CELL_INFO -->
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.LISTEN_CELL_INFO" class="hiddenlink" target="rightframe">LISTEN_CELL_INFO</A>
+</nobr><br>
+<!-- Field listPreferredItemPaddingEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingEnd" class="hiddenlink" target="rightframe">listPreferredItemPaddingEnd</A>
+</nobr><br>
+<!-- Field listPreferredItemPaddingStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingStart" class="hiddenlink" target="rightframe">listPreferredItemPaddingStart</A>
+</nobr><br>
+<!-- Class LocaleSpan -->
+<A HREF="pkg_android.text.style.html#LocaleSpan" class="hiddenlink" target="rightframe"><b>LocaleSpan</b></A><br>
+<!-- Field MAXIMUM_VERIFICATION_TIMEOUT -->
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.MAXIMUM_VERIFICATION_TIMEOUT" class="hiddenlink" target="rightframe">MAXIMUM_VERIFICATION_TIMEOUT</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_IO -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_IO" class="hiddenlink" target="rightframe">MEDIA_ERROR_IO</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_MALFORMED -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_MALFORMED" class="hiddenlink" target="rightframe">MEDIA_ERROR_MALFORMED</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_SERVER_DIED -->
+<nobr><A HREF="android.media.MediaRecorder.html#android.media.MediaRecorder.MEDIA_ERROR_SERVER_DIED" class="hiddenlink" target="rightframe">MEDIA_ERROR_SERVER_DIED</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_TIMED_OUT -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_TIMED_OUT" class="hiddenlink" target="rightframe">MEDIA_ERROR_TIMED_OUT</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_UNSUPPORTED -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_UNSUPPORTED" class="hiddenlink" target="rightframe">MEDIA_ERROR_UNSUPPORTED</A>
+</nobr><br>
+<!-- Field MEDIA_INFO_VIDEO_RENDERING_START -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START" class="hiddenlink" target="rightframe">MEDIA_INFO_VIDEO_RENDERING_START</A>
+</nobr><br>
+<!-- Field METADATA_KEY_VIDEO_ROTATION -->
+<nobr><A HREF="android.media.MediaMetadataRetriever.html#android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION" class="hiddenlink" target="rightframe">METADATA_KEY_VIDEO_ROTATION</A>
+</nobr><br>
+<!-- Field MICROPHONE -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.MICROPHONE" class="hiddenlink" target="rightframe">MICROPHONE</A>
+</nobr><br>
+<!-- Method myUserHandle -->
+<nobr><A HREF="android.os.Process.html#android.os.Process.myUserHandle_added()" class="hiddenlink" target="rightframe"><b>myUserHandle</b>
+()</A></nobr><br>
+<!-- Class NfcBarcode -->
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.nfc.tech.html#NfcBarcode" class="hiddenlink" target="rightframe"><b>NfcBarcode</b></A><br>
+<!-- Field OFFSET_PARAM_KEY -->
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.OFFSET_PARAM_KEY" class="hiddenlink" target="rightframe">OFFSET_PARAM_KEY</A>
+</nobr><br>
+<!-- Method onCellInfoChanged -->
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.onCellInfoChanged_added(java.util.List<android.telephony.CellInfo>)" class="hiddenlink" target="rightframe"><b>onCellInfoChanged</b>
+(<code>List<CellInfo></code>)</A></nobr><br>
+<!-- Method onGenericMotionEvent -->
+<nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.html#android.inputmethodservice.AbstractInputMethodService.onGenericMotionEvent_added(android.view.MotionEvent)" class="hiddenlink" target="rightframe"><b>onGenericMotionEvent</b>
+(<code>MotionEvent</code>)</A></nobr><br>
+<!-- Method onProvidersChanged -->
+<nobr><A HREF="android.appwidget.AppWidgetHost.html#android.appwidget.AppWidgetHost.onProvidersChanged_added()" class="hiddenlink" target="rightframe"><b>onProvidersChanged</b>
+()</A></nobr><br>
+<!-- Method onRoutePresentationDisplayChanged -->
+<nobr><A HREF="android.media.MediaRouter.Callback.html#android.media.MediaRouter.Callback.onRoutePresentationDisplayChanged_added(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)" class="hiddenlink" target="rightframe"><b>onRoutePresentationDisplayChanged</b>
+(<code>MediaRouter, RouteInfo</code>)</A></nobr><br>
+<!-- Method onRtlPropertiesChanged -->
+<nobr><A HREF="android.view.View.html#android.view.View.onRtlPropertiesChanged_added(int)" class="hiddenlink" target="rightframe"><b>onRtlPropertiesChanged</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method onViewStateRestored -->
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.onViewStateRestored_added(android.os.Bundle)" class="hiddenlink" target="rightframe"><b>onViewStateRestored</b>
+(<code>Bundle</code>)</A></nobr><br>
+<!-- Field OPTION_APPWIDGET_HOST_CATEGORY -->
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY" class="hiddenlink" target="rightframe">OPTION_APPWIDGET_HOST_CATEGORY</A>
+</nobr><br>
+<!-- Field paddingEnd -->
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingEnd" class="hiddenlink" target="rightframe">paddingEnd</A>
+</nobr><br>
+<!-- Field paddingStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingStart" class="hiddenlink" target="rightframe">paddingStart</A>
+</nobr><br>
+<!-- Field permissionFlags -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionFlags" class="hiddenlink" target="rightframe">permissionFlags</A>
+</nobr><br>
+<!-- Field permissionGroupFlags -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionGroupFlags" class="hiddenlink" target="rightframe">permissionGroupFlags</A>
+</nobr><br>
+<!-- Method pow -->
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.pow_added(float, float)" class="hiddenlink" target="rightframe"><b>pow</b>
+(<code>float, float</code>)</A></nobr><br>
+<!-- Class Presentation -->
+<A HREF="pkg_android.app.html#Presentation" class="hiddenlink" target="rightframe"><b>Presentation</b></A><br>
+<!-- Field presentationTheme -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.presentationTheme" class="hiddenlink" target="rightframe">presentationTheme</A>
+</nobr><br>
+<!-- Field priority -->
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.priority" class="hiddenlink" target="rightframe">priority</A>
+</nobr><br>
+<!-- Field PROPERTY_OUTPUT_FRAMES_PER_BUFFER -->
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_FRAMES_PER_BUFFER</A>
+</nobr><br>
+<!-- Field PROPERTY_OUTPUT_SAMPLE_RATE -->
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_SAMPLE_RATE</A>
+</nobr><br>
+<!-- Method removeRule -->
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.RelativeLayout.LayoutParams.html#android.widget.RelativeLayout.LayoutParams.removeRule_added(int)" class="hiddenlink" target="rightframe"><b>removeRule</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method removeStickyBroadcastAsUser -->
+<i>removeStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method removeStickyBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method removeStickyBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Constructor ResolveInfo -->
+<nobr><A HREF="android.content.pm.ResolveInfo.html#android.content.pm.ResolveInfo.ctor_added(android.content.pm.ResolveInfo)" class="hiddenlink" target="rightframe"><b>ResolveInfo</b>
+(<code>ResolveInfo</code>)</A></nobr> constructor<br>
+<!-- Method resolveLayoutDirection -->
+<nobr><A HREF="android.view.ViewGroup.LayoutParams.html#android.view.ViewGroup.LayoutParams.resolveLayoutDirection_added(int)" class="hiddenlink" target="rightframe"><b>resolveLayoutDirection</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Field ROUTE_TYPE_LIVE_VIDEO -->
+<nobr><A HREF="android.media.MediaRouter.html#android.media.MediaRouter.ROUTE_TYPE_LIVE_VIDEO" class="hiddenlink" target="rightframe">ROUTE_TYPE_LIVE_VIDEO</A>
+</nobr><br>
+<!-- Field SCENE_MODE_HDR -->
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.hardware.Camera.Parameters.html#android.hardware.Camera.Parameters.SCENE_MODE_HDR" class="hiddenlink" target="rightframe">SCENE_MODE_HDR</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_LTR -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_LTR" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_LTR</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_MASK -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_MASK" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_MASK</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_RTL -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_RTL" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_RTL</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_SHIFT -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_SHIFT" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_SHIFT</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_UNDEFINED -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_UNDEFINED</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_UNDEFINED -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_UNDEFINED</A>
+</nobr><br>
+<!-- Field SCREENLOCK -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SCREENLOCK" class="hiddenlink" target="rightframe">SCREENLOCK</A>
+</nobr><br>
+<!-- Class Script.FieldID -->
+<A HREF="pkg_android.renderscript.html#Script.FieldID" class="hiddenlink" target="rightframe"><b>Script.FieldID</b></A><br>
+<!-- Class Script.KernelID -->
+<A HREF="pkg_android.renderscript.html#Script.KernelID" class="hiddenlink" target="rightframe"><b>Script.KernelID</b></A><br>
+<!-- Class ScriptGroup -->
+<A HREF="pkg_android.renderscript.html#ScriptGroup" class="hiddenlink" target="rightframe"><b>ScriptGroup</b></A><br>
+<!-- Class ScriptGroup.Builder -->
+<A HREF="pkg_android.renderscript.html#ScriptGroup.Builder" class="hiddenlink" target="rightframe"><b>ScriptGroup.Builder</b></A><br>
+<!-- Class ScriptIntrinsic -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsic" class="hiddenlink" target="rightframe"><b>ScriptIntrinsic</b></A><br>
+<!-- Class ScriptIntrinsicBlend -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlend" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlend</b></A><br>
+<!-- Class ScriptIntrinsicBlur -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlur" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlur</b></A><br>
+<!-- Class ScriptIntrinsicColorMatrix -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicColorMatrix" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicColorMatrix</b></A><br>
+<!-- Class ScriptIntrinsicConvolve3x3 -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve3x3" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve3x3</b></A><br>
+<!-- Class ScriptIntrinsicConvolve5x5 -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve5x5" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve5x5</b></A><br>
+<!-- Class ScriptIntrinsicLUT -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicLUT" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicLUT</b></A><br>
+<!-- Class ScriptIntrinsicYuvToRGB -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicYuvToRGB" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicYuvToRGB</b></A><br>
+<!-- Method sendBroadcastAsUser -->
+<i>sendBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendOrderedBroadcastAsUser -->
+<i>sendOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendStickyBroadcastAsUser -->
+<i>sendStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendStickyBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendStickyBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendStickyOrderedBroadcastAsUser -->
+<i>sendStickyOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendStickyOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendStickyOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method setCompoundDrawablesRelative -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelative_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setCompoundDrawablesRelative</b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</A></nobr><br>
+<!-- Method setCompoundDrawablesRelativeWithIntrinsicBounds -->
+<i>setCompoundDrawablesRelativeWithIntrinsicBounds</i><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe">type <b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Method setCompoundDrawablesRelativeWithIntrinsicBounds -->
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(int, int, int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, int</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Method setElapsedRealtimeNanos -->
+<nobr><A HREF="android.location.Location.html#android.location.Location.setElapsedRealtimeNanos_added(long)" class="hiddenlink" target="rightframe"><b>setElapsedRealtimeNanos</b>
+(<code>long</code>)</A></nobr><br>
+<!-- Method setHasMipMap -->
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.setHasMipMap_added(boolean)" class="hiddenlink" target="rightframe"><b>setHasMipMap</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setHostname -->
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setHostname_added(java.net.Socket, java.lang.String)" class="hiddenlink" target="rightframe"><b>setHostname</b>
+(<code>Socket, String</code>)</A></nobr><br>
+<!-- Method setKeyguardDisabledFeatures -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.setKeyguardDisabledFeatures_added(android.content.ComponentName, int)" class="hiddenlink" target="rightframe"><b>setKeyguardDisabledFeatures</b>
+(<code>ComponentName, int</code>)</A></nobr><br>
+<!-- Method setLabeledBy -->
+<i>setLabeledBy</i><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabeledBy -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabelFor -->
+<i>setLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setLabelFor_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+<!-- Method setLabelFor -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabelFor -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabelFor -->
+ <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setLabelFor_added(int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int</code>)</b> in android.widget.RemoteViews
+</A></nobr><br>
+<!-- Method setLayerPaint -->
+<nobr><A HREF="android.view.View.html#android.view.View.setLayerPaint_added(android.graphics.Paint)" class="hiddenlink" target="rightframe"><b>setLayerPaint</b>
+(<code>Paint</code>)</A></nobr><br>
+<!-- Method setLayoutDirection -->
+<i>setLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLayoutDirection_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.content.res.Configuration
+</A></nobr><br>
+<!-- Method setLayoutDirection -->
+ <nobr><A HREF="android.view.View.html#android.view.View.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+<!-- Method setLayoutDirection -->
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<!-- Method setLocale -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>setLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<!-- Method setMarginEnd -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginEnd_added(int)" class="hiddenlink" target="rightframe"><b>setMarginEnd</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setMarginStart -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginStart_added(int)" class="hiddenlink" target="rightframe"><b>setMarginStart</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setMediaPlaybackRequiresUserGesture -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setMediaPlaybackRequiresUserGesture_added(boolean)" class="hiddenlink" target="rightframe"><b>setMediaPlaybackRequiresUserGesture</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setOnDismissListener -->
+<i>setOnDismissListener</i><br>
+ <nobr><A HREF="android.app.AlertDialog.Builder.html#android.app.AlertDialog.Builder.setOnDismissListener_added(android.content.DialogInterface.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.app.AlertDialog.Builder
+</A></nobr><br>
+<!-- Method setOnDismissListener -->
+ <nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setOnDismissListener_added(android.widget.AutoCompleteTextView.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.widget.AutoCompleteTextView
+</A></nobr><br>
+<!-- Method setOnInfoListener -->
+<nobr><A HREF="android.widget.VideoView.html#android.widget.VideoView.setOnInfoListener_added(android.media.MediaPlayer.OnInfoListener)" class="hiddenlink" target="rightframe"><b>setOnInfoListener</b>
+(<code>OnInfoListener</code>)</A></nobr><br>
+<!-- Method setPaddingRelative -->
+<nobr><A HREF="android.view.View.html#android.view.View.setPaddingRelative_added(int, int, int, int)" class="hiddenlink" target="rightframe"><b>setPaddingRelative</b>
+(<code>int, int, int, int</code>)</A></nobr><br>
+<!-- Method setSecure -->
+<nobr><A HREF="android.view.SurfaceView.html#android.view.SurfaceView.setSecure_added(boolean)" class="hiddenlink" target="rightframe"><b>setSecure</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setShowWhen -->
+<nobr><A HREF="android.app.Notification.Builder.html#android.app.Notification.Builder.setShowWhen_added(boolean)" class="hiddenlink" target="rightframe"><b>setShowWhen</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setText -->
+<nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setText_added(java.lang.CharSequence, boolean)" class="hiddenlink" target="rightframe"><b>setText</b>
+(<code>CharSequence, boolean</code>)</A></nobr><br>
+<!-- Method setTextAlignment -->
+<nobr><A HREF="android.view.View.html#android.view.View.setTextAlignment_added(int)" class="hiddenlink" target="rightframe"><b>setTextAlignment</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setTextDirection -->
+<nobr><A HREF="android.view.View.html#android.view.View.setTextDirection_added(int)" class="hiddenlink" target="rightframe"><b>setTextDirection</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setTextLocale -->
+<i>setTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.graphics.Paint
+</A></nobr><br>
+<!-- Method setTextLocale -->
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Class Settings.Global -->
+<A HREF="pkg_android.provider.html#Settings.Global" class="hiddenlink" target="rightframe"><b>Settings.Global</b></A><br>
+<!-- Method setUseSessionTickets -->
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setUseSessionTickets_added(java.net.Socket, boolean)" class="hiddenlink" target="rightframe"><b>setUseSessionTickets</b>
+(<code>Socket, boolean</code>)</A></nobr><br>
+<!-- Field showOnLockScreen -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.showOnLockScreen" class="hiddenlink" target="rightframe">showOnLockScreen</A>
+</nobr><br>
+<!-- Field singleUser -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.singleUser" class="hiddenlink" target="rightframe">singleUser</A>
+</nobr><br>
+<!-- Field SOCIAL_INFO -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SOCIAL_INFO" class="hiddenlink" target="rightframe">SOCIAL_INFO</A>
+</nobr><br>
+<!-- Field STANDALONE_MONTH -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.STANDALONE_MONTH" class="hiddenlink" target="rightframe">STANDALONE_MONTH</A>
+</nobr><br>
+<!-- Field START_OF -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.START_OF" class="hiddenlink" target="rightframe">START_OF</A>
+</nobr><br>
+<!-- Field STATUS_BAR -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.STATUS_BAR" class="hiddenlink" target="rightframe">STATUS_BAR</A>
+</nobr><br>
+<!-- Field subtypeId -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.subtypeId" class="hiddenlink" target="rightframe">subtypeId</A>
+</nobr><br>
+<!-- Field supportsRtl -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.supportsRtl" class="hiddenlink" target="rightframe">supportsRtl</A>
+</nobr><br>
+<!-- Field SYNC_SETTINGS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYNC_SETTINGS" class="hiddenlink" target="rightframe">SYNC_SETTINGS</A>
+</nobr><br>
+<!-- Field SYSTEM_CLOCK -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYSTEM_CLOCK" class="hiddenlink" target="rightframe">SYSTEM_CLOCK</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_CENTER -->
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_CENTER" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_CENTER</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_GRAVITY -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_GRAVITY" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_GRAVITY</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_TEXT_END -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_END</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_TEXT_START -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_START</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_VIEW_END -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_END</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_VIEW_START -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_START</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_ANY_RTL -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_ANY_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_ANY_RTL</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_FIRST_STRONG -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_FIRST_STRONG" class="hiddenlink" target="rightframe">TEXT_DIRECTION_FIRST_STRONG</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_INHERIT -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">TEXT_DIRECTION_INHERIT</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_LOCALE -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LOCALE</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_LTR -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LTR" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LTR</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_RTL -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_RTL</A>
+</nobr><br>
+<!-- Field textAlignment -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.textAlignment" class="hiddenlink" target="rightframe">textAlignment</A>
+</nobr><br>
+<!-- Class TextClock -->
+<A HREF="pkg_android.widget.html#TextClock" class="hiddenlink" target="rightframe"><b>TextClock</b></A><br>
+<!-- Field textDirection -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.textDirection" class="hiddenlink" target="rightframe">textDirection</A>
+</nobr><br>
+<!-- Field timestamp -->
+<nobr><A HREF="android.net.wifi.ScanResult.html#android.net.wifi.ScanResult.timestamp" class="hiddenlink" target="rightframe">timestamp</A>
+</nobr><br>
+<!-- Field timeZone -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.timeZone" class="hiddenlink" target="rightframe">timeZone</A>
+</nobr><br>
+<!-- Method trimToSize -->
+<nobr><A HREF="android.util.LruCache.html#android.util.LruCache.trimToSize_added(int)" class="hiddenlink" target="rightframe"><b>trimToSize</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Field TYPE_GESTURE_DETECTION_END -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_END" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_END</A>
+</nobr><br>
+<!-- Field TYPE_GESTURE_DETECTION_START -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_START" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_START</A>
+</nobr><br>
+<!-- Field TYPE_TOUCH_INTERACTION_END -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_END" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_END</A>
+</nobr><br>
+<!-- Field TYPE_TOUCH_INTERACTION_START -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_START" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_START</A>
+</nobr><br>
+<!-- Field UID_2445 -->
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.UID_2445" class="hiddenlink" target="rightframe">UID_2445</A>
+</nobr><br>
+<!-- Field USER_DICTIONARY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.USER_DICTIONARY" class="hiddenlink" target="rightframe">USER_DICTIONARY</A>
+</nobr><br>
+<!-- Field USER_SERVICE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.USER_SERVICE" class="hiddenlink" target="rightframe">USER_SERVICE</A>
+</nobr><br>
+<!-- Class UserHandle -->
+<A HREF="pkg_android.os.html#UserHandle" class="hiddenlink" target="rightframe"><b>UserHandle</b></A><br>
+<!-- Class UserManager -->
+<A HREF="pkg_android.os.html#UserManager" class="hiddenlink" target="rightframe"><b>UserManager</b></A><br>
+<!-- Field USES_POLICY_DISABLE_KEYGUARD_FEATURES -->
+<nobr><A HREF="android.app.admin.DeviceAdminInfo.html#android.app.admin.DeviceAdminInfo.USES_POLICY_DISABLE_KEYGUARD_FEATURES" class="hiddenlink" target="rightframe">USES_POLICY_DISABLE_KEYGUARD_FEATURES</A>
+</nobr><br>
+<!-- Field VOICEMAIL -->
+<A NAME="V"></A>
+<br><font size="+2">V</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.VOICEMAIL" class="hiddenlink" target="rightframe">VOICEMAIL</A>
+</nobr><br>
+<!-- Method wakeUp -->
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.wakeUp_added(long)" class="hiddenlink" target="rightframe"><b>wakeUp</b>
+(<code>long</code>)</A></nobr><br>
+<!-- Field WALLPAPER -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WALLPAPER" class="hiddenlink" target="rightframe">WALLPAPER</A>
+</nobr><br>
+<!-- Field WIDGET_CATEGORY_HOME_SCREEN -->
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_HOME_SCREEN</A>
+</nobr><br>
+<!-- Field WIDGET_CATEGORY_KEYGUARD -->
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_KEYGUARD</A>
+</nobr><br>
+<!-- Field Widget_DeviceDefault_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_CheckedTextView</A>
+</nobr><br>
+<!-- Field Widget_DeviceDefault_Light_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_Light_CheckedTextView</A>
+</nobr><br>
+<!-- Field Widget_Holo_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_CheckedTextView</A>
+</nobr><br>
+<!-- Field Widget_Holo_Light_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_Light_CheckedTextView</A>
+</nobr><br>
+<!-- Field widgetCategory -->
+<i>widgetCategory</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.widgetCategory" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<!-- Field widgetCategory -->
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.widgetCategory" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<!-- Class WindowManager.InvalidDisplayException -->
+<A HREF="pkg_android.view.html#WindowManager.InvalidDisplayException" class="hiddenlink" target="rightframe"><b>WindowManager.InvalidDisplayException</b></A><br>
+<!-- Field WRITE_USER_DICTIONARY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WRITE_USER_DICTIONARY" class="hiddenlink" target="rightframe">WRITE_USER_DICTIONARY</A>
+</nobr><br>
+<!-- Class X509TrustManagerExtensions -->
+<A NAME="X"></A>
+<br><font size="+2">X</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.net.http.html#X509TrustManagerExtensions" class="hiddenlink" target="rightframe"><b>X509TrustManagerExtensions</b></A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/alldiffs_index_all.html b/docs/html/sdk/api_diff/17/changes/alldiffs_index_all.html
new file mode 100644
index 0000000..7b7dddc
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/alldiffs_index_all.html
@@ -0,0 +1,2469 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+All Differences Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<b>All Differences</b>
+ <br>
+<A HREF="alldiffs_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="alldiffs_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="alldiffs_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<!-- Field ABBREV_MONTH_FORMAT -->
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.ABBREV_MONTH_FORMAT" class="hiddenlink" target="rightframe">ABBREV_MONTH_FORMAT</A>
+</nobr><br>
+<!-- Class AbstractInputMethodService -->
+<A HREF="android.inputmethodservice.AbstractInputMethodService.html" class="hiddenlink" target="rightframe">AbstractInputMethodService</A><br>
+<!-- Class AbstractInputMethodService.AbstractInputMethodSessionImpl -->
+<A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html" class="hiddenlink" target="rightframe">AbstractInputMethodService.AbstractInputMethodSessionImpl</A><br>
+<!-- Class AccessibilityEvent -->
+<A HREF="android.view.accessibility.AccessibilityEvent.html" class="hiddenlink" target="rightframe">AccessibilityEvent</A><br>
+<!-- Class AccessibilityNodeInfo -->
+<A HREF="android.view.accessibility.AccessibilityNodeInfo.html" class="hiddenlink" target="rightframe">AccessibilityNodeInfo</A><br>
+<!-- Class AccessibilityService -->
+<A HREF="android.accessibilityservice.AccessibilityService.html" class="hiddenlink" target="rightframe">AccessibilityService</A><br>
+<!-- Class AccessibilityServiceInfo -->
+<A HREF="android.accessibilityservice.AccessibilityServiceInfo.html" class="hiddenlink" target="rightframe">AccessibilityServiceInfo</A><br>
+<!-- Field ACTION_DREAMING_STARTED -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STARTED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STARTED</A>
+</nobr><br>
+<!-- Field ACTION_DREAMING_STOPPED -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STOPPED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STOPPED</A>
+</nobr><br>
+<!-- Field ACTION_IMAGE_CAPTURE_SECURE -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.ACTION_IMAGE_CAPTURE_SECURE" class="hiddenlink" target="rightframe">ACTION_IMAGE_CAPTURE_SECURE</A>
+</nobr><br>
+<!-- Field ACTION_PACKAGE_VERIFIED -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_PACKAGE_VERIFIED" class="hiddenlink" target="rightframe">ACTION_PACKAGE_VERIFIED</A>
+</nobr><br>
+<!-- Field ACTION_QUICK_CLOCK -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_QUICK_CLOCK" class="hiddenlink" target="rightframe">ACTION_QUICK_CLOCK</A>
+</nobr><br>
+<!-- Field ACTION_USER_BACKGROUND -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_BACKGROUND" class="hiddenlink" target="rightframe">ACTION_USER_BACKGROUND</A>
+</nobr><br>
+<!-- Field ACTION_USER_FOREGROUND -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_FOREGROUND" class="hiddenlink" target="rightframe">ACTION_USER_FOREGROUND</A>
+</nobr><br>
+<!-- Field ACTION_USER_INITIALIZE -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_INITIALIZE" class="hiddenlink" target="rightframe">ACTION_USER_INITIALIZE</A>
+</nobr><br>
+<!-- Class Activity -->
+<A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
+<!-- Class ActivityInfo -->
+<A HREF="android.content.pm.ActivityInfo.html" class="hiddenlink" target="rightframe">ActivityInfo</A><br>
+<!-- Field ADB_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ADB_ENABLED" class="hiddenlink" target="rightframe">ADB_ENABLED</A>
+</nobr><br>
+<!-- Field AFFECTS_BATTERY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AFFECTS_BATTERY" class="hiddenlink" target="rightframe">AFFECTS_BATTERY</A>
+</nobr><br>
+<!-- Field AIRPLANE_MODE_ON -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_ON" class="hiddenlink" target="rightframe">AIRPLANE_MODE_ON</A>
+</nobr><br>
+<!-- Field AIRPLANE_MODE_RADIOS -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_RADIOS" class="hiddenlink" target="rightframe">AIRPLANE_MODE_RADIOS</A>
+</nobr><br>
+<!-- Class AlertDialog.Builder -->
+<A HREF="android.app.AlertDialog.Builder.html" class="hiddenlink" target="rightframe">AlertDialog.Builder</A><br>
+<!-- Field ALIGN_END -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_END" class="hiddenlink" target="rightframe">ALIGN_END</A>
+</nobr><br>
+<!-- Field ALIGN_PARENT_END -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_END" class="hiddenlink" target="rightframe">ALIGN_PARENT_END</A>
+</nobr><br>
+<!-- Field ALIGN_PARENT_START -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_START" class="hiddenlink" target="rightframe">ALIGN_PARENT_START</A>
+</nobr><br>
+<!-- Field ALIGN_START -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_START" class="hiddenlink" target="rightframe">ALIGN_START</A>
+</nobr><br>
+<!-- Field ALWAYS_FINISH_ACTIVITIES -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ALWAYS_FINISH_ACTIVITIES" class="hiddenlink" target="rightframe">ALWAYS_FINISH_ACTIVITIES</A>
+</nobr><br>
+<!-- Package android -->
+<A HREF="pkg_android.html" class="hiddenlink" target="rightframe">android</A><br>
+<!-- Package android.accessibilityservice -->
+<A HREF="pkg_android.accessibilityservice.html" class="hiddenlink" target="rightframe">android.accessibilityservice</A><br>
+<!-- Package android.app -->
+<A HREF="pkg_android.app.html" class="hiddenlink" target="rightframe">android.app</A><br>
+<!-- Package android.app.admin -->
+<A HREF="pkg_android.app.admin.html" class="hiddenlink" target="rightframe">android.app.admin</A><br>
+<!-- Package android.appwidget -->
+<A HREF="pkg_android.appwidget.html" class="hiddenlink" target="rightframe">android.appwidget</A><br>
+<!-- Package android.bluetooth -->
+<A HREF="pkg_android.bluetooth.html" class="hiddenlink" target="rightframe">android.bluetooth</A><br>
+<!-- Package android.content -->
+<A HREF="pkg_android.content.html" class="hiddenlink" target="rightframe">android.content</A><br>
+<!-- Package android.content.pm -->
+<A HREF="pkg_android.content.pm.html" class="hiddenlink" target="rightframe">android.content.pm</A><br>
+<!-- Package android.content.res -->
+<A HREF="pkg_android.content.res.html" class="hiddenlink" target="rightframe">android.content.res</A><br>
+<!-- Package android.database -->
+<A HREF="pkg_android.database.html" class="hiddenlink" target="rightframe">android.database</A><br>
+<!-- Package android.graphics -->
+<A HREF="pkg_android.graphics.html" class="hiddenlink" target="rightframe">android.graphics</A><br>
+<!-- Package android.hardware -->
+<A HREF="pkg_android.hardware.html" class="hiddenlink" target="rightframe">android.hardware</A><br>
+<!-- Package android.hardware.display -->
+<A HREF="changes-summary.html#android.hardware.display" class="hiddenlink" target="rightframe"><b>android.hardware.display</b></A><br>
+<!-- Package android.inputmethodservice -->
+<A HREF="pkg_android.inputmethodservice.html" class="hiddenlink" target="rightframe">android.inputmethodservice</A><br>
+<!-- Package android.location -->
+<A HREF="pkg_android.location.html" class="hiddenlink" target="rightframe">android.location</A><br>
+<!-- Package android.media -->
+<A HREF="pkg_android.media.html" class="hiddenlink" target="rightframe">android.media</A><br>
+<!-- Package android.net -->
+<A HREF="pkg_android.net.html" class="hiddenlink" target="rightframe">android.net</A><br>
+<!-- Package android.net.http -->
+<A HREF="pkg_android.net.http.html" class="hiddenlink" target="rightframe">android.net.http</A><br>
+<!-- Package android.net.wifi -->
+<A HREF="pkg_android.net.wifi.html" class="hiddenlink" target="rightframe">android.net.wifi</A><br>
+<!-- Package android.nfc.tech -->
+<A HREF="pkg_android.nfc.tech.html" class="hiddenlink" target="rightframe">android.nfc.tech</A><br>
+<!-- Package android.opengl -->
+<A HREF="pkg_android.opengl.html" class="hiddenlink" target="rightframe">android.opengl</A><br>
+<!-- Package android.os -->
+<A HREF="pkg_android.os.html" class="hiddenlink" target="rightframe">android.os</A><br>
+<!-- Package android.provider -->
+<A HREF="pkg_android.provider.html" class="hiddenlink" target="rightframe">android.provider</A><br>
+<!-- Package android.renderscript -->
+<A HREF="pkg_android.renderscript.html" class="hiddenlink" target="rightframe">android.renderscript</A><br>
+<!-- Package android.service.dreams -->
+<A HREF="changes-summary.html#android.service.dreams" class="hiddenlink" target="rightframe"><b>android.service.dreams</b></A><br>
+<!-- Package android.telephony -->
+<A HREF="pkg_android.telephony.html" class="hiddenlink" target="rightframe">android.telephony</A><br>
+<!-- Package android.telephony.cdma -->
+<A HREF="pkg_android.telephony.cdma.html" class="hiddenlink" target="rightframe">android.telephony.cdma</A><br>
+<!-- Package android.test.mock -->
+<A HREF="pkg_android.test.mock.html" class="hiddenlink" target="rightframe">android.test.mock</A><br>
+<!-- Package android.text -->
+<A HREF="pkg_android.text.html" class="hiddenlink" target="rightframe">android.text</A><br>
+<!-- Package android.text.format -->
+<A HREF="pkg_android.text.format.html" class="hiddenlink" target="rightframe">android.text.format</A><br>
+<!-- Package android.text.style -->
+<A HREF="pkg_android.text.style.html" class="hiddenlink" target="rightframe">android.text.style</A><br>
+<!-- Package android.util -->
+<A HREF="pkg_android.util.html" class="hiddenlink" target="rightframe">android.util</A><br>
+<!-- Package android.view -->
+<A HREF="pkg_android.view.html" class="hiddenlink" target="rightframe">android.view</A><br>
+<!-- Package android.view.accessibility -->
+<A HREF="pkg_android.view.accessibility.html" class="hiddenlink" target="rightframe">android.view.accessibility</A><br>
+<!-- Package android.view.inputmethod -->
+<A HREF="pkg_android.view.inputmethod.html" class="hiddenlink" target="rightframe">android.view.inputmethod</A><br>
+<!-- Package android.webkit -->
+<A HREF="pkg_android.webkit.html" class="hiddenlink" target="rightframe">android.webkit</A><br>
+<!-- Package android.widget -->
+<A HREF="pkg_android.widget.html" class="hiddenlink" target="rightframe">android.widget</A><br>
+<!-- Field ANIMATOR_DURATION_SCALE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ANIMATOR_DURATION_SCALE" class="hiddenlink" target="rightframe">ANIMATOR_DURATION_SCALE</A>
+</nobr><br>
+<!-- Field APP_INFO -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.APP_INFO" class="hiddenlink" target="rightframe">APP_INFO</A>
+</nobr><br>
+<!-- Class ApplicationInfo -->
+<A HREF="android.content.pm.ApplicationInfo.html" class="hiddenlink" target="rightframe">ApplicationInfo</A><br>
+<!-- Method apply -->
+<i>apply</i><br>
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+<!-- Method apply -->
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, int, int, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+<!-- Method applyDisplay -->
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.applyDisplay_added(int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe"><b>applyDisplay</b>
+(<code>int, Rect, Rect, int</code>)</A></nobr><br>
+<!-- Method applyOverrideConfiguration -->
+<nobr><A HREF="android.view.ContextThemeWrapper.html#android.view.ContextThemeWrapper.applyOverrideConfiguration_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe"><b>applyOverrideConfiguration</b>
+(<code>Configuration</code>)</A></nobr><br>
+<!-- Class AppWidgetHost -->
+<A HREF="android.appwidget.AppWidgetHost.html" class="hiddenlink" target="rightframe">AppWidgetHost</A><br>
+<!-- Class AppWidgetManager -->
+<A HREF="android.appwidget.AppWidgetManager.html" class="hiddenlink" target="rightframe">AppWidgetManager</A><br>
+<!-- Class AppWidgetProviderInfo -->
+<A HREF="android.appwidget.AppWidgetProviderInfo.html" class="hiddenlink" target="rightframe">AppWidgetProviderInfo</A><br>
+<!-- Class AtomicFile -->
+<A HREF="pkg_android.util.html#AtomicFile" class="hiddenlink" target="rightframe"><b>AtomicFile</b></A><br>
+<!-- Field AUDIO_SETTINGS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AUDIO_SETTINGS" class="hiddenlink" target="rightframe">AUDIO_SETTINGS</A>
+</nobr><br>
+<!-- Class AudioManager -->
+<A HREF="android.media.AudioManager.html" class="hiddenlink" target="rightframe">AudioManager</A><br>
+<!-- Field AUTO_TIME -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME" class="hiddenlink" target="rightframe">AUTO_TIME</A>
+</nobr><br>
+<!-- Field AUTO_TIME_ZONE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME_ZONE" class="hiddenlink" target="rightframe">AUTO_TIME_ZONE</A>
+</nobr><br>
+<!-- Class AutoCompleteTextView -->
+<A HREF="android.widget.AutoCompleteTextView.html" class="hiddenlink" target="rightframe">AutoCompleteTextView</A><br>
+<!-- Class AutoCompleteTextView.OnDismissListener -->
+<A HREF="pkg_android.widget.html#AutoCompleteTextView.OnDismissListener" class="hiddenlink" target="rightframe"><b><i>AutoCompleteTextView.OnDismissListener</i></b></A><br>
+<!-- Field BATTERY_PLUGGED_WIRELESS -->
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.BatteryManager.html#android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS" class="hiddenlink" target="rightframe">BATTERY_PLUGGED_WIRELESS</A>
+</nobr><br>
+<!-- Class BatteryManager -->
+<A HREF="android.os.BatteryManager.html" class="hiddenlink" target="rightframe">BatteryManager</A><br>
+<!-- Method bindAppWidgetIdIfAllowed -->
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.bindAppWidgetIdIfAllowed_added(int, android.content.ComponentName, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>bindAppWidgetIdIfAllowed</b>
+(<code>int, ComponentName, Bundle</code>)</A></nobr><br>
+<!-- Class Binder -->
+<A HREF="android.os.Binder.html" class="hiddenlink" target="rightframe">Binder</A><br>
+<!-- Class Bitmap -->
+<A HREF="android.graphics.Bitmap.html" class="hiddenlink" target="rightframe">Bitmap</A><br>
+<!-- Field BLUETOOTH_NETWORK -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BLUETOOTH_NETWORK" class="hiddenlink" target="rightframe">BLUETOOTH_NETWORK</A>
+</nobr><br>
+<!-- Field BLUETOOTH_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.BLUETOOTH_ON" class="hiddenlink" target="rightframe">BLUETOOTH_ON</A>
+</nobr><br>
+<!-- Class BluetoothA2dp -->
+<A HREF="android.bluetooth.BluetoothA2dp.html" class="hiddenlink" target="rightframe">BluetoothA2dp</A><br>
+<!-- Field BOOKMARKS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BOOKMARKS" class="hiddenlink" target="rightframe">BOOKMARKS</A>
+</nobr><br>
+<!-- Class Build.VERSION_CODES -->
+<A HREF="android.os.Build.VERSION_CODES.html" class="hiddenlink" target="rightframe">Build.VERSION_CODES</A><br>
+<!-- Class CacheManager -->
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#CacheManager" class="hiddenlink" target="rightframe"><strike>CacheManager</strike></A><br>
+<!-- Class CacheManager.CacheResult -->
+<A HREF="pkg_android.webkit.html#CacheManager.CacheResult" class="hiddenlink" target="rightframe"><strike>CacheManager.CacheResult</strike></A><br>
+<!-- Field CALENDAR -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CALENDAR" class="hiddenlink" target="rightframe">CALENDAR</A>
+</nobr><br>
+<!-- Class CalendarContract.CalendarColumns -->
+<A HREF="android.provider.CalendarContract.CalendarColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.CalendarColumns</i></A><br>
+<!-- Class CalendarContract.EventsColumns -->
+<A HREF="android.provider.CalendarContract.EventsColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.EventsColumns</i></A><br>
+<!-- Method call -->
+<nobr><A HREF="android.content.ContentProviderClient.html#android.content.ContentProviderClient.call_added(java.lang.String, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>call</b>
+(<code>String, String, Bundle</code>)</A></nobr><br>
+<!-- Class CallLog.Calls -->
+<A HREF="android.provider.CallLog.Calls.html" class="hiddenlink" target="rightframe">CallLog.Calls</A><br>
+<!-- Class Camera -->
+<A HREF="android.hardware.Camera.html" class="hiddenlink" target="rightframe">Camera</A><br>
+<!-- Field CAMERA -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CAMERA" class="hiddenlink" target="rightframe">CAMERA</A>
+</nobr><br>
+<!-- Class Camera.CameraInfo -->
+<A HREF="android.hardware.Camera.CameraInfo.html" class="hiddenlink" target="rightframe">Camera.CameraInfo</A><br>
+<!-- Class Camera.Parameters -->
+<A HREF="android.hardware.Camera.Parameters.html" class="hiddenlink" target="rightframe">Camera.Parameters</A><br>
+<!-- Field canDisableShutterSound -->
+<nobr><A HREF="android.hardware.Camera.CameraInfo.html#android.hardware.Camera.CameraInfo.canDisableShutterSound" class="hiddenlink" target="rightframe">canDisableShutterSound</A>
+</nobr><br>
+<!-- Method canZoomIn -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomIn_changed()" class="hiddenlink" target="rightframe">canZoomIn
+()</A></nobr><br>
+<!-- Method canZoomOut -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomOut_changed()" class="hiddenlink" target="rightframe">canZoomOut
+()</A></nobr><br>
+<!-- Class CdmaCellLocation -->
+<A HREF="android.telephony.cdma.CdmaCellLocation.html" class="hiddenlink" target="rightframe">CdmaCellLocation</A><br>
+<!-- Class CellIdentityCdma -->
+<A HREF="pkg_android.telephony.html#CellIdentityCdma" class="hiddenlink" target="rightframe"><b>CellIdentityCdma</b></A><br>
+<!-- Class CellIdentityGsm -->
+<A HREF="pkg_android.telephony.html#CellIdentityGsm" class="hiddenlink" target="rightframe"><b>CellIdentityGsm</b></A><br>
+<!-- Class CellIdentityLte -->
+<A HREF="pkg_android.telephony.html#CellIdentityLte" class="hiddenlink" target="rightframe"><b>CellIdentityLte</b></A><br>
+<!-- Class CellInfo -->
+<A HREF="pkg_android.telephony.html#CellInfo" class="hiddenlink" target="rightframe"><b>CellInfo</b></A><br>
+<!-- Class CellInfoCdma -->
+<A HREF="pkg_android.telephony.html#CellInfoCdma" class="hiddenlink" target="rightframe"><b>CellInfoCdma</b></A><br>
+<!-- Class CellInfoGsm -->
+<A HREF="pkg_android.telephony.html#CellInfoGsm" class="hiddenlink" target="rightframe"><b>CellInfoGsm</b></A><br>
+<!-- Class CellInfoLte -->
+<A HREF="pkg_android.telephony.html#CellInfoLte" class="hiddenlink" target="rightframe"><b>CellInfoLte</b></A><br>
+<!-- Class CellSignalStrength -->
+<A HREF="pkg_android.telephony.html#CellSignalStrength" class="hiddenlink" target="rightframe"><b>CellSignalStrength</b></A><br>
+<!-- Class CellSignalStrengthCdma -->
+<A HREF="pkg_android.telephony.html#CellSignalStrengthCdma" class="hiddenlink" target="rightframe"><b>CellSignalStrengthCdma</b></A><br>
+<!-- Class CellSignalStrengthGsm -->
+<A HREF="pkg_android.telephony.html#CellSignalStrengthGsm" class="hiddenlink" target="rightframe"><b>CellSignalStrengthGsm</b></A><br>
+<!-- Class CellSignalStrengthLte -->
+<A HREF="pkg_android.telephony.html#CellSignalStrengthLte" class="hiddenlink" target="rightframe"><b>CellSignalStrengthLte</b></A><br>
+<!-- Class CheckedTextView -->
+<A HREF="android.widget.CheckedTextView.html" class="hiddenlink" target="rightframe">CheckedTextView</A><br>
+<!-- Field checkedTextViewStyle -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.checkedTextViewStyle" class="hiddenlink" target="rightframe">checkedTextViewStyle</A>
+</nobr><br>
+<!-- Method clone -->
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.clone_changed()" class="hiddenlink" target="rightframe">clone
+()</A></nobr><br>
+<!-- Field CONFIG_DENSITY -->
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_DENSITY" class="hiddenlink" target="rightframe">CONFIG_DENSITY</A>
+</nobr><br>
+<!-- Field CONFIG_LAYOUT_DIRECTION -->
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_LAYOUT_DIRECTION" class="hiddenlink" target="rightframe">CONFIG_LAYOUT_DIRECTION</A>
+</nobr><br>
+<!-- Class Configuration -->
+<A HREF="android.content.res.Configuration.html" class="hiddenlink" target="rightframe">Configuration</A><br>
+<!-- Class ConnectivityManager -->
+<A HREF="android.net.ConnectivityManager.html" class="hiddenlink" target="rightframe">ConnectivityManager</A><br>
+<!-- Class ContentProviderClient -->
+<A HREF="android.content.ContentProviderClient.html" class="hiddenlink" target="rightframe">ContentProviderClient</A><br>
+<!-- Class Context -->
+<A HREF="android.content.Context.html" class="hiddenlink" target="rightframe">Context</A><br>
+<!-- Class ContextThemeWrapper -->
+<A HREF="android.view.ContextThemeWrapper.html" class="hiddenlink" target="rightframe">ContextThemeWrapper</A><br>
+<!-- Class ContextWrapper -->
+<A HREF="android.content.ContextWrapper.html" class="hiddenlink" target="rightframe">ContextWrapper</A><br>
+<!-- Method convertQuartSecToDecDegrees -->
+<nobr><A HREF="android.telephony.cdma.CdmaCellLocation.html#android.telephony.cdma.CdmaCellLocation.convertQuartSecToDecDegrees_added(int)" class="hiddenlink" target="rightframe"><b>convertQuartSecToDecDegrees</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method createBitmap -->
+<i>createBitmap</i><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<!-- Method createBitmap -->
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<!-- Method createBitmap -->
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<!-- Method createConfigurationContext -->
+<i>createConfigurationContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method createConfigurationContext -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method createConfigurationContext -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method createDisplayContext -->
+<i>createDisplayContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method createDisplayContext -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method createDisplayContext -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method createFieldID -->
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createFieldID_added(int, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createFieldID</b>
+(<code>int, Element</code>)</A></nobr><br>
+<!-- Method createKernelID -->
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createKernelID_added(int, int, android.renderscript.Element, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createKernelID</b>
+(<code>int, int, Element, Element</code>)</A></nobr><br>
+<!-- Field DATA_ROAMING -->
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DATA_ROAMING" class="hiddenlink" target="rightframe">DATA_ROAMING</A>
+</nobr><br>
+<!-- Class DatabaseUtils.InsertHelper -->
+<A HREF="android.database.DatabaseUtils.InsertHelper.html" class="hiddenlink" target="rightframe">DatabaseUtils.InsertHelper</A><br>
+<!-- Class DateFormat -->
+<A HREF="android.text.format.DateFormat.html" class="hiddenlink" target="rightframe">DateFormat</A><br>
+<!-- Class DateUtils -->
+<A HREF="android.text.format.DateUtils.html" class="hiddenlink" target="rightframe">DateUtils</A><br>
+<!-- Field DEBUG_APP -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DEBUG_APP" class="hiddenlink" target="rightframe">DEBUG_APP</A>
+</nobr><br>
+<!-- Method debugDump -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.debugDump_removed()" class="hiddenlink" target="rightframe"><strike>debugDump</strike>
+()</A></nobr><br>
+<!-- Field DENSITY_DPI_UNDEFINED -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.DENSITY_DPI_UNDEFINED" class="hiddenlink" target="rightframe">DENSITY_DPI_UNDEFINED</A>
+</nobr><br>
+<!-- Field densityDpi -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
+</nobr><br>
+<!-- Field DEVELOPMENT_SETTINGS_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED" class="hiddenlink" target="rightframe">DEVELOPMENT_SETTINGS_ENABLED</A>
+</nobr><br>
+<!-- Field DEVICE_ALARMS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DEVICE_ALARMS" class="hiddenlink" target="rightframe">DEVICE_ALARMS</A>
+</nobr><br>
+<!-- Field DEVICE_PROVISIONED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVICE_PROVISIONED" class="hiddenlink" target="rightframe">DEVICE_PROVISIONED</A>
+</nobr><br>
+<!-- Class DeviceAdminInfo -->
+<A HREF="android.app.admin.DeviceAdminInfo.html" class="hiddenlink" target="rightframe">DeviceAdminInfo</A><br>
+<!-- Class DevicePolicyManager -->
+<A HREF="android.app.admin.DevicePolicyManager.html" class="hiddenlink" target="rightframe">DevicePolicyManager</A><br>
+<!-- Class DigitalClock -->
+<A HREF="android.widget.DigitalClock.html" class="hiddenlink" target="rightframe">DigitalClock</A><br>
+<!-- Field DIM_SCREEN -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DIM_SCREEN" class="hiddenlink" target="rightframe">DIM_SCREEN</A>
+</nobr><br>
+<!-- Method disablePlatformNotifications -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.disablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>disablePlatformNotifications</strike>
+()</A></nobr><br>
+<!-- Method dispatchGenericMotionEvent -->
+<i>dispatchGenericMotionEvent</i><br>
+ <nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html#android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl
+</A></nobr><br>
+<!-- Method dispatchGenericMotionEvent -->
+ <nobr><A HREF="android.view.inputmethod.InputMethodSession.html#android.view.inputmethod.InputMethodSession.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.view.inputmethod.InputMethodSession
+</A></nobr><br>
+<!-- Class Display -->
+<A HREF="android.view.Display.html" class="hiddenlink" target="rightframe">Display</A><br>
+<!-- Field DISPLAY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DISPLAY" class="hiddenlink" target="rightframe">DISPLAY</A>
+</nobr><br>
+<!-- Field DISPLAY_SERVICE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.DISPLAY_SERVICE" class="hiddenlink" target="rightframe">DISPLAY_SERVICE</A>
+</nobr><br>
+<!-- Class DisplayMetrics -->
+<A HREF="android.util.DisplayMetrics.html" class="hiddenlink" target="rightframe">DisplayMetrics</A><br>
+<!-- Class EGL14 -->
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.opengl.html#EGL14" class="hiddenlink" target="rightframe"><b>EGL14</b></A><br>
+<!-- Class EGLConfig -->
+<A HREF="pkg_android.opengl.html#EGLConfig" class="hiddenlink" target="rightframe"><b>EGLConfig</b></A><br>
+<!-- Class EGLContext -->
+<A HREF="pkg_android.opengl.html#EGLContext" class="hiddenlink" target="rightframe"><b>EGLContext</b></A><br>
+<!-- Class EGLDisplay -->
+<A HREF="pkg_android.opengl.html#EGLDisplay" class="hiddenlink" target="rightframe"><b>EGLDisplay</b></A><br>
+<!-- Class EGLObjectHandle -->
+<A HREF="pkg_android.opengl.html#EGLObjectHandle" class="hiddenlink" target="rightframe"><b>EGLObjectHandle</b></A><br>
+<!-- Class EGLSurface -->
+<A HREF="pkg_android.opengl.html#EGLSurface" class="hiddenlink" target="rightframe"><b>EGLSurface</b></A><br>
+<!-- Method elapsedRealtimeNanos -->
+<nobr><A HREF="android.os.SystemClock.html#android.os.SystemClock.elapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>elapsedRealtimeNanos</b>
+()</A></nobr><br>
+<!-- Method emulateShiftHeld -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.emulateShiftHeld_removed()" class="hiddenlink" target="rightframe"><strike>emulateShiftHeld</strike>
+()</A></nobr><br>
+<!-- Method enableHardwareAcceleration -->
+<nobr><A HREF="android.inputmethodservice.InputMethodService.html#android.inputmethodservice.InputMethodService.enableHardwareAcceleration_added()" class="hiddenlink" target="rightframe"><b>enableHardwareAcceleration</b>
+()</A></nobr><br>
+<!-- Method enablePlatformNotifications -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.enablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>enablePlatformNotifications</strike>
+()</A></nobr><br>
+<!-- Method enableShutterSound -->
+<nobr><A HREF="android.hardware.Camera.html#android.hardware.Camera.enableShutterSound_added(boolean)" class="hiddenlink" target="rightframe"><b>enableShutterSound</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method enableSmoothTransition -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.enableSmoothTransition_changed()" class="hiddenlink" target="rightframe">enableSmoothTransition
+()</A></nobr><br>
+<!-- Field END_OF -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.END_OF" class="hiddenlink" target="rightframe">END_OF</A>
+</nobr><br>
+<!-- Method equals -->
+<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.equals_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>equals</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<!-- Method exp -->
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.exp_added(float)" class="hiddenlink" target="rightframe"><b>exp</b>
+(<code>float</code>)</A></nobr><br>
+<!-- Method extendVerificationTimeout -->
+<i>extendVerificationTimeout</i><br>
+ <nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.content.pm.PackageManager
+</A></nobr><br>
+<!-- Method extendVerificationTimeout -->
+ <nobr><A HREF="android.test.mock.MockPackageManager.html#android.test.mock.MockPackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.test.mock.MockPackageManager
+</A></nobr><br>
+<!-- Field EXTRA_NETWORK_TYPE -->
+<nobr><A HREF="android.net.ConnectivityManager.html#android.net.ConnectivityManager.EXTRA_NETWORK_TYPE" class="hiddenlink" target="rightframe">EXTRA_NETWORK_TYPE</A>
+</nobr><br>
+<!-- Field EXTRA_ORIGINATING_URI -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_ORIGINATING_URI" class="hiddenlink" target="rightframe">EXTRA_ORIGINATING_URI</A>
+</nobr><br>
+<!-- Field EXTRA_REFERRER -->
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_REFERRER" class="hiddenlink" target="rightframe">EXTRA_REFERRER</A>
+</nobr><br>
+<!-- Field EXTRA_VERIFICATION_RESULT -->
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.EXTRA_VERIFICATION_RESULT" class="hiddenlink" target="rightframe">EXTRA_VERIFICATION_RESULT</A>
+</nobr><br>
+<!-- Field FEATURE_CAMERA_ANY -->
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.FEATURE_CAMERA_ANY" class="hiddenlink" target="rightframe">FEATURE_CAMERA_ANY</A>
+</nobr><br>
+<!-- Field FEEDBACK_BRAILLE -->
+<nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html#android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_BRAILLE" class="hiddenlink" target="rightframe">FEEDBACK_BRAILLE</A>
+</nobr><br>
+<!-- Method finalize -->
+<nobr><A HREF="android.bluetooth.BluetoothA2dp.html#android.bluetooth.BluetoothA2dp.finalize_changed()" class="hiddenlink" target="rightframe">finalize
+()</A></nobr><br>
+<!-- Field FLAG_COSTS_MONEY -->
+<nobr><A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.FLAG_COSTS_MONEY" class="hiddenlink" target="rightframe">FLAG_COSTS_MONEY</A>
+</nobr><br>
+<!-- Field FLAG_DITHER -->
+<nobr><A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.FLAG_DITHER" class="hiddenlink" target="rightframe">FLAG_DITHER</A>
+</nobr><br>
+<!-- Field FLAG_INSTALLED -->
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_INSTALLED" class="hiddenlink" target="rightframe">FLAG_INSTALLED</A>
+</nobr><br>
+<!-- Field FLAG_IS_DATA_ONLY -->
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_IS_DATA_ONLY" class="hiddenlink" target="rightframe">FLAG_IS_DATA_ONLY</A>
+</nobr><br>
+<!-- Field FLAG_PERSONAL_INFO -->
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.FLAG_PERSONAL_INFO" class="hiddenlink" target="rightframe">FLAG_PERSONAL_INFO</A>
+</nobr><br>
+<!-- Field FLAG_SECURE -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SECURE" class="hiddenlink" target="rightframe">FLAG_SECURE</A>
+</nobr><br>
+<!-- Field FLAG_SINGLE_USER -->
+<i>FLAG_SINGLE_USER</i><br>
+<nobr> in
+<A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A>
+</nobr><br>
+<!-- Field FLAG_SINGLE_USER -->
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<!-- Field FLAG_SINGLE_USER -->
+<nobr> in
+<A HREF="android.content.pm.ServiceInfo.html#android.content.pm.ServiceInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ServiceInfo</A>
+</nobr><br>
+<!-- Field FLAG_SUPPORTS_PROTECTED_BUFFERS -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SUPPORTS_PROTECTED_BUFFERS" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_PROTECTED_BUFFERS</A>
+</nobr><br>
+<!-- Field FLAG_SUPPORTS_RTL -->
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_SUPPORTS_RTL" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_RTL</A>
+</nobr><br>
+<!-- Field flags -->
+<i>flags</i><br>
+<nobr> in
+<A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionGroupInfo</A>
+</nobr><br>
+<!-- Field flags -->
+<nobr> in
+<A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionInfo</A>
+</nobr><br>
+<!-- Field flags -->
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<!-- Class FloatMath -->
+<A HREF="android.util.FloatMath.html" class="hiddenlink" target="rightframe">FloatMath</A><br>
+<!-- Method format -->
+<i>format</i><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Calendar)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Calendar</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<!-- Method format -->
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Date)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Date</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<!-- Method format -->
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, long)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, long</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<!-- Field format12Hour -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.format12Hour" class="hiddenlink" target="rightframe">format12Hour</A>
+</nobr><br>
+<!-- Field format24Hour -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.format24Hour" class="hiddenlink" target="rightframe">format24Hour</A>
+</nobr><br>
+<!-- Field FORMAT_12HOUR -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_12HOUR" class="hiddenlink" target="rightframe">FORMAT_12HOUR</A>
+</nobr><br>
+<!-- Field FORMAT_24HOUR -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_24HOUR" class="hiddenlink" target="rightframe">FORMAT_24HOUR</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_AMPM -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_AMPM" class="hiddenlink" target="rightframe">FORMAT_CAP_AMPM</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_MIDNIGHT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_MIDNIGHT</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_NOON -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_NOON_MIDNIGHT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON_MIDNIGHT</A>
+</nobr><br>
+<!-- Field FORMAT_NO_NOON_MIDNIGHT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_NO_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_NO_NOON_MIDNIGHT</A>
+</nobr><br>
+<!-- Class Fragment -->
+<A HREF="android.app.Fragment.html" class="hiddenlink" target="rightframe">Fragment</A><br>
+<!-- Class FragmentManager -->
+<A HREF="android.app.FragmentManager.html" class="hiddenlink" target="rightframe">FragmentManager</A><br>
+<!-- Field FULL_WAKE_LOCK -->
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.FULL_WAKE_LOCK" class="hiddenlink" target="rightframe">FULL_WAKE_LOCK</A>
+</nobr><br>
+<!-- Method generateViewId -->
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.View.html#android.view.View.generateViewId_added()" class="hiddenlink" target="rightframe"><b>generateViewId</b>
+()</A></nobr><br>
+<!-- Method getAbsoluteGravity -->
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.getAbsoluteGravity_added(int, int)" class="hiddenlink" target="rightframe"><b>getAbsoluteGravity</b>
+(<code>int, int</code>)</A></nobr><br>
+<!-- Method getAccuracy -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getAccuracy_changed()" class="hiddenlink" target="rightframe">getAccuracy
+()</A></nobr><br>
+<!-- Method getAllCellInfo -->
+<nobr><A HREF="android.telephony.TelephonyManager.html#android.telephony.TelephonyManager.getAllCellInfo_added()" class="hiddenlink" target="rightframe"><b>getAllCellInfo</b>
+()</A></nobr><br>
+<!-- Method getAMPMString -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getAMPMString_changed(int)" class="hiddenlink" target="rightframe">getAMPMString
+(<code>int</code>)</A></nobr><br>
+<!-- Method getAnimateFirstView -->
+<nobr><A HREF="android.widget.ViewAnimator.html#android.widget.ViewAnimator.getAnimateFirstView_added()" class="hiddenlink" target="rightframe"><b>getAnimateFirstView</b>
+()</A></nobr><br>
+<!-- Method getCallingUserHandle -->
+<nobr><A HREF="android.os.Binder.html#android.os.Binder.getCallingUserHandle_added()" class="hiddenlink" target="rightframe"><b>getCallingUserHandle</b>
+()</A></nobr><br>
+<!-- Method getChildFragmentManager -->
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getChildFragmentManager_added()" class="hiddenlink" target="rightframe"><b>getChildFragmentManager</b>
+()</A></nobr><br>
+<!-- Method getCompoundDrawablesRelative -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundDrawablesRelative_added()" class="hiddenlink" target="rightframe"><b>getCompoundDrawablesRelative</b>
+()</A></nobr><br>
+<!-- Method getCompoundPaddingEnd -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingEnd</b>
+()</A></nobr><br>
+<!-- Method getCompoundPaddingStart -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingStart</b>
+()</A></nobr><br>
+<!-- Method getCreatorPackage -->
+<i>getCreatorPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getCreatorPackage -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getCreatorUid -->
+<i>getCreatorUid</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getCreatorUid -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getCreatorUserHandle -->
+<i>getCreatorUserHandle</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getCreatorUserHandle -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getDateFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getDateFormatOrder -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormatOrder_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormatOrder
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getDayOfWeekString -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getDayOfWeekString_changed(int, int)" class="hiddenlink" target="rightframe">getDayOfWeekString
+(<code>int, int</code>)</A></nobr><br>
+<!-- Method getDefaultUserAgent -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getDefaultUserAgent_added(android.content.Context)" class="hiddenlink" target="rightframe"><b>getDefaultUserAgent</b>
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getDisplay -->
+<nobr><A HREF="android.view.View.html#android.view.View.getDisplay_added()" class="hiddenlink" target="rightframe"><b>getDisplay</b>
+()</A></nobr><br>
+<!-- Method getElapsedRealtimeNanos -->
+<nobr><A HREF="android.location.Location.html#android.location.Location.getElapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>getElapsedRealtimeNanos</b>
+()</A></nobr><br>
+<!-- Method getFlags -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getFlags_added()" class="hiddenlink" target="rightframe"><b>getFlags</b>
+()</A></nobr><br>
+<!-- Method getId -->
+<nobr><A HREF="android.webkit.WebHistoryItem.html#android.webkit.WebHistoryItem.getId_removed()" class="hiddenlink" target="rightframe"><strike>getId</strike>
+()</A></nobr><br>
+<!-- Method getKeyguardDisabledFeatures -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.getKeyguardDisabledFeatures_added(android.content.ComponentName)" class="hiddenlink" target="rightframe"><b>getKeyguardDisabledFeatures</b>
+(<code>ComponentName</code>)</A></nobr><br>
+<!-- Method getLabeledBy -->
+<nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabeledBy_added()" class="hiddenlink" target="rightframe"><b>getLabeledBy</b>
+()</A></nobr><br>
+<!-- Method getLabelFor -->
+<i>getLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+<!-- Method getLabelFor -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method getLayoutDirection -->
+<i>getLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.res.Configuration
+</A></nobr><br>
+<!-- Method getLayoutDirection -->
+ <nobr><A HREF="android.view.View.html#android.view.View.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+<!-- Method getLayoutDirection -->
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<!-- Method getLayoutDirectionFromLocale -->
+<nobr><A HREF="android.text.TextUtils.html#android.text.TextUtils.getLayoutDirectionFromLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>getLayoutDirectionFromLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<!-- Method getLongDateFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getLongDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getLongDateFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getMarginEnd -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginEnd_added()" class="hiddenlink" target="rightframe"><b>getMarginEnd</b>
+()</A></nobr><br>
+<!-- Method getMarginStart -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginStart_added()" class="hiddenlink" target="rightframe"><b>getMarginStart</b>
+()</A></nobr><br>
+<!-- Method getMediaPlaybackRequiresUserGesture -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getMediaPlaybackRequiresUserGesture_added()" class="hiddenlink" target="rightframe"><b>getMediaPlaybackRequiresUserGesture</b>
+()</A></nobr><br>
+<!-- Method getMediumDateFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getMediumDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getMediumDateFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getMonthString -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getMonthString_changed(int, int)" class="hiddenlink" target="rightframe">getMonthString
+(<code>int, int</code>)</A></nobr><br>
+<!-- Method getName -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getName_added()" class="hiddenlink" target="rightframe"><b>getName</b>
+()</A></nobr><br>
+<!-- Method getNavDump -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getNavDump_removed()" class="hiddenlink" target="rightframe"><strike>getNavDump</strike>
+()</A></nobr><br>
+<!-- Method getPaddingEnd -->
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getPaddingEnd</b>
+()</A></nobr><br>
+<!-- Method getPaddingStart -->
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getPaddingStart</b>
+()</A></nobr><br>
+<!-- Method getParentFragment -->
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getParentFragment_added()" class="hiddenlink" target="rightframe"><b>getParentFragment</b>
+()</A></nobr><br>
+<!-- Method getPixelFormat -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getPixelFormat_changed()" class="hiddenlink" target="rightframe">getPixelFormat
+()</A></nobr><br>
+<!-- Method getPowerRequirement -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getPowerRequirement_changed()" class="hiddenlink" target="rightframe">getPowerRequirement
+()</A></nobr><br>
+<!-- Method getPresentationDisplay -->
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.getPresentationDisplay_added()" class="hiddenlink" target="rightframe"><b>getPresentationDisplay</b>
+()</A></nobr><br>
+<!-- Method getProperty -->
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.getProperty_added(java.lang.String)" class="hiddenlink" target="rightframe"><b>getProperty</b>
+(<code>String</code>)</A></nobr><br>
+<!-- Method getRealMetrics -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealMetrics_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>getRealMetrics</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<!-- Method getRealSize -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealSize_added(android.graphics.Point)" class="hiddenlink" target="rightframe"><b>getRealSize</b>
+(<code>Point</code>)</A></nobr><br>
+<!-- Method getRegisteredCallbackCount -->
+<nobr><A HREF="android.os.RemoteCallbackList.html#android.os.RemoteCallbackList.getRegisteredCallbackCount_added()" class="hiddenlink" target="rightframe"><b>getRegisteredCallbackCount</b>
+()</A></nobr><br>
+<!-- Method getScale -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getScale_changed()" class="hiddenlink" target="rightframe">getScale
+()</A></nobr><br>
+<!-- Method getShowGTalkServiceStatus -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.getShowGTalkServiceStatus_changed(android.content.ContentResolver)" class="hiddenlink" target="rightframe">getShowGTalkServiceStatus
+(<code>ContentResolver</code>)</A></nobr><br>
+<!-- Method getTargetPackage -->
+<i>getTargetPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getTargetPackage -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getTextAlignment -->
+<nobr><A HREF="android.view.View.html#android.view.View.getTextAlignment_added()" class="hiddenlink" target="rightframe"><b>getTextAlignment</b>
+()</A></nobr><br>
+<!-- Method getTextDirection -->
+<nobr><A HREF="android.view.View.html#android.view.View.getTextDirection_added()" class="hiddenlink" target="rightframe"><b>getTextDirection</b>
+()</A></nobr><br>
+<!-- Method getTextLocale -->
+<i>getTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.graphics.Paint
+</A></nobr><br>
+<!-- Method getTextLocale -->
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Method getTimeFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getTimeFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getTimeFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getTotalPaddingEnd -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingEnd</b>
+()</A></nobr><br>
+<!-- Method getTotalPaddingStart -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingStart</b>
+()</A></nobr><br>
+<!-- Method getUseDoubleTree -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseDoubleTree_removed()" class="hiddenlink" target="rightframe"><strike>getUseDoubleTree</strike>
+()</A></nobr><br>
+<!-- Method getUserAgent -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUserAgent_removed()" class="hiddenlink" target="rightframe"><strike>getUserAgent</strike>
+()</A></nobr><br>
+<!-- Method getUseWebViewBackgroundForOverscrollBackground -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseWebViewBackgroundForOverscrollBackground_removed()" class="hiddenlink" target="rightframe"><strike>getUseWebViewBackgroundForOverscrollBackground</strike>
+()</A></nobr><br>
+<!-- Method getVisibleTitleHeight -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getVisibleTitleHeight_removed()" class="hiddenlink" target="rightframe"><strike>getVisibleTitleHeight</strike>
+()</A></nobr><br>
+<!-- Class GLES20 -->
+<A HREF="android.opengl.GLES20.html" class="hiddenlink" target="rightframe">GLES20</A><br>
+<!-- Method glGetActiveAttrib -->
+<i>glGetActiveAttrib</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetActiveAttrib -->
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetActiveUniform -->
+<i>glGetActiveUniform</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetActiveUniform -->
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<!-- Method glGetShaderSource -->
+<nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetShaderSource_added(int)" class="hiddenlink" target="rightframe"><b>glGetShaderSource</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Field GLOBAL_ACTION_QUICK_SETTINGS -->
+<nobr><A HREF="android.accessibilityservice.AccessibilityService.html#android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_QUICK_SETTINGS" class="hiddenlink" target="rightframe">GLOBAL_ACTION_QUICK_SETTINGS</A>
+</nobr><br>
+<!-- Class Gravity -->
+<A HREF="android.view.Gravity.html" class="hiddenlink" target="rightframe">Gravity</A><br>
+<!-- Method hasMipMap -->
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.hasMipMap_added()" class="hiddenlink" target="rightframe"><b>hasMipMap</b>
+()</A></nobr><br>
+<!-- Method hasMonetaryCost -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.hasMonetaryCost_changed()" class="hiddenlink" target="rightframe">hasMonetaryCost
+()</A></nobr><br>
+<!-- Method hasResourceWallpaper -->
+<nobr><A HREF="android.app.WallpaperManager.html#android.app.WallpaperManager.hasResourceWallpaper_added(int)" class="hiddenlink" target="rightframe"><b>hasResourceWallpaper</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Field HOUR_MINUTE_24 -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.HOUR_MINUTE_24" class="hiddenlink" target="rightframe">HOUR_MINUTE_24</A>
+</nobr><br>
+<!-- Field HTTP_PROXY -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.HTTP_PROXY" class="hiddenlink" target="rightframe">HTTP_PROXY</A>
+</nobr><br>
+<!-- Method hypot -->
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.hypot_added(float, float)" class="hiddenlink" target="rightframe"><b>hypot</b>
+(<code>float, float</code>)</A></nobr><br>
+<!-- Field initialKeyguardLayout -->
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>initialKeyguardLayout</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<!-- Field initialKeyguardLayout -->
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<!-- Class InputMethodService -->
+<A HREF="android.inputmethodservice.InputMethodService.html" class="hiddenlink" target="rightframe">InputMethodService</A><br>
+<!-- Class InputMethodSession -->
+<A HREF="android.view.inputmethod.InputMethodSession.html" class="hiddenlink" target="rightframe"><i>InputMethodSession</i></A><br>
+<!-- Class InputMethodSubtype -->
+<i>InputMethodSubtype</i><br>
+ <A HREF="android.view.inputmethod.InputMethodSubtype.html" class="hiddenlink" target="rightframe">android.view.inputmethod</A><br>
+<!-- Constructor InputMethodSubtype -->
+ <nobr><A HREF="android.view.inputmethod.InputMethodSubtype.html#android.view.inputmethod.InputMethodSubtype.ctor_added(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)" class="hiddenlink" target="rightframe"><b>InputMethodSubtype</b>
+(<code>int, int, String, String, String, boolean, boolean, int</code>)</A></nobr> constructor<br>
+<!-- Field INSTALL_NON_MARKET_APPS -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.INSTALL_NON_MARKET_APPS" class="hiddenlink" target="rightframe">INSTALL_NON_MARKET_APPS</A>
+</nobr><br>
+<!-- Class Intent -->
+<A HREF="android.content.Intent.html" class="hiddenlink" target="rightframe">Intent</A><br>
+<!-- Field INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE" class="hiddenlink" target="rightframe">INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE</A>
+</nobr><br>
+<!-- Field INTENT_ACTION_TEXT_OPEN_FROM_SEARCH -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_TEXT_OPEN_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_TEXT_OPEN_FROM_SEARCH</A>
+</nobr><br>
+<!-- Field INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH -->
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH</A>
+</nobr><br>
+<!-- Class IntentSender -->
+<A HREF="android.content.IntentSender.html" class="hiddenlink" target="rightframe">IntentSender</A><br>
+<!-- Field IS_ORGANIZER -->
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.IS_ORGANIZER" class="hiddenlink" target="rightframe">IS_ORGANIZER</A>
+</nobr><br>
+<!-- Field IS_PRIMARY -->
+<nobr><A HREF="android.provider.CalendarContract.CalendarColumns.html#android.provider.CalendarContract.CalendarColumns.IS_PRIMARY" class="hiddenlink" target="rightframe">IS_PRIMARY</A>
+</nobr><br>
+<!-- Method isDestroyed -->
+<i>isDestroyed</i><br>
+ <nobr><A HREF="android.app.Activity.html#android.app.Activity.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.Activity
+</A></nobr><br>
+<!-- Method isDestroyed -->
+ <nobr><A HREF="android.app.FragmentManager.html#android.app.FragmentManager.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.FragmentManager
+</A></nobr><br>
+<!-- Method isEnabled -->
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.isEnabled_added()" class="hiddenlink" target="rightframe"><b>isEnabled</b>
+()</A></nobr><br>
+<!-- Method isMarginRelative -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.isMarginRelative_added()" class="hiddenlink" target="rightframe"><b>isMarginRelative</b>
+()</A></nobr><br>
+<!-- Method isPaddingRelative -->
+<nobr><A HREF="android.view.View.html#android.view.View.isPaddingRelative_added()" class="hiddenlink" target="rightframe"><b>isPaddingRelative</b>
+()</A></nobr><br>
+<!-- Method isPremultiplied -->
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.isPremultiplied_added()" class="hiddenlink" target="rightframe"><b>isPremultiplied</b>
+()</A></nobr><br>
+<!-- Method isValid -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.isValid_added()" class="hiddenlink" target="rightframe"><b>isValid</b>
+()</A></nobr><br>
+<!-- Class JavascriptInterface -->
+<A NAME="J"></A>
+<br><font size="+2">J</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#JavascriptInterface" class="hiddenlink" target="rightframe"><b>JavascriptInterface</b></A><br>
+<!-- Field JELLY_BEAN_MR1 -->
+<nobr><A HREF="android.os.Build.VERSION_CODES.html#android.os.Build.VERSION_CODES.JELLY_BEAN_MR1" class="hiddenlink" target="rightframe">JELLY_BEAN_MR1</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_FEATURES_ALL -->
+<A NAME="K"></A>
+<br><font size="+2">K</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_ALL</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_FEATURES_NONE -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_NONE</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_SECURE_CAMERA -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_SECURE_CAMERA</A>
+</nobr><br>
+<!-- Field KEYGUARD_DISABLE_WIDGETS_ALL -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_WIDGETS_ALL</A>
+</nobr><br>
+<!-- Field labelFor -->
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.R.attr.html#android.R.attr.labelFor" class="hiddenlink" target="rightframe">labelFor</A>
+</nobr><br>
+<!-- Field layout_alignEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignEnd" class="hiddenlink" target="rightframe">layout_alignEnd</A>
+</nobr><br>
+<!-- Field layout_alignParentEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentEnd" class="hiddenlink" target="rightframe">layout_alignParentEnd</A>
+</nobr><br>
+<!-- Field layout_alignParentStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentStart" class="hiddenlink" target="rightframe">layout_alignParentStart</A>
+</nobr><br>
+<!-- Field layout_alignStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignStart" class="hiddenlink" target="rightframe">layout_alignStart</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_INHERIT -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_INHERIT</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_LOCALE -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LOCALE</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_LTR -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LTR" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LTR</A>
+</nobr><br>
+<!-- Field LAYOUT_DIRECTION_RTL -->
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_RTL" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_RTL</A>
+</nobr><br>
+<!-- Field layout_marginEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginEnd" class="hiddenlink" target="rightframe">layout_marginEnd</A>
+</nobr><br>
+<!-- Field layout_marginStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginStart" class="hiddenlink" target="rightframe">layout_marginStart</A>
+</nobr><br>
+<!-- Field layout_toEndOf -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toEndOf" class="hiddenlink" target="rightframe">layout_toEndOf</A>
+</nobr><br>
+<!-- Field layout_toStartOf -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toStartOf" class="hiddenlink" target="rightframe">layout_toStartOf</A>
+</nobr><br>
+<!-- Field layoutDirection -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.layoutDirection" class="hiddenlink" target="rightframe">layoutDirection</A>
+</nobr><br>
+<!-- Field LENGTH_LONG -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_LONG" class="hiddenlink" target="rightframe">LENGTH_LONG</A>
+</nobr><br>
+<!-- Field LENGTH_MEDIUM -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_MEDIUM" class="hiddenlink" target="rightframe">LENGTH_MEDIUM</A>
+</nobr><br>
+<!-- Field LENGTH_SHORT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORT" class="hiddenlink" target="rightframe">LENGTH_SHORT</A>
+</nobr><br>
+<!-- Field LENGTH_SHORTER -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTER" class="hiddenlink" target="rightframe">LENGTH_SHORTER</A>
+</nobr><br>
+<!-- Field LENGTH_SHORTEST -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTEST" class="hiddenlink" target="rightframe">LENGTH_SHORTEST</A>
+</nobr><br>
+<!-- Field LIMIT_PARAM_KEY -->
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.LIMIT_PARAM_KEY" class="hiddenlink" target="rightframe">LIMIT_PARAM_KEY</A>
+</nobr><br>
+<!-- Field LISTEN_CELL_INFO -->
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.LISTEN_CELL_INFO" class="hiddenlink" target="rightframe">LISTEN_CELL_INFO</A>
+</nobr><br>
+<!-- Field listPreferredItemPaddingEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingEnd" class="hiddenlink" target="rightframe">listPreferredItemPaddingEnd</A>
+</nobr><br>
+<!-- Field listPreferredItemPaddingStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingStart" class="hiddenlink" target="rightframe">listPreferredItemPaddingStart</A>
+</nobr><br>
+<!-- Field LOAD_NORMAL -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.LOAD_NORMAL" class="hiddenlink" target="rightframe">LOAD_NORMAL</A>
+</nobr><br>
+<!-- Class LocaleSpan -->
+<A HREF="pkg_android.text.style.html#LocaleSpan" class="hiddenlink" target="rightframe"><b>LocaleSpan</b></A><br>
+<!-- Class LocalSocket -->
+<A HREF="android.net.LocalSocket.html" class="hiddenlink" target="rightframe">LocalSocket</A><br>
+<!-- Class Location -->
+<A HREF="android.location.Location.html" class="hiddenlink" target="rightframe">Location</A><br>
+<!-- Class LocationProvider -->
+<A HREF="android.location.LocationProvider.html" class="hiddenlink" target="rightframe">LocationProvider</A><br>
+<!-- Field LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED</A>
+</nobr><br>
+<!-- Field LOGTAG -->
+<nobr><A HREF="android.webkit.WebViewDatabase.html#android.webkit.WebViewDatabase.LOGTAG" class="hiddenlink" target="rightframe"><strike>LOGTAG</strike></A>
+</nobr><br>
+<!-- Class LruCache -->
+<A HREF="android.util.LruCache.html" class="hiddenlink" target="rightframe">LruCache</A><br>
+<!-- Class Manifest.permission_group -->
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.Manifest.permission_group.html" class="hiddenlink" target="rightframe">Manifest.permission_group</A><br>
+<!-- Field MAXIMUM_VERIFICATION_TIMEOUT -->
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.MAXIMUM_VERIFICATION_TIMEOUT" class="hiddenlink" target="rightframe">MAXIMUM_VERIFICATION_TIMEOUT</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_IO -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_IO" class="hiddenlink" target="rightframe">MEDIA_ERROR_IO</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_MALFORMED -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_MALFORMED" class="hiddenlink" target="rightframe">MEDIA_ERROR_MALFORMED</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_SERVER_DIED -->
+<nobr><A HREF="android.media.MediaRecorder.html#android.media.MediaRecorder.MEDIA_ERROR_SERVER_DIED" class="hiddenlink" target="rightframe">MEDIA_ERROR_SERVER_DIED</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_TIMED_OUT -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_TIMED_OUT" class="hiddenlink" target="rightframe">MEDIA_ERROR_TIMED_OUT</A>
+</nobr><br>
+<!-- Field MEDIA_ERROR_UNSUPPORTED -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_UNSUPPORTED" class="hiddenlink" target="rightframe">MEDIA_ERROR_UNSUPPORTED</A>
+</nobr><br>
+<!-- Field MEDIA_INFO_VIDEO_RENDERING_START -->
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START" class="hiddenlink" target="rightframe">MEDIA_INFO_VIDEO_RENDERING_START</A>
+</nobr><br>
+<!-- Class MediaMetadataRetriever -->
+<A HREF="android.media.MediaMetadataRetriever.html" class="hiddenlink" target="rightframe">MediaMetadataRetriever</A><br>
+<!-- Class MediaPlayer -->
+<A HREF="android.media.MediaPlayer.html" class="hiddenlink" target="rightframe">MediaPlayer</A><br>
+<!-- Class MediaRecorder -->
+<A HREF="android.media.MediaRecorder.html" class="hiddenlink" target="rightframe">MediaRecorder</A><br>
+<!-- Class MediaRouter -->
+<A HREF="android.media.MediaRouter.html" class="hiddenlink" target="rightframe">MediaRouter</A><br>
+<!-- Class MediaRouter.Callback -->
+<A HREF="android.media.MediaRouter.Callback.html" class="hiddenlink" target="rightframe">MediaRouter.Callback</A><br>
+<!-- Class MediaRouter.RouteInfo -->
+<A HREF="android.media.MediaRouter.RouteInfo.html" class="hiddenlink" target="rightframe">MediaRouter.RouteInfo</A><br>
+<!-- Class MediaStore -->
+<A HREF="android.provider.MediaStore.html" class="hiddenlink" target="rightframe">MediaStore</A><br>
+<!-- Field METADATA_KEY_VIDEO_ROTATION -->
+<nobr><A HREF="android.media.MediaMetadataRetriever.html#android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION" class="hiddenlink" target="rightframe">METADATA_KEY_VIDEO_ROTATION</A>
+</nobr><br>
+<!-- Field MICROPHONE -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.MICROPHONE" class="hiddenlink" target="rightframe">MICROPHONE</A>
+</nobr><br>
+<!-- Class MockContext -->
+<A HREF="android.test.mock.MockContext.html" class="hiddenlink" target="rightframe">MockContext</A><br>
+<!-- Class MockPackageManager -->
+<A HREF="android.test.mock.MockPackageManager.html" class="hiddenlink" target="rightframe">MockPackageManager</A><br>
+<!-- Field MODE_RINGER -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.MODE_RINGER" class="hiddenlink" target="rightframe">MODE_RINGER</A>
+</nobr><br>
+<!-- Field MODE_WORLD_READABLE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_READABLE" class="hiddenlink" target="rightframe">MODE_WORLD_READABLE</A>
+</nobr><br>
+<!-- Field MODE_WORLD_WRITEABLE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_WRITEABLE" class="hiddenlink" target="rightframe">MODE_WORLD_WRITEABLE</A>
+</nobr><br>
+<!-- Method myUserHandle -->
+<nobr><A HREF="android.os.Process.html#android.os.Process.myUserHandle_added()" class="hiddenlink" target="rightframe"><b>myUserHandle</b>
+()</A></nobr><br>
+<!-- Field NETWORK_PREFERENCE -->
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.NETWORK_PREFERENCE" class="hiddenlink" target="rightframe">NETWORK_PREFERENCE</A>
+</nobr><br>
+<!-- Class NfcBarcode -->
+<A HREF="pkg_android.nfc.tech.html#NfcBarcode" class="hiddenlink" target="rightframe"><b>NfcBarcode</b></A><br>
+<!-- Class Notification.Builder -->
+<A HREF="android.app.Notification.Builder.html" class="hiddenlink" target="rightframe">Notification.Builder</A><br>
+<!-- Field OFFSET_PARAM_KEY -->
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.OFFSET_PARAM_KEY" class="hiddenlink" target="rightframe">OFFSET_PARAM_KEY</A>
+</nobr><br>
+<!-- Method onCellInfoChanged -->
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.onCellInfoChanged_added(java.util.List<android.telephony.CellInfo>)" class="hiddenlink" target="rightframe"><b>onCellInfoChanged</b>
+(<code>List<CellInfo></code>)</A></nobr><br>
+<!-- Method onGenericMotionEvent -->
+<nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.html#android.inputmethodservice.AbstractInputMethodService.onGenericMotionEvent_added(android.view.MotionEvent)" class="hiddenlink" target="rightframe"><b>onGenericMotionEvent</b>
+(<code>MotionEvent</code>)</A></nobr><br>
+<!-- Method onJsTimeout -->
+<nobr><A HREF="android.webkit.WebChromeClient.html#android.webkit.WebChromeClient.onJsTimeout_changed()" class="hiddenlink" target="rightframe">onJsTimeout
+()</A></nobr><br>
+<!-- Method onPaddingChanged -->
+<nobr><A HREF="android.widget.CheckedTextView.html#android.widget.CheckedTextView.onPaddingChanged_removed(int)" class="hiddenlink" target="rightframe"><strike>onPaddingChanged</strike>
+(<code>int</code>)</A></nobr><br>
+<!-- Method onProvidersChanged -->
+<nobr><A HREF="android.appwidget.AppWidgetHost.html#android.appwidget.AppWidgetHost.onProvidersChanged_added()" class="hiddenlink" target="rightframe"><b>onProvidersChanged</b>
+()</A></nobr><br>
+<!-- Method onRoutePresentationDisplayChanged -->
+<nobr><A HREF="android.media.MediaRouter.Callback.html#android.media.MediaRouter.Callback.onRoutePresentationDisplayChanged_added(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)" class="hiddenlink" target="rightframe"><b>onRoutePresentationDisplayChanged</b>
+(<code>MediaRouter, RouteInfo</code>)</A></nobr><br>
+<!-- Method onRtlPropertiesChanged -->
+<nobr><A HREF="android.view.View.html#android.view.View.onRtlPropertiesChanged_added(int)" class="hiddenlink" target="rightframe"><b>onRtlPropertiesChanged</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method onViewStateRestored -->
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.onViewStateRestored_added(android.os.Bundle)" class="hiddenlink" target="rightframe"><b>onViewStateRestored</b>
+(<code>Bundle</code>)</A></nobr><br>
+<!-- Field OPTION_APPWIDGET_HOST_CATEGORY -->
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY" class="hiddenlink" target="rightframe">OPTION_APPWIDGET_HOST_CATEGORY</A>
+</nobr><br>
+<!-- Class PackageManager -->
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.content.pm.PackageManager.html" class="hiddenlink" target="rightframe">PackageManager</A><br>
+<!-- Field paddingEnd -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingEnd" class="hiddenlink" target="rightframe">paddingEnd</A>
+</nobr><br>
+<!-- Field paddingStart -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingStart" class="hiddenlink" target="rightframe">paddingStart</A>
+</nobr><br>
+<!-- Class Paint -->
+<A HREF="android.graphics.Paint.html" class="hiddenlink" target="rightframe">Paint</A><br>
+<!-- Class PendingIntent -->
+<A HREF="android.app.PendingIntent.html" class="hiddenlink" target="rightframe">PendingIntent</A><br>
+<!-- Field permissionFlags -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionFlags" class="hiddenlink" target="rightframe">permissionFlags</A>
+</nobr><br>
+<!-- Field permissionGroupFlags -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionGroupFlags" class="hiddenlink" target="rightframe">permissionGroupFlags</A>
+</nobr><br>
+<!-- Class PermissionGroupInfo -->
+<A HREF="android.content.pm.PermissionGroupInfo.html" class="hiddenlink" target="rightframe">PermissionGroupInfo</A><br>
+<!-- Class PermissionInfo -->
+<A HREF="android.content.pm.PermissionInfo.html" class="hiddenlink" target="rightframe">PermissionInfo</A><br>
+<!-- Class PhoneStateListener -->
+<A HREF="android.telephony.PhoneStateListener.html" class="hiddenlink" target="rightframe">PhoneStateListener</A><br>
+<!-- Method pow -->
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.pow_added(float, float)" class="hiddenlink" target="rightframe"><b>pow</b>
+(<code>float, float</code>)</A></nobr><br>
+<!-- Class PowerManager -->
+<A HREF="android.os.PowerManager.html" class="hiddenlink" target="rightframe">PowerManager</A><br>
+<!-- Class PowerManager.WakeLock -->
+<A HREF="android.os.PowerManager.WakeLock.html" class="hiddenlink" target="rightframe">PowerManager.WakeLock</A><br>
+<!-- Class Presentation -->
+<A HREF="pkg_android.app.html#Presentation" class="hiddenlink" target="rightframe"><b>Presentation</b></A><br>
+<!-- Field presentationTheme -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.presentationTheme" class="hiddenlink" target="rightframe">presentationTheme</A>
+</nobr><br>
+<!-- Field priority -->
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.priority" class="hiddenlink" target="rightframe">priority</A>
+</nobr><br>
+<!-- Class Process -->
+<A HREF="android.os.Process.html" class="hiddenlink" target="rightframe">Process</A><br>
+<!-- Field PROPERTY_OUTPUT_FRAMES_PER_BUFFER -->
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_FRAMES_PER_BUFFER</A>
+</nobr><br>
+<!-- Field PROPERTY_OUTPUT_SAMPLE_RATE -->
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_SAMPLE_RATE</A>
+</nobr><br>
+<!-- Class ProviderInfo -->
+<A HREF="android.content.pm.ProviderInfo.html" class="hiddenlink" target="rightframe">ProviderInfo</A><br>
+<!-- Class R.attr -->
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
+<!-- Class R.style -->
+<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
+<!-- Field RADIO_BLUETOOTH -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_BLUETOOTH" class="hiddenlink" target="rightframe">RADIO_BLUETOOTH</A>
+</nobr><br>
+<!-- Field RADIO_CELL -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_CELL" class="hiddenlink" target="rightframe">RADIO_CELL</A>
+</nobr><br>
+<!-- Field RADIO_NFC -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_NFC" class="hiddenlink" target="rightframe">RADIO_NFC</A>
+</nobr><br>
+<!-- Field RADIO_WIFI -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_WIFI" class="hiddenlink" target="rightframe">RADIO_WIFI</A>
+</nobr><br>
+<!-- Class RelativeLayout -->
+<A HREF="android.widget.RelativeLayout.html" class="hiddenlink" target="rightframe">RelativeLayout</A><br>
+<!-- Class RelativeLayout.LayoutParams -->
+<A HREF="android.widget.RelativeLayout.LayoutParams.html" class="hiddenlink" target="rightframe">RelativeLayout.LayoutParams</A><br>
+<!-- Class RemoteCallbackList -->
+<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
+<!-- Class RemoteViews -->
+<A HREF="android.widget.RemoteViews.html" class="hiddenlink" target="rightframe">RemoteViews</A><br>
+<!-- Method removeRule -->
+<nobr><A HREF="android.widget.RelativeLayout.LayoutParams.html#android.widget.RelativeLayout.LayoutParams.removeRule_added(int)" class="hiddenlink" target="rightframe"><b>removeRule</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method removeStickyBroadcastAsUser -->
+<i>removeStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method removeStickyBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method removeStickyBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method requiresCell -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresCell_changed()" class="hiddenlink" target="rightframe">requiresCell
+()</A></nobr><br>
+<!-- Method requiresNetwork -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresNetwork_changed()" class="hiddenlink" target="rightframe">requiresNetwork
+()</A></nobr><br>
+<!-- Method requiresSatellite -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresSatellite_changed()" class="hiddenlink" target="rightframe">requiresSatellite
+()</A></nobr><br>
+<!-- Method resetResolvedDrawables -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resetResolvedDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resetResolvedDrawables</strike>
+()</A></nobr><br>
+<!-- Method resolveDrawables -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resolveDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resolveDrawables</strike>
+()</A></nobr><br>
+<!-- Class ResolveInfo -->
+<i>ResolveInfo</i><br>
+ <A HREF="android.content.pm.ResolveInfo.html" class="hiddenlink" target="rightframe">android.content.pm</A><br>
+<!-- Constructor ResolveInfo -->
+ <nobr><A HREF="android.content.pm.ResolveInfo.html#android.content.pm.ResolveInfo.ctor_added(android.content.pm.ResolveInfo)" class="hiddenlink" target="rightframe"><b>ResolveInfo</b>
+(<code>ResolveInfo</code>)</A></nobr> constructor<br>
+<!-- Method resolveLayoutDirection -->
+<nobr><A HREF="android.view.ViewGroup.LayoutParams.html#android.view.ViewGroup.LayoutParams.resolveLayoutDirection_added(int)" class="hiddenlink" target="rightframe"><b>resolveLayoutDirection</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method restorePicture -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.restorePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>restorePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<!-- Field ROUTE_TYPE_LIVE_VIDEO -->
+<nobr><A HREF="android.media.MediaRouter.html#android.media.MediaRouter.ROUTE_TYPE_LIVE_VIDEO" class="hiddenlink" target="rightframe">ROUTE_TYPE_LIVE_VIDEO</A>
+</nobr><br>
+<!-- Field sameMonthTable -->
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameMonthTable" class="hiddenlink" target="rightframe">sameMonthTable</A>
+</nobr><br>
+<!-- Field sameYearTable -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameYearTable" class="hiddenlink" target="rightframe">sameYearTable</A>
+</nobr><br>
+<!-- Method savePicture -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.savePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>savePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<!-- Class ScanResult -->
+<A HREF="android.net.wifi.ScanResult.html" class="hiddenlink" target="rightframe">ScanResult</A><br>
+<!-- Field SCENE_MODE_HDR -->
+<nobr><A HREF="android.hardware.Camera.Parameters.html#android.hardware.Camera.Parameters.SCENE_MODE_HDR" class="hiddenlink" target="rightframe">SCENE_MODE_HDR</A>
+</nobr><br>
+<!-- Field SCREEN_DIM_WAKE_LOCK -->
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.SCREEN_DIM_WAKE_LOCK" class="hiddenlink" target="rightframe">SCREEN_DIM_WAKE_LOCK</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_LTR -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_LTR" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_LTR</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_MASK -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_MASK" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_MASK</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_RTL -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_RTL" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_RTL</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_SHIFT -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_SHIFT" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_SHIFT</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_LAYOUTDIR_UNDEFINED -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_UNDEFINED</A>
+</nobr><br>
+<!-- Field SCREENLAYOUT_UNDEFINED -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_UNDEFINED</A>
+</nobr><br>
+<!-- Field SCREENLOCK -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SCREENLOCK" class="hiddenlink" target="rightframe">SCREENLOCK</A>
+</nobr><br>
+<!-- Class Script -->
+<A HREF="android.renderscript.Script.html" class="hiddenlink" target="rightframe">Script</A><br>
+<!-- Class Script.FieldID -->
+<A HREF="pkg_android.renderscript.html#Script.FieldID" class="hiddenlink" target="rightframe"><b>Script.FieldID</b></A><br>
+<!-- Class Script.KernelID -->
+<A HREF="pkg_android.renderscript.html#Script.KernelID" class="hiddenlink" target="rightframe"><b>Script.KernelID</b></A><br>
+<!-- Class ScriptGroup -->
+<A HREF="pkg_android.renderscript.html#ScriptGroup" class="hiddenlink" target="rightframe"><b>ScriptGroup</b></A><br>
+<!-- Class ScriptGroup.Builder -->
+<A HREF="pkg_android.renderscript.html#ScriptGroup.Builder" class="hiddenlink" target="rightframe"><b>ScriptGroup.Builder</b></A><br>
+<!-- Class ScriptIntrinsic -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsic" class="hiddenlink" target="rightframe"><b>ScriptIntrinsic</b></A><br>
+<!-- Class ScriptIntrinsicBlend -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlend" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlend</b></A><br>
+<!-- Class ScriptIntrinsicBlur -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlur" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlur</b></A><br>
+<!-- Class ScriptIntrinsicColorMatrix -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicColorMatrix" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicColorMatrix</b></A><br>
+<!-- Class ScriptIntrinsicConvolve3x3 -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve3x3" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve3x3</b></A><br>
+<!-- Class ScriptIntrinsicConvolve5x5 -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve5x5" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve5x5</b></A><br>
+<!-- Class ScriptIntrinsicLUT -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicLUT" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicLUT</b></A><br>
+<!-- Class ScriptIntrinsicYuvToRGB -->
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicYuvToRGB" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicYuvToRGB</b></A><br>
+<!-- Method sendBroadcastAsUser -->
+<i>sendBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendOrderedBroadcastAsUser -->
+<i>sendOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendStickyBroadcastAsUser -->
+<i>sendStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendStickyBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendStickyBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Method sendStickyOrderedBroadcastAsUser -->
+<i>sendStickyOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+<!-- Method sendStickyOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+<!-- Method sendStickyOrderedBroadcastAsUser -->
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<!-- Class Sensor -->
+<A HREF="android.hardware.Sensor.html" class="hiddenlink" target="rightframe">Sensor</A><br>
+<!-- Class ServiceInfo -->
+<A HREF="android.content.pm.ServiceInfo.html" class="hiddenlink" target="rightframe">ServiceInfo</A><br>
+<!-- Method setCertificate -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setCertificate_changed(android.net.http.SslCertificate)" class="hiddenlink" target="rightframe">setCertificate
+(<code>SslCertificate</code>)</A></nobr><br>
+<!-- Method setCompoundDrawablesRelative -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelative_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setCompoundDrawablesRelative</b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</A></nobr><br>
+<!-- Method setCompoundDrawablesRelativeWithIntrinsicBounds -->
+<i>setCompoundDrawablesRelativeWithIntrinsicBounds</i><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe">type <b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Method setCompoundDrawablesRelativeWithIntrinsicBounds -->
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(int, int, int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, int</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Method setElapsedRealtimeNanos -->
+<nobr><A HREF="android.location.Location.html#android.location.Location.setElapsedRealtimeNanos_added(long)" class="hiddenlink" target="rightframe"><b>setElapsedRealtimeNanos</b>
+(<code>long</code>)</A></nobr><br>
+<!-- Method setEnableSmoothTransition -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setEnableSmoothTransition_changed(boolean)" class="hiddenlink" target="rightframe">setEnableSmoothTransition
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setHasMipMap -->
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.setHasMipMap_added(boolean)" class="hiddenlink" target="rightframe"><b>setHasMipMap</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setHostname -->
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setHostname_added(java.net.Socket, java.lang.String)" class="hiddenlink" target="rightframe"><b>setHostname</b>
+(<code>Socket, String</code>)</A></nobr><br>
+<!-- Method setKeyguardDisabledFeatures -->
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.setKeyguardDisabledFeatures_added(android.content.ComponentName, int)" class="hiddenlink" target="rightframe"><b>setKeyguardDisabledFeatures</b>
+(<code>ComponentName, int</code>)</A></nobr><br>
+<!-- Method setLabeledBy -->
+<i>setLabeledBy</i><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabeledBy -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabelFor -->
+<i>setLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setLabelFor_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+<!-- Method setLabelFor -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabelFor -->
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<!-- Method setLabelFor -->
+ <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setLabelFor_added(int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int</code>)</b> in android.widget.RemoteViews
+</A></nobr><br>
+<!-- Method setLayerPaint -->
+<nobr><A HREF="android.view.View.html#android.view.View.setLayerPaint_added(android.graphics.Paint)" class="hiddenlink" target="rightframe"><b>setLayerPaint</b>
+(<code>Paint</code>)</A></nobr><br>
+<!-- Method setLayoutDirection -->
+<i>setLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLayoutDirection_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.content.res.Configuration
+</A></nobr><br>
+<!-- Method setLayoutDirection -->
+ <nobr><A HREF="android.view.View.html#android.view.View.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+<!-- Method setLayoutDirection -->
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<!-- Method setLocale -->
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>setLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<!-- Method setMapTrackballToArrowKeys -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setMapTrackballToArrowKeys_changed(boolean)" class="hiddenlink" target="rightframe">setMapTrackballToArrowKeys
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setMarginEnd -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginEnd_added(int)" class="hiddenlink" target="rightframe"><b>setMarginEnd</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setMarginStart -->
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginStart_added(int)" class="hiddenlink" target="rightframe"><b>setMarginStart</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setMediaPlaybackRequiresUserGesture -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setMediaPlaybackRequiresUserGesture_added(boolean)" class="hiddenlink" target="rightframe"><b>setMediaPlaybackRequiresUserGesture</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setNavDump -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setNavDump_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setNavDump</strike>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setOnDismissListener -->
+<i>setOnDismissListener</i><br>
+ <nobr><A HREF="android.app.AlertDialog.Builder.html#android.app.AlertDialog.Builder.setOnDismissListener_added(android.content.DialogInterface.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.app.AlertDialog.Builder
+</A></nobr><br>
+<!-- Method setOnDismissListener -->
+ <nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setOnDismissListener_added(android.widget.AutoCompleteTextView.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.widget.AutoCompleteTextView
+</A></nobr><br>
+<!-- Method setOnInfoListener -->
+<nobr><A HREF="android.widget.VideoView.html#android.widget.VideoView.setOnInfoListener_added(android.media.MediaPlayer.OnInfoListener)" class="hiddenlink" target="rightframe"><b>setOnInfoListener</b>
+(<code>OnInfoListener</code>)</A></nobr><br>
+<!-- Method setPaddingRelative -->
+<i>setPaddingRelative</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setPaddingRelative_added(int, int, int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, int</code>)</b> in android.view.View
+</A></nobr><br>
+<!-- Method setPaddingRelative -->
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setPaddingRelative_changed(int, int, int, int)" class="hiddenlink" target="rightframe">type
+(<code>int, int, int, int</code>) in android.widget.TextView
+</A></nobr><br>
+<!-- Method setSecure -->
+<nobr><A HREF="android.view.SurfaceView.html#android.view.SurfaceView.setSecure_added(boolean)" class="hiddenlink" target="rightframe"><b>setSecure</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setShowGTalkServiceStatus -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.setShowGTalkServiceStatus_changed(android.content.ContentResolver, boolean)" class="hiddenlink" target="rightframe">setShowGTalkServiceStatus
+(<code>ContentResolver, boolean</code>)</A></nobr><br>
+<!-- Method setShowWhen -->
+<nobr><A HREF="android.app.Notification.Builder.html#android.app.Notification.Builder.setShowWhen_added(boolean)" class="hiddenlink" target="rightframe"><b>setShowWhen</b>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setText -->
+<nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setText_added(java.lang.CharSequence, boolean)" class="hiddenlink" target="rightframe"><b>setText</b>
+(<code>CharSequence, boolean</code>)</A></nobr><br>
+<!-- Method setTextAlignment -->
+<nobr><A HREF="android.view.View.html#android.view.View.setTextAlignment_added(int)" class="hiddenlink" target="rightframe"><b>setTextAlignment</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setTextDirection -->
+<nobr><A HREF="android.view.View.html#android.view.View.setTextDirection_added(int)" class="hiddenlink" target="rightframe"><b>setTextDirection</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setTextLocale -->
+<i>setTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.graphics.Paint
+</A></nobr><br>
+<!-- Method setTextLocale -->
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<!-- Class Settings.Global -->
+<A HREF="pkg_android.provider.html#Settings.Global" class="hiddenlink" target="rightframe"><b>Settings.Global</b></A><br>
+<!-- Class Settings.Secure -->
+<A HREF="android.provider.Settings.Secure.html" class="hiddenlink" target="rightframe">Settings.Secure</A><br>
+<!-- Class Settings.System -->
+<A HREF="android.provider.Settings.System.html" class="hiddenlink" target="rightframe">Settings.System</A><br>
+<!-- Method setUseDoubleTree -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseDoubleTree_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseDoubleTree</strike>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setUserAgent -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUserAgent_removed(int)" class="hiddenlink" target="rightframe"><strike>setUserAgent</strike>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setUseSessionTickets -->
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setUseSessionTickets_added(java.net.Socket, boolean)" class="hiddenlink" target="rightframe"><b>setUseSessionTickets</b>
+(<code>Socket, boolean</code>)</A></nobr><br>
+<!-- Method setUseWebViewBackgroundForOverscrollBackground -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseWebViewBackgroundForOverscrollBackground_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseWebViewBackgroundForOverscrollBackground</strike>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Field SHOW_PROCESSES -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.SHOW_PROCESSES" class="hiddenlink" target="rightframe">SHOW_PROCESSES</A>
+</nobr><br>
+<!-- Field showOnLockScreen -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.showOnLockScreen" class="hiddenlink" target="rightframe">showOnLockScreen</A>
+</nobr><br>
+<!-- Field singleUser -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.singleUser" class="hiddenlink" target="rightframe">singleUser</A>
+</nobr><br>
+<!-- Class SlidingDrawer -->
+<A HREF="android.widget.SlidingDrawer.html" class="hiddenlink" target="rightframe">SlidingDrawer</A><br>
+<!-- Field SOCIAL_INFO -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SOCIAL_INFO" class="hiddenlink" target="rightframe">SOCIAL_INFO</A>
+</nobr><br>
+<!-- Class SSLCertificateSocketFactory -->
+<A HREF="android.net.SSLCertificateSocketFactory.html" class="hiddenlink" target="rightframe">SSLCertificateSocketFactory</A><br>
+<!-- Field STANDALONE_MONTH -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.STANDALONE_MONTH" class="hiddenlink" target="rightframe">STANDALONE_MONTH</A>
+</nobr><br>
+<!-- Field START_OF -->
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.START_OF" class="hiddenlink" target="rightframe">START_OF</A>
+</nobr><br>
+<!-- Field STATUS_BAR -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.STATUS_BAR" class="hiddenlink" target="rightframe">STATUS_BAR</A>
+</nobr><br>
+<!-- Field STAY_ON_WHILE_PLUGGED_IN -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.STAY_ON_WHILE_PLUGGED_IN" class="hiddenlink" target="rightframe">STAY_ON_WHILE_PLUGGED_IN</A>
+</nobr><br>
+<!-- Field subtypeId -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.subtypeId" class="hiddenlink" target="rightframe">subtypeId</A>
+</nobr><br>
+<!-- Method supportsAltitude -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsAltitude_changed()" class="hiddenlink" target="rightframe">supportsAltitude
+()</A></nobr><br>
+<!-- Method supportsBearing -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsBearing_changed()" class="hiddenlink" target="rightframe">supportsBearing
+()</A></nobr><br>
+<!-- Field supportsRtl -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.supportsRtl" class="hiddenlink" target="rightframe">supportsRtl</A>
+</nobr><br>
+<!-- Method supportsSpeed -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsSpeed_changed()" class="hiddenlink" target="rightframe">supportsSpeed
+()</A></nobr><br>
+<!-- Class Surface -->
+<A HREF="android.view.Surface.html" class="hiddenlink" target="rightframe">Surface</A><br>
+<!-- Class SurfaceView -->
+<A HREF="android.view.SurfaceView.html" class="hiddenlink" target="rightframe">SurfaceView</A><br>
+<!-- Field SYNC_SETTINGS -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYNC_SETTINGS" class="hiddenlink" target="rightframe">SYNC_SETTINGS</A>
+</nobr><br>
+<!-- Field SYSTEM_CLOCK -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYSTEM_CLOCK" class="hiddenlink" target="rightframe">SYSTEM_CLOCK</A>
+</nobr><br>
+<!-- Class SystemClock -->
+<A HREF="android.os.SystemClock.html" class="hiddenlink" target="rightframe">SystemClock</A><br>
+<!-- Field TABLE_INFO_PRAGMA_DEFAULT_INDEX -->
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.database.DatabaseUtils.InsertHelper.html#android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_DEFAULT_INDEX" class="hiddenlink" target="rightframe"><strike>TABLE_INFO_PRAGMA_DEFAULT_INDEX</strike></A>
+</nobr><br>
+<!-- Class TelephonyManager -->
+<A HREF="android.telephony.TelephonyManager.html" class="hiddenlink" target="rightframe">TelephonyManager</A><br>
+<!-- Field TEXT_ALIGNMENT_CENTER -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_CENTER" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_CENTER</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_GRAVITY -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_GRAVITY" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_GRAVITY</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_RESOLVED_DEFAULT -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_RESOLVED_DEFAULT" class="hiddenlink" target="rightframe"><strike>TEXT_ALIGNMENT_RESOLVED_DEFAULT</strike></A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_TEXT_END -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_END</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_TEXT_START -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_START</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_VIEW_END -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_END</A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_VIEW_START -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_START</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_ANY_RTL -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_ANY_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_ANY_RTL</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_FIRST_STRONG -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_FIRST_STRONG" class="hiddenlink" target="rightframe">TEXT_DIRECTION_FIRST_STRONG</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_INHERIT -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">TEXT_DIRECTION_INHERIT</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_LOCALE -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LOCALE</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_LTR -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LTR" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LTR</A>
+</nobr><br>
+<!-- Field TEXT_DIRECTION_RTL -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_RTL</A>
+</nobr><br>
+<!-- Field textAlignment -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.textAlignment" class="hiddenlink" target="rightframe">textAlignment</A>
+</nobr><br>
+<!-- Class TextClock -->
+<A HREF="pkg_android.widget.html#TextClock" class="hiddenlink" target="rightframe"><b>TextClock</b></A><br>
+<!-- Field textDirection -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.textDirection" class="hiddenlink" target="rightframe">textDirection</A>
+</nobr><br>
+<!-- Class TextUtils -->
+<A HREF="android.text.TextUtils.html" class="hiddenlink" target="rightframe">TextUtils</A><br>
+<!-- Class TextView -->
+<A HREF="android.widget.TextView.html" class="hiddenlink" target="rightframe">TextView</A><br>
+<!-- Field timestamp -->
+<nobr><A HREF="android.net.wifi.ScanResult.html#android.net.wifi.ScanResult.timestamp" class="hiddenlink" target="rightframe">timestamp</A>
+</nobr><br>
+<!-- Field timeZone -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.timeZone" class="hiddenlink" target="rightframe">timeZone</A>
+</nobr><br>
+<!-- Field TRANSITION_ANIMATION_SCALE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.TRANSITION_ANIMATION_SCALE" class="hiddenlink" target="rightframe">TRANSITION_ANIMATION_SCALE</A>
+</nobr><br>
+<!-- Method trimToSize -->
+<nobr><A HREF="android.util.LruCache.html#android.util.LruCache.trimToSize_added(int)" class="hiddenlink" target="rightframe"><b>trimToSize</b>
+(<code>int</code>)</A></nobr><br>
+<!-- Class TwoLineListItem -->
+<A HREF="android.widget.TwoLineListItem.html" class="hiddenlink" target="rightframe">TwoLineListItem</A><br>
+<!-- Field TYPE_GESTURE_DETECTION_END -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_END" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_END</A>
+</nobr><br>
+<!-- Field TYPE_GESTURE_DETECTION_START -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_START" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_START</A>
+</nobr><br>
+<!-- Field TYPE_TOUCH_INTERACTION_END -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_END" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_END</A>
+</nobr><br>
+<!-- Field TYPE_TOUCH_INTERACTION_START -->
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_START" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_START</A>
+</nobr><br>
+<!-- Field UID_2445 -->
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.UID_2445" class="hiddenlink" target="rightframe">UID_2445</A>
+</nobr><br>
+<!-- Method unlockCanvas -->
+<nobr><A HREF="android.view.Surface.html#android.view.Surface.unlockCanvas_changed(android.graphics.Canvas)" class="hiddenlink" target="rightframe">unlockCanvas
+(<code>Canvas</code>)</A></nobr><br>
+<!-- Field USB_MASS_STORAGE_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USB_MASS_STORAGE_ENABLED" class="hiddenlink" target="rightframe">USB_MASS_STORAGE_ENABLED</A>
+</nobr><br>
+<!-- Field USE_GOOGLE_MAIL -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USE_GOOGLE_MAIL" class="hiddenlink" target="rightframe">USE_GOOGLE_MAIL</A>
+</nobr><br>
+<!-- Field USER_DICTIONARY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.USER_DICTIONARY" class="hiddenlink" target="rightframe">USER_DICTIONARY</A>
+</nobr><br>
+<!-- Field USER_SERVICE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.USER_SERVICE" class="hiddenlink" target="rightframe">USER_SERVICE</A>
+</nobr><br>
+<!-- Class UserHandle -->
+<A HREF="pkg_android.os.html#UserHandle" class="hiddenlink" target="rightframe"><b>UserHandle</b></A><br>
+<!-- Class UserManager -->
+<A HREF="pkg_android.os.html#UserManager" class="hiddenlink" target="rightframe"><b>UserManager</b></A><br>
+<!-- Field USES_POLICY_DISABLE_KEYGUARD_FEATURES -->
+<nobr><A HREF="android.app.admin.DeviceAdminInfo.html#android.app.admin.DeviceAdminInfo.USES_POLICY_DISABLE_KEYGUARD_FEATURES" class="hiddenlink" target="rightframe">USES_POLICY_DISABLE_KEYGUARD_FEATURES</A>
+</nobr><br>
+<!-- Class VideoView -->
+<A NAME="V"></A>
+<br><font size="+2">V</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.widget.VideoView.html" class="hiddenlink" target="rightframe">VideoView</A><br>
+<!-- Class View -->
+<A HREF="android.view.View.html" class="hiddenlink" target="rightframe">View</A><br>
+<!-- Class ViewAnimator -->
+<A HREF="android.widget.ViewAnimator.html" class="hiddenlink" target="rightframe">ViewAnimator</A><br>
+<!-- Class ViewGroup.LayoutParams -->
+<A HREF="android.view.ViewGroup.LayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.LayoutParams</A><br>
+<!-- Class ViewGroup.MarginLayoutParams -->
+<A HREF="android.view.ViewGroup.MarginLayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.MarginLayoutParams</A><br>
+<!-- Field VOICEMAIL -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.VOICEMAIL" class="hiddenlink" target="rightframe">VOICEMAIL</A>
+</nobr><br>
+<!-- Field WAIT_FOR_DEBUGGER -->
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WAIT_FOR_DEBUGGER" class="hiddenlink" target="rightframe">WAIT_FOR_DEBUGGER</A>
+</nobr><br>
+<!-- Method wakeUp -->
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.wakeUp_added(long)" class="hiddenlink" target="rightframe"><b>wakeUp</b>
+(<code>long</code>)</A></nobr><br>
+<!-- Field WALLPAPER -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WALLPAPER" class="hiddenlink" target="rightframe">WALLPAPER</A>
+</nobr><br>
+<!-- Field WALLPAPER_ACTIVITY -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WALLPAPER_ACTIVITY" class="hiddenlink" target="rightframe">WALLPAPER_ACTIVITY</A>
+</nobr><br>
+<!-- Class WallpaperManager -->
+<A HREF="android.app.WallpaperManager.html" class="hiddenlink" target="rightframe">WallpaperManager</A><br>
+<!-- Class WebChromeClient -->
+<A HREF="android.webkit.WebChromeClient.html" class="hiddenlink" target="rightframe">WebChromeClient</A><br>
+<!-- Class WebHistoryItem -->
+<A HREF="android.webkit.WebHistoryItem.html" class="hiddenlink" target="rightframe">WebHistoryItem</A><br>
+<!-- Class WebSettings -->
+<A HREF="android.webkit.WebSettings.html" class="hiddenlink" target="rightframe">WebSettings</A><br>
+<!-- Class WebView -->
+<i>WebView</i><br>
+ <A HREF="android.webkit.WebView.html" class="hiddenlink" target="rightframe">android.webkit</A><br>
+<!-- Constructor WebView -->
+ <nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.ctor_changed(android.content.Context, android.util.AttributeSet, int, boolean)" class="hiddenlink" target="rightframe">WebView
+(<code>Context, AttributeSet, int, boolean</code>)</A></nobr> constructor<br>
+<!-- Class WebViewDatabase -->
+<A HREF="android.webkit.WebViewDatabase.html" class="hiddenlink" target="rightframe">WebViewDatabase</A><br>
+<!-- Field WIDGET_CATEGORY_HOME_SCREEN -->
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_HOME_SCREEN</A>
+</nobr><br>
+<!-- Field WIDGET_CATEGORY_KEYGUARD -->
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_KEYGUARD</A>
+</nobr><br>
+<!-- Field Widget_DeviceDefault_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_CheckedTextView</A>
+</nobr><br>
+<!-- Field Widget_DeviceDefault_Light_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_Light_CheckedTextView</A>
+</nobr><br>
+<!-- Field Widget_Holo_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_CheckedTextView</A>
+</nobr><br>
+<!-- Field Widget_Holo_Light_CheckedTextView -->
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_Light_CheckedTextView</A>
+</nobr><br>
+<!-- Field widgetCategory -->
+<i>widgetCategory</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.widgetCategory" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<!-- Field widgetCategory -->
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.widgetCategory" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<!-- Field WIFI_MAX_DHCP_RETRY_COUNT -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MAX_DHCP_RETRY_COUNT" class="hiddenlink" target="rightframe">WIFI_MAX_DHCP_RETRY_COUNT</A>
+</nobr><br>
+<!-- Field WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" class="hiddenlink" target="rightframe">WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS</A>
+</nobr><br>
+<!-- Field WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON</A>
+</nobr><br>
+<!-- Field WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY</A>
+</nobr><br>
+<!-- Field WIFI_NUM_OPEN_NETWORKS_KEPT -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT" class="hiddenlink" target="rightframe">WIFI_NUM_OPEN_NETWORKS_KEPT</A>
+</nobr><br>
+<!-- Field WIFI_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_ON" class="hiddenlink" target="rightframe">WIFI_ON</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY_DEFAULT -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_DEFAULT" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_DEFAULT</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY_NEVER -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_DNS1 -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS1" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS1</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_DNS2 -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS2" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS2</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_GATEWAY -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_GATEWAY" class="hiddenlink" target="rightframe">WIFI_STATIC_GATEWAY</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_IP -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_STATIC_IP</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_NETMASK -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_NETMASK" class="hiddenlink" target="rightframe">WIFI_STATIC_NETMASK</A>
+</nobr><br>
+<!-- Field WIFI_USE_STATIC_IP -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_USE_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_USE_STATIC_IP</A>
+</nobr><br>
+<!-- Field WIFI_WATCHDOG_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_WATCHDOG_ON" class="hiddenlink" target="rightframe">WIFI_WATCHDOG_ON</A>
+</nobr><br>
+<!-- Field WINDOW_ANIMATION_SCALE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WINDOW_ANIMATION_SCALE" class="hiddenlink" target="rightframe">WINDOW_ANIMATION_SCALE</A>
+</nobr><br>
+<!-- Class WindowManager.InvalidDisplayException -->
+<A HREF="pkg_android.view.html#WindowManager.InvalidDisplayException" class="hiddenlink" target="rightframe"><b>WindowManager.InvalidDisplayException</b></A><br>
+<!-- Class WindowManager.LayoutParams -->
+<A HREF="android.view.WindowManager.LayoutParams.html" class="hiddenlink" target="rightframe">WindowManager.LayoutParams</A><br>
+<!-- Field WRITE_USER_DICTIONARY -->
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WRITE_USER_DICTIONARY" class="hiddenlink" target="rightframe">WRITE_USER_DICTIONARY</A>
+</nobr><br>
+<!-- Class X509TrustManagerExtensions -->
+<A NAME="X"></A>
+<br><font size="+2">X</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.net.http.html#X509TrustManagerExtensions" class="hiddenlink" target="rightframe"><b>X509TrustManagerExtensions</b></A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/alldiffs_index_changes.html b/docs/html/sdk/api_diff/17/changes/alldiffs_index_changes.html
new file mode 100644
index 0000000..6cd23cc
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/alldiffs_index_changes.html
@@ -0,0 +1,1142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+All Changes Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="alldiffs_index_all.html" xclass="hiddenlink">All Differences</a>
+ <br>
+<A HREF="alldiffs_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="alldiffs_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<b>Changes</b>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<!-- Field ABBREV_MONTH_FORMAT -->
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.ABBREV_MONTH_FORMAT" class="hiddenlink" target="rightframe">ABBREV_MONTH_FORMAT</A>
+</nobr><br>
+<!-- Class AbstractInputMethodService -->
+<A HREF="android.inputmethodservice.AbstractInputMethodService.html" class="hiddenlink" target="rightframe">AbstractInputMethodService</A><br>
+<!-- Class AbstractInputMethodService.AbstractInputMethodSessionImpl -->
+<A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html" class="hiddenlink" target="rightframe">AbstractInputMethodService.AbstractInputMethodSessionImpl</A><br>
+<!-- Class AccessibilityEvent -->
+<A HREF="android.view.accessibility.AccessibilityEvent.html" class="hiddenlink" target="rightframe">AccessibilityEvent</A><br>
+<!-- Class AccessibilityNodeInfo -->
+<A HREF="android.view.accessibility.AccessibilityNodeInfo.html" class="hiddenlink" target="rightframe">AccessibilityNodeInfo</A><br>
+<!-- Class AccessibilityService -->
+<A HREF="android.accessibilityservice.AccessibilityService.html" class="hiddenlink" target="rightframe">AccessibilityService</A><br>
+<!-- Class AccessibilityServiceInfo -->
+<A HREF="android.accessibilityservice.AccessibilityServiceInfo.html" class="hiddenlink" target="rightframe">AccessibilityServiceInfo</A><br>
+<!-- Class Activity -->
+<A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
+<!-- Class ActivityInfo -->
+<A HREF="android.content.pm.ActivityInfo.html" class="hiddenlink" target="rightframe">ActivityInfo</A><br>
+<!-- Field ADB_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ADB_ENABLED" class="hiddenlink" target="rightframe">ADB_ENABLED</A>
+</nobr><br>
+<!-- Field AIRPLANE_MODE_ON -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_ON" class="hiddenlink" target="rightframe">AIRPLANE_MODE_ON</A>
+</nobr><br>
+<!-- Field AIRPLANE_MODE_RADIOS -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_RADIOS" class="hiddenlink" target="rightframe">AIRPLANE_MODE_RADIOS</A>
+</nobr><br>
+<!-- Class AlertDialog.Builder -->
+<A HREF="android.app.AlertDialog.Builder.html" class="hiddenlink" target="rightframe">AlertDialog.Builder</A><br>
+<!-- Field ALWAYS_FINISH_ACTIVITIES -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ALWAYS_FINISH_ACTIVITIES" class="hiddenlink" target="rightframe">ALWAYS_FINISH_ACTIVITIES</A>
+</nobr><br>
+<!-- Package android -->
+<A HREF="pkg_android.html" class="hiddenlink" target="rightframe">android</A><br>
+<!-- Package android.accessibilityservice -->
+<A HREF="pkg_android.accessibilityservice.html" class="hiddenlink" target="rightframe">android.accessibilityservice</A><br>
+<!-- Package android.app -->
+<A HREF="pkg_android.app.html" class="hiddenlink" target="rightframe">android.app</A><br>
+<!-- Package android.app.admin -->
+<A HREF="pkg_android.app.admin.html" class="hiddenlink" target="rightframe">android.app.admin</A><br>
+<!-- Package android.appwidget -->
+<A HREF="pkg_android.appwidget.html" class="hiddenlink" target="rightframe">android.appwidget</A><br>
+<!-- Package android.bluetooth -->
+<A HREF="pkg_android.bluetooth.html" class="hiddenlink" target="rightframe">android.bluetooth</A><br>
+<!-- Package android.content -->
+<A HREF="pkg_android.content.html" class="hiddenlink" target="rightframe">android.content</A><br>
+<!-- Package android.content.pm -->
+<A HREF="pkg_android.content.pm.html" class="hiddenlink" target="rightframe">android.content.pm</A><br>
+<!-- Package android.content.res -->
+<A HREF="pkg_android.content.res.html" class="hiddenlink" target="rightframe">android.content.res</A><br>
+<!-- Package android.database -->
+<A HREF="pkg_android.database.html" class="hiddenlink" target="rightframe">android.database</A><br>
+<!-- Package android.graphics -->
+<A HREF="pkg_android.graphics.html" class="hiddenlink" target="rightframe">android.graphics</A><br>
+<!-- Package android.hardware -->
+<A HREF="pkg_android.hardware.html" class="hiddenlink" target="rightframe">android.hardware</A><br>
+<!-- Package android.inputmethodservice -->
+<A HREF="pkg_android.inputmethodservice.html" class="hiddenlink" target="rightframe">android.inputmethodservice</A><br>
+<!-- Package android.location -->
+<A HREF="pkg_android.location.html" class="hiddenlink" target="rightframe">android.location</A><br>
+<!-- Package android.media -->
+<A HREF="pkg_android.media.html" class="hiddenlink" target="rightframe">android.media</A><br>
+<!-- Package android.net -->
+<A HREF="pkg_android.net.html" class="hiddenlink" target="rightframe">android.net</A><br>
+<!-- Package android.net.http -->
+<A HREF="pkg_android.net.http.html" class="hiddenlink" target="rightframe">android.net.http</A><br>
+<!-- Package android.net.wifi -->
+<A HREF="pkg_android.net.wifi.html" class="hiddenlink" target="rightframe">android.net.wifi</A><br>
+<!-- Package android.nfc.tech -->
+<A HREF="pkg_android.nfc.tech.html" class="hiddenlink" target="rightframe">android.nfc.tech</A><br>
+<!-- Package android.opengl -->
+<A HREF="pkg_android.opengl.html" class="hiddenlink" target="rightframe">android.opengl</A><br>
+<!-- Package android.os -->
+<A HREF="pkg_android.os.html" class="hiddenlink" target="rightframe">android.os</A><br>
+<!-- Package android.provider -->
+<A HREF="pkg_android.provider.html" class="hiddenlink" target="rightframe">android.provider</A><br>
+<!-- Package android.renderscript -->
+<A HREF="pkg_android.renderscript.html" class="hiddenlink" target="rightframe">android.renderscript</A><br>
+<!-- Package android.telephony -->
+<A HREF="pkg_android.telephony.html" class="hiddenlink" target="rightframe">android.telephony</A><br>
+<!-- Package android.telephony.cdma -->
+<A HREF="pkg_android.telephony.cdma.html" class="hiddenlink" target="rightframe">android.telephony.cdma</A><br>
+<!-- Package android.test.mock -->
+<A HREF="pkg_android.test.mock.html" class="hiddenlink" target="rightframe">android.test.mock</A><br>
+<!-- Package android.text -->
+<A HREF="pkg_android.text.html" class="hiddenlink" target="rightframe">android.text</A><br>
+<!-- Package android.text.format -->
+<A HREF="pkg_android.text.format.html" class="hiddenlink" target="rightframe">android.text.format</A><br>
+<!-- Package android.text.style -->
+<A HREF="pkg_android.text.style.html" class="hiddenlink" target="rightframe">android.text.style</A><br>
+<!-- Package android.util -->
+<A HREF="pkg_android.util.html" class="hiddenlink" target="rightframe">android.util</A><br>
+<!-- Package android.view -->
+<A HREF="pkg_android.view.html" class="hiddenlink" target="rightframe">android.view</A><br>
+<!-- Package android.view.accessibility -->
+<A HREF="pkg_android.view.accessibility.html" class="hiddenlink" target="rightframe">android.view.accessibility</A><br>
+<!-- Package android.view.inputmethod -->
+<A HREF="pkg_android.view.inputmethod.html" class="hiddenlink" target="rightframe">android.view.inputmethod</A><br>
+<!-- Package android.webkit -->
+<A HREF="pkg_android.webkit.html" class="hiddenlink" target="rightframe">android.webkit</A><br>
+<!-- Package android.widget -->
+<A HREF="pkg_android.widget.html" class="hiddenlink" target="rightframe">android.widget</A><br>
+<!-- Field ANIMATOR_DURATION_SCALE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ANIMATOR_DURATION_SCALE" class="hiddenlink" target="rightframe">ANIMATOR_DURATION_SCALE</A>
+</nobr><br>
+<!-- Class ApplicationInfo -->
+<A HREF="android.content.pm.ApplicationInfo.html" class="hiddenlink" target="rightframe">ApplicationInfo</A><br>
+<!-- Class AppWidgetHost -->
+<A HREF="android.appwidget.AppWidgetHost.html" class="hiddenlink" target="rightframe">AppWidgetHost</A><br>
+<!-- Class AppWidgetManager -->
+<A HREF="android.appwidget.AppWidgetManager.html" class="hiddenlink" target="rightframe">AppWidgetManager</A><br>
+<!-- Class AppWidgetProviderInfo -->
+<A HREF="android.appwidget.AppWidgetProviderInfo.html" class="hiddenlink" target="rightframe">AppWidgetProviderInfo</A><br>
+<!-- Class AudioManager -->
+<A HREF="android.media.AudioManager.html" class="hiddenlink" target="rightframe">AudioManager</A><br>
+<!-- Field AUTO_TIME -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME" class="hiddenlink" target="rightframe">AUTO_TIME</A>
+</nobr><br>
+<!-- Field AUTO_TIME_ZONE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME_ZONE" class="hiddenlink" target="rightframe">AUTO_TIME_ZONE</A>
+</nobr><br>
+<!-- Class AutoCompleteTextView -->
+<A HREF="android.widget.AutoCompleteTextView.html" class="hiddenlink" target="rightframe">AutoCompleteTextView</A><br>
+<!-- Class BatteryManager -->
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.os.BatteryManager.html" class="hiddenlink" target="rightframe">BatteryManager</A><br>
+<!-- Class Binder -->
+<A HREF="android.os.Binder.html" class="hiddenlink" target="rightframe">Binder</A><br>
+<!-- Class Bitmap -->
+<A HREF="android.graphics.Bitmap.html" class="hiddenlink" target="rightframe">Bitmap</A><br>
+<!-- Field BLUETOOTH_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.BLUETOOTH_ON" class="hiddenlink" target="rightframe">BLUETOOTH_ON</A>
+</nobr><br>
+<!-- Class BluetoothA2dp -->
+<A HREF="android.bluetooth.BluetoothA2dp.html" class="hiddenlink" target="rightframe">BluetoothA2dp</A><br>
+<!-- Class Build.VERSION_CODES -->
+<A HREF="android.os.Build.VERSION_CODES.html" class="hiddenlink" target="rightframe">Build.VERSION_CODES</A><br>
+<!-- Class CalendarContract.CalendarColumns -->
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.provider.CalendarContract.CalendarColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.CalendarColumns</i></A><br>
+<!-- Class CalendarContract.EventsColumns -->
+<A HREF="android.provider.CalendarContract.EventsColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.EventsColumns</i></A><br>
+<!-- Class CallLog.Calls -->
+<A HREF="android.provider.CallLog.Calls.html" class="hiddenlink" target="rightframe">CallLog.Calls</A><br>
+<!-- Class Camera -->
+<A HREF="android.hardware.Camera.html" class="hiddenlink" target="rightframe">Camera</A><br>
+<!-- Class Camera.CameraInfo -->
+<A HREF="android.hardware.Camera.CameraInfo.html" class="hiddenlink" target="rightframe">Camera.CameraInfo</A><br>
+<!-- Class Camera.Parameters -->
+<A HREF="android.hardware.Camera.Parameters.html" class="hiddenlink" target="rightframe">Camera.Parameters</A><br>
+<!-- Method canZoomIn -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomIn_changed()" class="hiddenlink" target="rightframe">canZoomIn
+()</A></nobr><br>
+<!-- Method canZoomOut -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomOut_changed()" class="hiddenlink" target="rightframe">canZoomOut
+()</A></nobr><br>
+<!-- Class CdmaCellLocation -->
+<A HREF="android.telephony.cdma.CdmaCellLocation.html" class="hiddenlink" target="rightframe">CdmaCellLocation</A><br>
+<!-- Class CheckedTextView -->
+<A HREF="android.widget.CheckedTextView.html" class="hiddenlink" target="rightframe">CheckedTextView</A><br>
+<!-- Method clone -->
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.clone_changed()" class="hiddenlink" target="rightframe">clone
+()</A></nobr><br>
+<!-- Class Configuration -->
+<A HREF="android.content.res.Configuration.html" class="hiddenlink" target="rightframe">Configuration</A><br>
+<!-- Class ConnectivityManager -->
+<A HREF="android.net.ConnectivityManager.html" class="hiddenlink" target="rightframe">ConnectivityManager</A><br>
+<!-- Class ContentProviderClient -->
+<A HREF="android.content.ContentProviderClient.html" class="hiddenlink" target="rightframe">ContentProviderClient</A><br>
+<!-- Class Context -->
+<A HREF="android.content.Context.html" class="hiddenlink" target="rightframe">Context</A><br>
+<!-- Class ContextThemeWrapper -->
+<A HREF="android.view.ContextThemeWrapper.html" class="hiddenlink" target="rightframe">ContextThemeWrapper</A><br>
+<!-- Class ContextWrapper -->
+<A HREF="android.content.ContextWrapper.html" class="hiddenlink" target="rightframe">ContextWrapper</A><br>
+<!-- Field DATA_ROAMING -->
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DATA_ROAMING" class="hiddenlink" target="rightframe">DATA_ROAMING</A>
+</nobr><br>
+<!-- Class DatabaseUtils.InsertHelper -->
+<A HREF="android.database.DatabaseUtils.InsertHelper.html" class="hiddenlink" target="rightframe">DatabaseUtils.InsertHelper</A><br>
+<!-- Class DateFormat -->
+<A HREF="android.text.format.DateFormat.html" class="hiddenlink" target="rightframe">DateFormat</A><br>
+<!-- Class DateUtils -->
+<A HREF="android.text.format.DateUtils.html" class="hiddenlink" target="rightframe">DateUtils</A><br>
+<!-- Field DEBUG_APP -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DEBUG_APP" class="hiddenlink" target="rightframe">DEBUG_APP</A>
+</nobr><br>
+<!-- Field DEVELOPMENT_SETTINGS_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED" class="hiddenlink" target="rightframe">DEVELOPMENT_SETTINGS_ENABLED</A>
+</nobr><br>
+<!-- Field DEVICE_PROVISIONED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVICE_PROVISIONED" class="hiddenlink" target="rightframe">DEVICE_PROVISIONED</A>
+</nobr><br>
+<!-- Class DeviceAdminInfo -->
+<A HREF="android.app.admin.DeviceAdminInfo.html" class="hiddenlink" target="rightframe">DeviceAdminInfo</A><br>
+<!-- Class DevicePolicyManager -->
+<A HREF="android.app.admin.DevicePolicyManager.html" class="hiddenlink" target="rightframe">DevicePolicyManager</A><br>
+<!-- Class DigitalClock -->
+<A HREF="android.widget.DigitalClock.html" class="hiddenlink" target="rightframe">DigitalClock</A><br>
+<!-- Field DIM_SCREEN -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DIM_SCREEN" class="hiddenlink" target="rightframe">DIM_SCREEN</A>
+</nobr><br>
+<!-- Class Display -->
+<A HREF="android.view.Display.html" class="hiddenlink" target="rightframe">Display</A><br>
+<!-- Class DisplayMetrics -->
+<A HREF="android.util.DisplayMetrics.html" class="hiddenlink" target="rightframe">DisplayMetrics</A><br>
+<!-- Method enableSmoothTransition -->
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.enableSmoothTransition_changed()" class="hiddenlink" target="rightframe">enableSmoothTransition
+()</A></nobr><br>
+<!-- Method finalize -->
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.bluetooth.BluetoothA2dp.html#android.bluetooth.BluetoothA2dp.finalize_changed()" class="hiddenlink" target="rightframe">finalize
+()</A></nobr><br>
+<!-- Field FLAG_DITHER -->
+<nobr><A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.FLAG_DITHER" class="hiddenlink" target="rightframe">FLAG_DITHER</A>
+</nobr><br>
+<!-- Class FloatMath -->
+<A HREF="android.util.FloatMath.html" class="hiddenlink" target="rightframe">FloatMath</A><br>
+<!-- Method format -->
+<i>format</i><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Calendar)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Calendar</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<!-- Method format -->
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Date)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Date</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<!-- Method format -->
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, long)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, long</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<!-- Field FORMAT_12HOUR -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_12HOUR" class="hiddenlink" target="rightframe">FORMAT_12HOUR</A>
+</nobr><br>
+<!-- Field FORMAT_24HOUR -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_24HOUR" class="hiddenlink" target="rightframe">FORMAT_24HOUR</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_AMPM -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_AMPM" class="hiddenlink" target="rightframe">FORMAT_CAP_AMPM</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_MIDNIGHT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_MIDNIGHT</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_NOON -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON</A>
+</nobr><br>
+<!-- Field FORMAT_CAP_NOON_MIDNIGHT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON_MIDNIGHT</A>
+</nobr><br>
+<!-- Field FORMAT_NO_NOON_MIDNIGHT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_NO_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_NO_NOON_MIDNIGHT</A>
+</nobr><br>
+<!-- Class Fragment -->
+<A HREF="android.app.Fragment.html" class="hiddenlink" target="rightframe">Fragment</A><br>
+<!-- Class FragmentManager -->
+<A HREF="android.app.FragmentManager.html" class="hiddenlink" target="rightframe">FragmentManager</A><br>
+<!-- Field FULL_WAKE_LOCK -->
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.FULL_WAKE_LOCK" class="hiddenlink" target="rightframe">FULL_WAKE_LOCK</A>
+</nobr><br>
+<!-- Method getAccuracy -->
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getAccuracy_changed()" class="hiddenlink" target="rightframe">getAccuracy
+()</A></nobr><br>
+<!-- Method getAMPMString -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getAMPMString_changed(int)" class="hiddenlink" target="rightframe">getAMPMString
+(<code>int</code>)</A></nobr><br>
+<!-- Method getDateFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getDateFormatOrder -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormatOrder_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormatOrder
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getDayOfWeekString -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getDayOfWeekString_changed(int, int)" class="hiddenlink" target="rightframe">getDayOfWeekString
+(<code>int, int</code>)</A></nobr><br>
+<!-- Method getLongDateFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getLongDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getLongDateFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getMediumDateFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getMediumDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getMediumDateFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Method getMonthString -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getMonthString_changed(int, int)" class="hiddenlink" target="rightframe">getMonthString
+(<code>int, int</code>)</A></nobr><br>
+<!-- Method getPixelFormat -->
+<nobr><A HREF="android.view.Display.html#android.view.Display.getPixelFormat_changed()" class="hiddenlink" target="rightframe">getPixelFormat
+()</A></nobr><br>
+<!-- Method getPowerRequirement -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getPowerRequirement_changed()" class="hiddenlink" target="rightframe">getPowerRequirement
+()</A></nobr><br>
+<!-- Method getScale -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getScale_changed()" class="hiddenlink" target="rightframe">getScale
+()</A></nobr><br>
+<!-- Method getShowGTalkServiceStatus -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.getShowGTalkServiceStatus_changed(android.content.ContentResolver)" class="hiddenlink" target="rightframe">getShowGTalkServiceStatus
+(<code>ContentResolver</code>)</A></nobr><br>
+<!-- Method getTargetPackage -->
+<i>getTargetPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.app.PendingIntent
+</A></nobr><br>
+<!-- Method getTargetPackage -->
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.content.IntentSender
+</A></nobr><br>
+<!-- Method getTimeFormat -->
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getTimeFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getTimeFormat
+(<code>Context</code>)</A></nobr><br>
+<!-- Class GLES20 -->
+<A HREF="android.opengl.GLES20.html" class="hiddenlink" target="rightframe">GLES20</A><br>
+<!-- Class Gravity -->
+<A HREF="android.view.Gravity.html" class="hiddenlink" target="rightframe">Gravity</A><br>
+<!-- Method hasMonetaryCost -->
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.hasMonetaryCost_changed()" class="hiddenlink" target="rightframe">hasMonetaryCost
+()</A></nobr><br>
+<!-- Field HOUR_MINUTE_24 -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.HOUR_MINUTE_24" class="hiddenlink" target="rightframe">HOUR_MINUTE_24</A>
+</nobr><br>
+<!-- Field HTTP_PROXY -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.HTTP_PROXY" class="hiddenlink" target="rightframe">HTTP_PROXY</A>
+</nobr><br>
+<!-- Class InputMethodService -->
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.inputmethodservice.InputMethodService.html" class="hiddenlink" target="rightframe">InputMethodService</A><br>
+<!-- Class InputMethodSession -->
+<A HREF="android.view.inputmethod.InputMethodSession.html" class="hiddenlink" target="rightframe"><i>InputMethodSession</i></A><br>
+<!-- Class InputMethodSubtype -->
+<A HREF="android.view.inputmethod.InputMethodSubtype.html" class="hiddenlink" target="rightframe">InputMethodSubtype</A><br>
+<!-- Field INSTALL_NON_MARKET_APPS -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.INSTALL_NON_MARKET_APPS" class="hiddenlink" target="rightframe">INSTALL_NON_MARKET_APPS</A>
+</nobr><br>
+<!-- Class Intent -->
+<A HREF="android.content.Intent.html" class="hiddenlink" target="rightframe">Intent</A><br>
+<!-- Class IntentSender -->
+<A HREF="android.content.IntentSender.html" class="hiddenlink" target="rightframe">IntentSender</A><br>
+<!-- Field LENGTH_LONG -->
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_LONG" class="hiddenlink" target="rightframe">LENGTH_LONG</A>
+</nobr><br>
+<!-- Field LENGTH_MEDIUM -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_MEDIUM" class="hiddenlink" target="rightframe">LENGTH_MEDIUM</A>
+</nobr><br>
+<!-- Field LENGTH_SHORT -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORT" class="hiddenlink" target="rightframe">LENGTH_SHORT</A>
+</nobr><br>
+<!-- Field LENGTH_SHORTER -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTER" class="hiddenlink" target="rightframe">LENGTH_SHORTER</A>
+</nobr><br>
+<!-- Field LENGTH_SHORTEST -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTEST" class="hiddenlink" target="rightframe">LENGTH_SHORTEST</A>
+</nobr><br>
+<!-- Field LOAD_NORMAL -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.LOAD_NORMAL" class="hiddenlink" target="rightframe">LOAD_NORMAL</A>
+</nobr><br>
+<!-- Class LocalSocket -->
+<A HREF="android.net.LocalSocket.html" class="hiddenlink" target="rightframe">LocalSocket</A><br>
+<!-- Class Location -->
+<A HREF="android.location.Location.html" class="hiddenlink" target="rightframe">Location</A><br>
+<!-- Class LocationProvider -->
+<A HREF="android.location.LocationProvider.html" class="hiddenlink" target="rightframe">LocationProvider</A><br>
+<!-- Field LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED</A>
+</nobr><br>
+<!-- Class LruCache -->
+<A HREF="android.util.LruCache.html" class="hiddenlink" target="rightframe">LruCache</A><br>
+<!-- Class Manifest.permission_group -->
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.Manifest.permission_group.html" class="hiddenlink" target="rightframe">Manifest.permission_group</A><br>
+<!-- Class MediaMetadataRetriever -->
+<A HREF="android.media.MediaMetadataRetriever.html" class="hiddenlink" target="rightframe">MediaMetadataRetriever</A><br>
+<!-- Class MediaPlayer -->
+<A HREF="android.media.MediaPlayer.html" class="hiddenlink" target="rightframe">MediaPlayer</A><br>
+<!-- Class MediaRecorder -->
+<A HREF="android.media.MediaRecorder.html" class="hiddenlink" target="rightframe">MediaRecorder</A><br>
+<!-- Class MediaRouter -->
+<A HREF="android.media.MediaRouter.html" class="hiddenlink" target="rightframe">MediaRouter</A><br>
+<!-- Class MediaRouter.Callback -->
+<A HREF="android.media.MediaRouter.Callback.html" class="hiddenlink" target="rightframe">MediaRouter.Callback</A><br>
+<!-- Class MediaRouter.RouteInfo -->
+<A HREF="android.media.MediaRouter.RouteInfo.html" class="hiddenlink" target="rightframe">MediaRouter.RouteInfo</A><br>
+<!-- Class MediaStore -->
+<A HREF="android.provider.MediaStore.html" class="hiddenlink" target="rightframe">MediaStore</A><br>
+<!-- Class MockContext -->
+<A HREF="android.test.mock.MockContext.html" class="hiddenlink" target="rightframe">MockContext</A><br>
+<!-- Class MockPackageManager -->
+<A HREF="android.test.mock.MockPackageManager.html" class="hiddenlink" target="rightframe">MockPackageManager</A><br>
+<!-- Field MODE_RINGER -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.MODE_RINGER" class="hiddenlink" target="rightframe">MODE_RINGER</A>
+</nobr><br>
+<!-- Field MODE_WORLD_READABLE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_READABLE" class="hiddenlink" target="rightframe">MODE_WORLD_READABLE</A>
+</nobr><br>
+<!-- Field MODE_WORLD_WRITEABLE -->
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_WRITEABLE" class="hiddenlink" target="rightframe">MODE_WORLD_WRITEABLE</A>
+</nobr><br>
+<!-- Field NETWORK_PREFERENCE -->
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.NETWORK_PREFERENCE" class="hiddenlink" target="rightframe">NETWORK_PREFERENCE</A>
+</nobr><br>
+<!-- Class Notification.Builder -->
+<A HREF="android.app.Notification.Builder.html" class="hiddenlink" target="rightframe">Notification.Builder</A><br>
+<!-- Method onJsTimeout -->
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebChromeClient.html#android.webkit.WebChromeClient.onJsTimeout_changed()" class="hiddenlink" target="rightframe">onJsTimeout
+()</A></nobr><br>
+<!-- Class PackageManager -->
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.content.pm.PackageManager.html" class="hiddenlink" target="rightframe">PackageManager</A><br>
+<!-- Class Paint -->
+<A HREF="android.graphics.Paint.html" class="hiddenlink" target="rightframe">Paint</A><br>
+<!-- Class PendingIntent -->
+<A HREF="android.app.PendingIntent.html" class="hiddenlink" target="rightframe">PendingIntent</A><br>
+<!-- Class PermissionGroupInfo -->
+<A HREF="android.content.pm.PermissionGroupInfo.html" class="hiddenlink" target="rightframe">PermissionGroupInfo</A><br>
+<!-- Class PermissionInfo -->
+<A HREF="android.content.pm.PermissionInfo.html" class="hiddenlink" target="rightframe">PermissionInfo</A><br>
+<!-- Class PhoneStateListener -->
+<A HREF="android.telephony.PhoneStateListener.html" class="hiddenlink" target="rightframe">PhoneStateListener</A><br>
+<!-- Class PowerManager -->
+<A HREF="android.os.PowerManager.html" class="hiddenlink" target="rightframe">PowerManager</A><br>
+<!-- Class PowerManager.WakeLock -->
+<A HREF="android.os.PowerManager.WakeLock.html" class="hiddenlink" target="rightframe">PowerManager.WakeLock</A><br>
+<!-- Class Process -->
+<A HREF="android.os.Process.html" class="hiddenlink" target="rightframe">Process</A><br>
+<!-- Class ProviderInfo -->
+<A HREF="android.content.pm.ProviderInfo.html" class="hiddenlink" target="rightframe">ProviderInfo</A><br>
+<!-- Class R.attr -->
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
+<!-- Class R.style -->
+<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
+<!-- Field RADIO_BLUETOOTH -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_BLUETOOTH" class="hiddenlink" target="rightframe">RADIO_BLUETOOTH</A>
+</nobr><br>
+<!-- Field RADIO_CELL -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_CELL" class="hiddenlink" target="rightframe">RADIO_CELL</A>
+</nobr><br>
+<!-- Field RADIO_NFC -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_NFC" class="hiddenlink" target="rightframe">RADIO_NFC</A>
+</nobr><br>
+<!-- Field RADIO_WIFI -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_WIFI" class="hiddenlink" target="rightframe">RADIO_WIFI</A>
+</nobr><br>
+<!-- Class RelativeLayout -->
+<A HREF="android.widget.RelativeLayout.html" class="hiddenlink" target="rightframe">RelativeLayout</A><br>
+<!-- Class RelativeLayout.LayoutParams -->
+<A HREF="android.widget.RelativeLayout.LayoutParams.html" class="hiddenlink" target="rightframe">RelativeLayout.LayoutParams</A><br>
+<!-- Class RemoteCallbackList -->
+<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
+<!-- Class RemoteViews -->
+<A HREF="android.widget.RemoteViews.html" class="hiddenlink" target="rightframe">RemoteViews</A><br>
+<!-- Method requiresCell -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresCell_changed()" class="hiddenlink" target="rightframe">requiresCell
+()</A></nobr><br>
+<!-- Method requiresNetwork -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresNetwork_changed()" class="hiddenlink" target="rightframe">requiresNetwork
+()</A></nobr><br>
+<!-- Method requiresSatellite -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresSatellite_changed()" class="hiddenlink" target="rightframe">requiresSatellite
+()</A></nobr><br>
+<!-- Class ResolveInfo -->
+<A HREF="android.content.pm.ResolveInfo.html" class="hiddenlink" target="rightframe">ResolveInfo</A><br>
+<!-- Field sameMonthTable -->
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameMonthTable" class="hiddenlink" target="rightframe">sameMonthTable</A>
+</nobr><br>
+<!-- Field sameYearTable -->
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameYearTable" class="hiddenlink" target="rightframe">sameYearTable</A>
+</nobr><br>
+<!-- Class ScanResult -->
+<A HREF="android.net.wifi.ScanResult.html" class="hiddenlink" target="rightframe">ScanResult</A><br>
+<!-- Field SCREEN_DIM_WAKE_LOCK -->
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.SCREEN_DIM_WAKE_LOCK" class="hiddenlink" target="rightframe">SCREEN_DIM_WAKE_LOCK</A>
+</nobr><br>
+<!-- Class Script -->
+<A HREF="android.renderscript.Script.html" class="hiddenlink" target="rightframe">Script</A><br>
+<!-- Class Sensor -->
+<A HREF="android.hardware.Sensor.html" class="hiddenlink" target="rightframe">Sensor</A><br>
+<!-- Class ServiceInfo -->
+<A HREF="android.content.pm.ServiceInfo.html" class="hiddenlink" target="rightframe">ServiceInfo</A><br>
+<!-- Method setCertificate -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setCertificate_changed(android.net.http.SslCertificate)" class="hiddenlink" target="rightframe">setCertificate
+(<code>SslCertificate</code>)</A></nobr><br>
+<!-- Method setEnableSmoothTransition -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setEnableSmoothTransition_changed(boolean)" class="hiddenlink" target="rightframe">setEnableSmoothTransition
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setMapTrackballToArrowKeys -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setMapTrackballToArrowKeys_changed(boolean)" class="hiddenlink" target="rightframe">setMapTrackballToArrowKeys
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setPaddingRelative -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setPaddingRelative_changed(int, int, int, int)" class="hiddenlink" target="rightframe">setPaddingRelative
+(<code>int, int, int, int</code>)</A></nobr><br>
+<!-- Method setShowGTalkServiceStatus -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.setShowGTalkServiceStatus_changed(android.content.ContentResolver, boolean)" class="hiddenlink" target="rightframe">setShowGTalkServiceStatus
+(<code>ContentResolver, boolean</code>)</A></nobr><br>
+<!-- Class Settings.Secure -->
+<A HREF="android.provider.Settings.Secure.html" class="hiddenlink" target="rightframe">Settings.Secure</A><br>
+<!-- Class Settings.System -->
+<A HREF="android.provider.Settings.System.html" class="hiddenlink" target="rightframe">Settings.System</A><br>
+<!-- Field SHOW_PROCESSES -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.SHOW_PROCESSES" class="hiddenlink" target="rightframe">SHOW_PROCESSES</A>
+</nobr><br>
+<!-- Class SlidingDrawer -->
+<A HREF="android.widget.SlidingDrawer.html" class="hiddenlink" target="rightframe">SlidingDrawer</A><br>
+<!-- Class SSLCertificateSocketFactory -->
+<A HREF="android.net.SSLCertificateSocketFactory.html" class="hiddenlink" target="rightframe">SSLCertificateSocketFactory</A><br>
+<!-- Field STAY_ON_WHILE_PLUGGED_IN -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.STAY_ON_WHILE_PLUGGED_IN" class="hiddenlink" target="rightframe">STAY_ON_WHILE_PLUGGED_IN</A>
+</nobr><br>
+<!-- Method supportsAltitude -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsAltitude_changed()" class="hiddenlink" target="rightframe">supportsAltitude
+()</A></nobr><br>
+<!-- Method supportsBearing -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsBearing_changed()" class="hiddenlink" target="rightframe">supportsBearing
+()</A></nobr><br>
+<!-- Method supportsSpeed -->
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsSpeed_changed()" class="hiddenlink" target="rightframe">supportsSpeed
+()</A></nobr><br>
+<!-- Class Surface -->
+<A HREF="android.view.Surface.html" class="hiddenlink" target="rightframe">Surface</A><br>
+<!-- Class SurfaceView -->
+<A HREF="android.view.SurfaceView.html" class="hiddenlink" target="rightframe">SurfaceView</A><br>
+<!-- Class SystemClock -->
+<A HREF="android.os.SystemClock.html" class="hiddenlink" target="rightframe">SystemClock</A><br>
+<!-- Class TelephonyManager -->
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.telephony.TelephonyManager.html" class="hiddenlink" target="rightframe">TelephonyManager</A><br>
+<!-- Class TextUtils -->
+<A HREF="android.text.TextUtils.html" class="hiddenlink" target="rightframe">TextUtils</A><br>
+<!-- Class TextView -->
+<A HREF="android.widget.TextView.html" class="hiddenlink" target="rightframe">TextView</A><br>
+<!-- Field TRANSITION_ANIMATION_SCALE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.TRANSITION_ANIMATION_SCALE" class="hiddenlink" target="rightframe">TRANSITION_ANIMATION_SCALE</A>
+</nobr><br>
+<!-- Class TwoLineListItem -->
+<A HREF="android.widget.TwoLineListItem.html" class="hiddenlink" target="rightframe">TwoLineListItem</A><br>
+<!-- Method unlockCanvas -->
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.Surface.html#android.view.Surface.unlockCanvas_changed(android.graphics.Canvas)" class="hiddenlink" target="rightframe">unlockCanvas
+(<code>Canvas</code>)</A></nobr><br>
+<!-- Field USB_MASS_STORAGE_ENABLED -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USB_MASS_STORAGE_ENABLED" class="hiddenlink" target="rightframe">USB_MASS_STORAGE_ENABLED</A>
+</nobr><br>
+<!-- Field USE_GOOGLE_MAIL -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USE_GOOGLE_MAIL" class="hiddenlink" target="rightframe">USE_GOOGLE_MAIL</A>
+</nobr><br>
+<!-- Class VideoView -->
+<A NAME="V"></A>
+<br><font size="+2">V</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.widget.VideoView.html" class="hiddenlink" target="rightframe">VideoView</A><br>
+<!-- Class View -->
+<A HREF="android.view.View.html" class="hiddenlink" target="rightframe">View</A><br>
+<!-- Class ViewAnimator -->
+<A HREF="android.widget.ViewAnimator.html" class="hiddenlink" target="rightframe">ViewAnimator</A><br>
+<!-- Class ViewGroup.LayoutParams -->
+<A HREF="android.view.ViewGroup.LayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.LayoutParams</A><br>
+<!-- Class ViewGroup.MarginLayoutParams -->
+<A HREF="android.view.ViewGroup.MarginLayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.MarginLayoutParams</A><br>
+<!-- Field WAIT_FOR_DEBUGGER -->
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WAIT_FOR_DEBUGGER" class="hiddenlink" target="rightframe">WAIT_FOR_DEBUGGER</A>
+</nobr><br>
+<!-- Field WALLPAPER_ACTIVITY -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WALLPAPER_ACTIVITY" class="hiddenlink" target="rightframe">WALLPAPER_ACTIVITY</A>
+</nobr><br>
+<!-- Class WallpaperManager -->
+<A HREF="android.app.WallpaperManager.html" class="hiddenlink" target="rightframe">WallpaperManager</A><br>
+<!-- Class WebChromeClient -->
+<A HREF="android.webkit.WebChromeClient.html" class="hiddenlink" target="rightframe">WebChromeClient</A><br>
+<!-- Class WebHistoryItem -->
+<A HREF="android.webkit.WebHistoryItem.html" class="hiddenlink" target="rightframe">WebHistoryItem</A><br>
+<!-- Class WebSettings -->
+<A HREF="android.webkit.WebSettings.html" class="hiddenlink" target="rightframe">WebSettings</A><br>
+<!-- Class WebView -->
+<i>WebView</i><br>
+ <A HREF="android.webkit.WebView.html" class="hiddenlink" target="rightframe">android.webkit</A><br>
+<!-- Constructor WebView -->
+ <nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.ctor_changed(android.content.Context, android.util.AttributeSet, int, boolean)" class="hiddenlink" target="rightframe">WebView
+(<code>Context, AttributeSet, int, boolean</code>)</A></nobr> constructor<br>
+<!-- Class WebViewDatabase -->
+<A HREF="android.webkit.WebViewDatabase.html" class="hiddenlink" target="rightframe">WebViewDatabase</A><br>
+<!-- Field WIFI_MAX_DHCP_RETRY_COUNT -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MAX_DHCP_RETRY_COUNT" class="hiddenlink" target="rightframe">WIFI_MAX_DHCP_RETRY_COUNT</A>
+</nobr><br>
+<!-- Field WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" class="hiddenlink" target="rightframe">WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS</A>
+</nobr><br>
+<!-- Field WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON</A>
+</nobr><br>
+<!-- Field WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY</A>
+</nobr><br>
+<!-- Field WIFI_NUM_OPEN_NETWORKS_KEPT -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT" class="hiddenlink" target="rightframe">WIFI_NUM_OPEN_NETWORKS_KEPT</A>
+</nobr><br>
+<!-- Field WIFI_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_ON" class="hiddenlink" target="rightframe">WIFI_ON</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY_DEFAULT -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_DEFAULT" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_DEFAULT</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY_NEVER -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER</A>
+</nobr><br>
+<!-- Field WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_DNS1 -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS1" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS1</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_DNS2 -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS2" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS2</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_GATEWAY -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_GATEWAY" class="hiddenlink" target="rightframe">WIFI_STATIC_GATEWAY</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_IP -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_STATIC_IP</A>
+</nobr><br>
+<!-- Field WIFI_STATIC_NETMASK -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_NETMASK" class="hiddenlink" target="rightframe">WIFI_STATIC_NETMASK</A>
+</nobr><br>
+<!-- Field WIFI_USE_STATIC_IP -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_USE_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_USE_STATIC_IP</A>
+</nobr><br>
+<!-- Field WIFI_WATCHDOG_ON -->
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_WATCHDOG_ON" class="hiddenlink" target="rightframe">WIFI_WATCHDOG_ON</A>
+</nobr><br>
+<!-- Field WINDOW_ANIMATION_SCALE -->
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WINDOW_ANIMATION_SCALE" class="hiddenlink" target="rightframe">WINDOW_ANIMATION_SCALE</A>
+</nobr><br>
+<!-- Class WindowManager.LayoutParams -->
+<A HREF="android.view.WindowManager.LayoutParams.html" class="hiddenlink" target="rightframe">WindowManager.LayoutParams</A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/alldiffs_index_removals.html b/docs/html/sdk/api_diff/17/changes/alldiffs_index_removals.html
new file mode 100644
index 0000000..53e6dd9
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/alldiffs_index_removals.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+All Removals Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for All Differences" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="alldiffs_index_all.html" xclass="hiddenlink">All Differences</a>
+ <br>
+<b>Removals</b>
+ <br>
+<A HREF="alldiffs_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="alldiffs_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<!-- Class CacheManager -->
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#CacheManager" class="hiddenlink" target="rightframe"><strike>CacheManager</strike></A><br>
+<!-- Class CacheManager.CacheResult -->
+<A HREF="pkg_android.webkit.html#CacheManager.CacheResult" class="hiddenlink" target="rightframe"><strike>CacheManager.CacheResult</strike></A><br>
+<!-- Method debugDump -->
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.debugDump_removed()" class="hiddenlink" target="rightframe"><strike>debugDump</strike>
+()</A></nobr><br>
+<!-- Method disablePlatformNotifications -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.disablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>disablePlatformNotifications</strike>
+()</A></nobr><br>
+<!-- Method emulateShiftHeld -->
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.emulateShiftHeld_removed()" class="hiddenlink" target="rightframe"><strike>emulateShiftHeld</strike>
+()</A></nobr><br>
+<!-- Method enablePlatformNotifications -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.enablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>enablePlatformNotifications</strike>
+()</A></nobr><br>
+<!-- Method getId -->
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebHistoryItem.html#android.webkit.WebHistoryItem.getId_removed()" class="hiddenlink" target="rightframe"><strike>getId</strike>
+()</A></nobr><br>
+<!-- Method getNavDump -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getNavDump_removed()" class="hiddenlink" target="rightframe"><strike>getNavDump</strike>
+()</A></nobr><br>
+<!-- Method getUseDoubleTree -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseDoubleTree_removed()" class="hiddenlink" target="rightframe"><strike>getUseDoubleTree</strike>
+()</A></nobr><br>
+<!-- Method getUserAgent -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUserAgent_removed()" class="hiddenlink" target="rightframe"><strike>getUserAgent</strike>
+()</A></nobr><br>
+<!-- Method getUseWebViewBackgroundForOverscrollBackground -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseWebViewBackgroundForOverscrollBackground_removed()" class="hiddenlink" target="rightframe"><strike>getUseWebViewBackgroundForOverscrollBackground</strike>
+()</A></nobr><br>
+<!-- Method getVisibleTitleHeight -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getVisibleTitleHeight_removed()" class="hiddenlink" target="rightframe"><strike>getVisibleTitleHeight</strike>
+()</A></nobr><br>
+<!-- Field LOGTAG -->
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebViewDatabase.html#android.webkit.WebViewDatabase.LOGTAG" class="hiddenlink" target="rightframe"><strike>LOGTAG</strike></A>
+</nobr><br>
+<!-- Method onPaddingChanged -->
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.CheckedTextView.html#android.widget.CheckedTextView.onPaddingChanged_removed(int)" class="hiddenlink" target="rightframe"><strike>onPaddingChanged</strike>
+(<code>int</code>)</A></nobr><br>
+<!-- Method resetResolvedDrawables -->
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resetResolvedDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resetResolvedDrawables</strike>
+()</A></nobr><br>
+<!-- Method resolveDrawables -->
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resolveDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resolveDrawables</strike>
+()</A></nobr><br>
+<!-- Method restorePicture -->
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.restorePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>restorePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<!-- Method savePicture -->
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.savePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>savePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<!-- Method setNavDump -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setNavDump_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setNavDump</strike>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setUseDoubleTree -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseDoubleTree_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseDoubleTree</strike>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Method setUserAgent -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUserAgent_removed(int)" class="hiddenlink" target="rightframe"><strike>setUserAgent</strike>
+(<code>int</code>)</A></nobr><br>
+<!-- Method setUseWebViewBackgroundForOverscrollBackground -->
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseWebViewBackgroundForOverscrollBackground_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseWebViewBackgroundForOverscrollBackground</strike>
+(<code>boolean</code>)</A></nobr><br>
+<!-- Field TABLE_INFO_PRAGMA_DEFAULT_INDEX -->
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.database.DatabaseUtils.InsertHelper.html#android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_DEFAULT_INDEX" class="hiddenlink" target="rightframe"><strike>TABLE_INFO_PRAGMA_DEFAULT_INDEX</strike></A>
+</nobr><br>
+<!-- Field TEXT_ALIGNMENT_RESOLVED_DEFAULT -->
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_RESOLVED_DEFAULT" class="hiddenlink" target="rightframe"><strike>TEXT_ALIGNMENT_RESOLVED_DEFAULT</strike></A>
+</nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.Manifest.permission_group.html b/docs/html/sdk/api_diff/17/changes/android.Manifest.permission_group.html
new file mode 100644
index 0000000..d81a5f0
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.Manifest.permission_group.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.Manifest.permission_group
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.<A HREF="../../../../reference/android/Manifest.permission_group.html" target="_top"><font size="+2"><code>Manifest.permission_group</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.AFFECTS_BATTERY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#AFFECTS_BATTERY" target="_top"><code>AFFECTS_BATTERY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.APP_INFO"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#APP_INFO" target="_top"><code>APP_INFO</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.AUDIO_SETTINGS"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#AUDIO_SETTINGS" target="_top"><code>AUDIO_SETTINGS</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.BLUETOOTH_NETWORK"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#BLUETOOTH_NETWORK" target="_top"><code>BLUETOOTH_NETWORK</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.BOOKMARKS"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#BOOKMARKS" target="_top"><code>BOOKMARKS</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.CALENDAR"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#CALENDAR" target="_top"><code>CALENDAR</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.CAMERA"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#CAMERA" target="_top"><code>CAMERA</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.DEVICE_ALARMS"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#DEVICE_ALARMS" target="_top"><code>DEVICE_ALARMS</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.DISPLAY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#DISPLAY" target="_top"><code>DISPLAY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.MICROPHONE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#MICROPHONE" target="_top"><code>MICROPHONE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.SCREENLOCK"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#SCREENLOCK" target="_top"><code>SCREENLOCK</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.SOCIAL_INFO"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#SOCIAL_INFO" target="_top"><code>SOCIAL_INFO</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.STATUS_BAR"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#STATUS_BAR" target="_top"><code>STATUS_BAR</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.SYNC_SETTINGS"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#SYNC_SETTINGS" target="_top"><code>SYNC_SETTINGS</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.SYSTEM_CLOCK"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#SYSTEM_CLOCK" target="_top"><code>SYSTEM_CLOCK</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.USER_DICTIONARY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#USER_DICTIONARY" target="_top"><code>USER_DICTIONARY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.VOICEMAIL"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#VOICEMAIL" target="_top"><code>VOICEMAIL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.WALLPAPER"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#WALLPAPER" target="_top"><code>WALLPAPER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.Manifest.permission_group.WRITE_USER_DICTIONARY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/Manifest.permission_group.html#WRITE_USER_DICTIONARY" target="_top"><code>WRITE_USER_DICTIONARY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.R.attr.html b/docs/html/sdk/api_diff/17/changes/android.R.attr.html
new file mode 100644
index 0000000..b118e7c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.R.attr.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.R.attr
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.<A HREF="../../../../reference/android/R.attr.html" target="_top"><font size="+2"><code>R.attr</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.checkedTextViewStyle"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#checkedTextViewStyle" target="_top"><code>checkedTextViewStyle</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.format12Hour"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#format12Hour" target="_top"><code>format12Hour</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.format24Hour"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#format24Hour" target="_top"><code>format24Hour</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.initialKeyguardLayout"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#initialKeyguardLayout" target="_top"><code>initialKeyguardLayout</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.labelFor"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#labelFor" target="_top"><code>labelFor</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layoutDirection"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layoutDirection" target="_top"><code>layoutDirection</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_alignEnd"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_alignEnd" target="_top"><code>layout_alignEnd</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_alignParentEnd"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_alignParentEnd" target="_top"><code>layout_alignParentEnd</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_alignParentStart"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_alignParentStart" target="_top"><code>layout_alignParentStart</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_alignStart"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_alignStart" target="_top"><code>layout_alignStart</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_marginEnd"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_marginEnd" target="_top"><code>layout_marginEnd</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_marginStart"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_marginStart" target="_top"><code>layout_marginStart</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_toEndOf"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_toEndOf" target="_top"><code>layout_toEndOf</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.layout_toStartOf"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#layout_toStartOf" target="_top"><code>layout_toStartOf</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.listPreferredItemPaddingEnd"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#listPreferredItemPaddingEnd" target="_top"><code>listPreferredItemPaddingEnd</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.listPreferredItemPaddingStart"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#listPreferredItemPaddingStart" target="_top"><code>listPreferredItemPaddingStart</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.paddingEnd"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#paddingEnd" target="_top"><code>paddingEnd</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.paddingStart"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#paddingStart" target="_top"><code>paddingStart</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.permissionFlags"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#permissionFlags" target="_top"><code>permissionFlags</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.permissionGroupFlags"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#permissionGroupFlags" target="_top"><code>permissionGroupFlags</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.presentationTheme"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#presentationTheme" target="_top"><code>presentationTheme</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.showOnLockScreen"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#showOnLockScreen" target="_top"><code>showOnLockScreen</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.singleUser"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#singleUser" target="_top"><code>singleUser</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.subtypeId"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#subtypeId" target="_top"><code>subtypeId</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.supportsRtl"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#supportsRtl" target="_top"><code>supportsRtl</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.textAlignment"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#textAlignment" target="_top"><code>textAlignment</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.textDirection"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#textDirection" target="_top"><code>textDirection</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.timeZone"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#timeZone" target="_top"><code>timeZone</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.attr.widgetCategory"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#widgetCategory" target="_top"><code>widgetCategory</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.R.style.html b/docs/html/sdk/api_diff/17/changes/android.R.style.html
new file mode 100644
index 0000000..04a6933
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.R.style.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.R.style
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.<A HREF="../../../../reference/android/R.style.html" target="_top"><font size="+2"><code>R.style</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.style.Widget_DeviceDefault_CheckedTextView"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Widget_DeviceDefault_CheckedTextView" target="_top"><code>Widget_DeviceDefault_CheckedTextView</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.style.Widget_DeviceDefault_Light_CheckedTextView"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Widget_DeviceDefault_Light_CheckedTextView" target="_top"><code>Widget_DeviceDefault_Light_CheckedTextView</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.style.Widget_Holo_CheckedTextView"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Widget_Holo_CheckedTextView" target="_top"><code>Widget_Holo_CheckedTextView</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.R.style.Widget_Holo_Light_CheckedTextView"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#Widget_Holo_Light_CheckedTextView" target="_top"><code>Widget_Holo_Light_CheckedTextView</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.accessibilityservice.AccessibilityService.html b/docs/html/sdk/api_diff/17/changes/android.accessibilityservice.AccessibilityService.html
new file mode 100644
index 0000000..47e8868
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.accessibilityservice.AccessibilityService.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.accessibilityservice.AccessibilityService
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.accessibilityservice.<A HREF="../../../../reference/android/accessibilityservice/AccessibilityService.html" target="_top"><font size="+2"><code>AccessibilityService</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_QUICK_SETTINGS"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/accessibilityservice/AccessibilityService.html#GLOBAL_ACTION_QUICK_SETTINGS" target="_top"><code>GLOBAL_ACTION_QUICK_SETTINGS</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.accessibilityservice.AccessibilityServiceInfo.html b/docs/html/sdk/api_diff/17/changes/android.accessibilityservice.AccessibilityServiceInfo.html
new file mode 100644
index 0000000..b96916f
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.accessibilityservice.AccessibilityServiceInfo.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.accessibilityservice.AccessibilityServiceInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.accessibilityservice.<A HREF="../../../../reference/android/accessibilityservice/AccessibilityServiceInfo.html" target="_top"><font size="+2"><code>AccessibilityServiceInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_BRAILLE"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/accessibilityservice/AccessibilityServiceInfo.html#FEEDBACK_BRAILLE" target="_top"><code>FEEDBACK_BRAILLE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.Activity.html b/docs/html/sdk/api_diff/17/changes/android.app.Activity.html
new file mode 100644
index 0000000..081d49d
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.Activity.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.Activity
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.<A HREF="../../../../reference/android/app/Activity.html" target="_top"><font size="+2"><code>Activity</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.Activity.isDestroyed_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/app/Activity.html#isDestroyed()" target="_top"><code>isDestroyed</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.AlertDialog.Builder.html b/docs/html/sdk/api_diff/17/changes/android.app.AlertDialog.Builder.html
new file mode 100644
index 0000000..cba0cd3
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.AlertDialog.Builder.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.AlertDialog.Builder
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.<A HREF="../../../../reference/android/app/AlertDialog.Builder.html" target="_top"><font size="+2"><code>AlertDialog.Builder</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.AlertDialog.Builder.setOnDismissListener_added(android.content.DialogInterface.OnDismissListener)"></A>
+ <nobr><code>Builder</code> <A HREF="../../../../reference/android/app/AlertDialog.Builder.html#setOnDismissListener(android.content.DialogInterface.OnDismissListener)" target="_top"><code>setOnDismissListener</code></A>(<code>OnDismissListener</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.Fragment.html b/docs/html/sdk/api_diff/17/changes/android.app.Fragment.html
new file mode 100644
index 0000000..3824575
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.Fragment.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.Fragment
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.<A HREF="../../../../reference/android/app/Fragment.html" target="_top"><font size="+2"><code>Fragment</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.Fragment.getChildFragmentManager_added()"></A>
+ <nobr><code>FragmentManager</code> <A HREF="../../../../reference/android/app/Fragment.html#getChildFragmentManager()" target="_top"><code>getChildFragmentManager</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.Fragment.getParentFragment_added()"></A>
+ <nobr><code>Fragment</code> <A HREF="../../../../reference/android/app/Fragment.html#getParentFragment()" target="_top"><code>getParentFragment</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.Fragment.onViewStateRestored_added(android.os.Bundle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/app/Fragment.html#onViewStateRestored(android.os.Bundle)" target="_top"><code>onViewStateRestored</code></A>(<code>Bundle</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.FragmentManager.html b/docs/html/sdk/api_diff/17/changes/android.app.FragmentManager.html
new file mode 100644
index 0000000..30beb99
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.FragmentManager.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.FragmentManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.<A HREF="../../../../reference/android/app/FragmentManager.html" target="_top"><font size="+2"><code>FragmentManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.FragmentManager.isDestroyed_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/app/FragmentManager.html#isDestroyed()" target="_top"><code>isDestroyed</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.Notification.Builder.html b/docs/html/sdk/api_diff/17/changes/android.app.Notification.Builder.html
new file mode 100644
index 0000000..fbd8880
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.Notification.Builder.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.Notification.Builder
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.<A HREF="../../../../reference/android/app/Notification.Builder.html" target="_top"><font size="+2"><code>Notification.Builder</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.Notification.Builder.setShowWhen_added(boolean)"></A>
+ <nobr><code>Builder</code> <A HREF="../../../../reference/android/app/Notification.Builder.html#setShowWhen(boolean)" target="_top"><code>setShowWhen</code></A>(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.PendingIntent.html b/docs/html/sdk/api_diff/17/changes/android.app.PendingIntent.html
new file mode 100644
index 0000000..eb72e3a
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.PendingIntent.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.PendingIntent
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.<A HREF="../../../../reference/android/app/PendingIntent.html" target="_top"><font size="+2"><code>PendingIntent</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.PendingIntent.getCreatorPackage_added()"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/app/PendingIntent.html#getCreatorPackage()" target="_top"><code>getCreatorPackage</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.PendingIntent.getCreatorUid_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/app/PendingIntent.html#getCreatorUid()" target="_top"><code>getCreatorUid</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.PendingIntent.getCreatorUserHandle_added()"></A>
+ <nobr><code>UserHandle</code> <A HREF="../../../../reference/android/app/PendingIntent.html#getCreatorUserHandle()" target="_top"><code>getCreatorUserHandle</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.PendingIntent.getTargetPackage_changed()"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/app/PendingIntent.html#getTargetPackage()" target="_top"><code>getTargetPackage</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.WallpaperManager.html b/docs/html/sdk/api_diff/17/changes/android.app.WallpaperManager.html
new file mode 100644
index 0000000..a5045d2
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.WallpaperManager.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.WallpaperManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.<A HREF="../../../../reference/android/app/WallpaperManager.html" target="_top"><font size="+2"><code>WallpaperManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.WallpaperManager.hasResourceWallpaper_added(int)"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/app/WallpaperManager.html#hasResourceWallpaper(int)" target="_top"><code>hasResourceWallpaper</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.admin.DeviceAdminInfo.html b/docs/html/sdk/api_diff/17/changes/android.app.admin.DeviceAdminInfo.html
new file mode 100644
index 0000000..b5b261c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.admin.DeviceAdminInfo.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.admin.DeviceAdminInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.admin.<A HREF="../../../../reference/android/app/admin/DeviceAdminInfo.html" target="_top"><font size="+2"><code>DeviceAdminInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin.DeviceAdminInfo.USES_POLICY_DISABLE_KEYGUARD_FEATURES"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/app/admin/DeviceAdminInfo.html#USES_POLICY_DISABLE_KEYGUARD_FEATURES" target="_top"><code>USES_POLICY_DISABLE_KEYGUARD_FEATURES</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.app.admin.DevicePolicyManager.html b/docs/html/sdk/api_diff/17/changes/android.app.admin.DevicePolicyManager.html
new file mode 100644
index 0000000..a9a0d11
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.app.admin.DevicePolicyManager.html
@@ -0,0 +1,165 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.admin.DevicePolicyManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.app.admin.<A HREF="../../../../reference/android/app/admin/DevicePolicyManager.html" target="_top"><font size="+2"><code>DevicePolicyManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin.DevicePolicyManager.getKeyguardDisabledFeatures_added(android.content.ComponentName)"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/app/admin/DevicePolicyManager.html#getKeyguardDisabledFeatures(android.content.ComponentName)" target="_top"><code>getKeyguardDisabledFeatures</code></A>(<code>ComponentName</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin.DevicePolicyManager.setKeyguardDisabledFeatures_added(android.content.ComponentName, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/app/admin/DevicePolicyManager.html#setKeyguardDisabledFeatures(android.content.ComponentName, int)" target="_top"><code>setKeyguardDisabledFeatures</code></A>(<code>ComponentName,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/app/admin/DevicePolicyManager.html#KEYGUARD_DISABLE_FEATURES_ALL" target="_top"><code>KEYGUARD_DISABLE_FEATURES_ALL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/app/admin/DevicePolicyManager.html#KEYGUARD_DISABLE_FEATURES_NONE" target="_top"><code>KEYGUARD_DISABLE_FEATURES_NONE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/app/admin/DevicePolicyManager.html#KEYGUARD_DISABLE_SECURE_CAMERA" target="_top"><code>KEYGUARD_DISABLE_SECURE_CAMERA</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/app/admin/DevicePolicyManager.html#KEYGUARD_DISABLE_WIDGETS_ALL" target="_top"><code>KEYGUARD_DISABLE_WIDGETS_ALL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetHost.html b/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetHost.html
new file mode 100644
index 0000000..8aaa7b9f
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetHost.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.appwidget.AppWidgetHost
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.appwidget.<A HREF="../../../../reference/android/appwidget/AppWidgetHost.html" target="_top"><font size="+2"><code>AppWidgetHost</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetHost.onProvidersChanged_added()"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/appwidget/AppWidgetHost.html#onProvidersChanged()" target="_top"><code>onProvidersChanged</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetManager.html b/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetManager.html
new file mode 100644
index 0000000..d36f9a5
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetManager.html
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.appwidget.AppWidgetManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.appwidget.<A HREF="../../../../reference/android/appwidget/AppWidgetManager.html" target="_top"><font size="+2"><code>AppWidgetManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetManager.bindAppWidgetIdIfAllowed_added(int, android.content.ComponentName, android.os.Bundle)"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/appwidget/AppWidgetManager.html#bindAppWidgetIdIfAllowed(int, android.content.ComponentName, android.os.Bundle)" target="_top"><code>bindAppWidgetIdIfAllowed</code></A>(<code>int,</nobr> ComponentName<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/appwidget/AppWidgetManager.html#OPTION_APPWIDGET_HOST_CATEGORY" target="_top"><code>OPTION_APPWIDGET_HOST_CATEGORY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetProviderInfo.html b/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetProviderInfo.html
new file mode 100644
index 0000000..ed0dbb9
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.appwidget.AppWidgetProviderInfo.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.appwidget.AppWidgetProviderInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.appwidget.<A HREF="../../../../reference/android/appwidget/AppWidgetProviderInfo.html" target="_top"><font size="+2"><code>AppWidgetProviderInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetProviderInfo.clone_changed()"></A>
+ <nobr><code>AppWidgetProviderInfo</code> <A HREF="../../../../reference/android/appwidget/AppWidgetProviderInfo.html#clone()" target="_top"><code>clone</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change in return type from <code>Object</code> to <code>AppWidgetProviderInfo</code>.<br>
+ Change in exceptions thrown from <code>java.lang.CloneNotSupportedException</code> to no exceptions.<br>
+ Method was inherited from <code>java.lang.Object</code>, but is now defined locally. Change of visibility from protected to public.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/appwidget/AppWidgetProviderInfo.html#WIDGET_CATEGORY_HOME_SCREEN" target="_top"><code>WIDGET_CATEGORY_HOME_SCREEN</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/appwidget/AppWidgetProviderInfo.html#WIDGET_CATEGORY_KEYGUARD" target="_top"><code>WIDGET_CATEGORY_KEYGUARD</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetProviderInfo.initialKeyguardLayout"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/appwidget/AppWidgetProviderInfo.html#initialKeyguardLayout" target="_top"><code>initialKeyguardLayout</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget.AppWidgetProviderInfo.widgetCategory"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/appwidget/AppWidgetProviderInfo.html#widgetCategory" target="_top"><code>widgetCategory</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.bluetooth.BluetoothA2dp.html b/docs/html/sdk/api_diff/17/changes/android.bluetooth.BluetoothA2dp.html
new file mode 100644
index 0000000..c1fb66c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.bluetooth.BluetoothA2dp.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.bluetooth.BluetoothA2dp
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.bluetooth.<A HREF="../../../../reference/android/bluetooth/BluetoothA2dp.html" target="_top"><font size="+2"><code>BluetoothA2dp</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.bluetooth.BluetoothA2dp.finalize_changed()"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/bluetooth/BluetoothA2dp.html#finalize()" target="_top"><code>finalize</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change in exceptions thrown from <code>java.lang.Throwable</code> to no exceptions.<br>
+ Method was inherited from <code>java.lang.Object</code>, but is now defined locally. Change of visibility from protected to public.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.ContentProviderClient.html b/docs/html/sdk/api_diff/17/changes/android.content.ContentProviderClient.html
new file mode 100644
index 0000000..65f758c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.ContentProviderClient.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.ContentProviderClient
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.<A HREF="../../../../reference/android/content/ContentProviderClient.html" target="_top"><font size="+2"><code>ContentProviderClient</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContentProviderClient.call_added(java.lang.String, java.lang.String, android.os.Bundle)"></A>
+ <nobr><code>Bundle</code> <A HREF="../../../../reference/android/content/ContentProviderClient.html#call(java.lang.String, java.lang.String, android.os.Bundle)" target="_top"><code>call</code></A>(<code>String,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.Context.html b/docs/html/sdk/api_diff/17/changes/android.content.Context.html
new file mode 100644
index 0000000..2169575
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.Context.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.Context
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.<A HREF="../../../../reference/android/content/Context.html" target="_top"><font size="+2"><code>Context</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.createConfigurationContext_added(android.content.res.Configuration)"></A>
+ <nobr><code>Context</code> <A HREF="../../../../reference/android/content/Context.html#createConfigurationContext(android.content.res.Configuration)" target="_top"><code>createConfigurationContext</code></A>(<code>Configuration</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.createDisplayContext_added(android.view.Display)"></A>
+ <nobr><code>Context</code> <A HREF="../../../../reference/android/content/Context.html#createDisplayContext(android.view.Display)" target="_top"><code>createDisplayContext</code></A>(<code>Display</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/Context.html#removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>removeStickyBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/Context.html#sendBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>sendBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/Context.html#sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String)" target="_top"><code>sendBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> String<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/Context.html#sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" target="_top"><code>sendOrderedBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> String<nobr>,</nobr> BroadcastReceiver<nobr>,</nobr> Handler<nobr>,</nobr> int<nobr>,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/Context.html#sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>sendStickyBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/Context.html#sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" target="_top"><code>sendStickyOrderedBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> BroadcastReceiver<nobr>,</nobr> Handler<nobr>,</nobr> int<nobr>,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.DISPLAY_SERVICE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Context.html#DISPLAY_SERVICE" target="_top"><code>DISPLAY_SERVICE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.USER_SERVICE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Context.html#USER_SERVICE" target="_top"><code>USER_SERVICE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.MODE_WORLD_READABLE"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/Context.html#MODE_WORLD_READABLE" target="_top"><code>MODE_WORLD_READABLE</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Context.MODE_WORLD_WRITEABLE"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/Context.html#MODE_WORLD_WRITEABLE" target="_top"><code>MODE_WORLD_WRITEABLE</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.ContextWrapper.html b/docs/html/sdk/api_diff/17/changes/android.content.ContextWrapper.html
new file mode 100644
index 0000000..e96cfe9
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.ContextWrapper.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.ContextWrapper
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.<A HREF="../../../../reference/android/content/ContextWrapper.html" target="_top"><font size="+2"><code>ContextWrapper</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.createConfigurationContext_added(android.content.res.Configuration)"></A>
+ <nobr><code>Context</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#createConfigurationContext(android.content.res.Configuration)" target="_top"><code>createConfigurationContext</code></A>(<code>Configuration</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.createDisplayContext_added(android.view.Display)"></A>
+ <nobr><code>Context</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#createDisplayContext(android.view.Display)" target="_top"><code>createDisplayContext</code></A>(<code>Display</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>removeStickyBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#sendBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>sendBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String)" target="_top"><code>sendBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> String<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" target="_top"><code>sendOrderedBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> String<nobr>,</nobr> BroadcastReceiver<nobr>,</nobr> Handler<nobr>,</nobr> int<nobr>,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>sendStickyBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.ContextWrapper.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/ContextWrapper.html#sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" target="_top"><code>sendStickyOrderedBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> BroadcastReceiver<nobr>,</nobr> Handler<nobr>,</nobr> int<nobr>,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.Intent.html b/docs/html/sdk/api_diff/17/changes/android.content.Intent.html
new file mode 100644
index 0000000..1c77051
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.Intent.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.Intent
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.<A HREF="../../../../reference/android/content/Intent.html" target="_top"><font size="+2"><code>Intent</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.ACTION_DREAMING_STARTED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_DREAMING_STARTED" target="_top"><code>ACTION_DREAMING_STARTED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.ACTION_DREAMING_STOPPED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_DREAMING_STOPPED" target="_top"><code>ACTION_DREAMING_STOPPED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.ACTION_PACKAGE_VERIFIED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_PACKAGE_VERIFIED" target="_top"><code>ACTION_PACKAGE_VERIFIED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.ACTION_QUICK_CLOCK"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_QUICK_CLOCK" target="_top"><code>ACTION_QUICK_CLOCK</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.ACTION_USER_BACKGROUND"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_USER_BACKGROUND" target="_top"><code>ACTION_USER_BACKGROUND</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.ACTION_USER_FOREGROUND"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_USER_FOREGROUND" target="_top"><code>ACTION_USER_FOREGROUND</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.ACTION_USER_INITIALIZE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#ACTION_USER_INITIALIZE" target="_top"><code>ACTION_USER_INITIALIZE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.EXTRA_ORIGINATING_URI"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#EXTRA_ORIGINATING_URI" target="_top"><code>EXTRA_ORIGINATING_URI</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.Intent.EXTRA_REFERRER"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/Intent.html#EXTRA_REFERRER" target="_top"><code>EXTRA_REFERRER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.IntentSender.html b/docs/html/sdk/api_diff/17/changes/android.content.IntentSender.html
new file mode 100644
index 0000000..1c0ac90
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.IntentSender.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.IntentSender
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.<A HREF="../../../../reference/android/content/IntentSender.html" target="_top"><font size="+2"><code>IntentSender</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.IntentSender.getCreatorPackage_added()"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/IntentSender.html#getCreatorPackage()" target="_top"><code>getCreatorPackage</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.IntentSender.getCreatorUid_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/IntentSender.html#getCreatorUid()" target="_top"><code>getCreatorUid</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.IntentSender.getCreatorUserHandle_added()"></A>
+ <nobr><code>UserHandle</code> <A HREF="../../../../reference/android/content/IntentSender.html#getCreatorUserHandle()" target="_top"><code>getCreatorUserHandle</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.IntentSender.getTargetPackage_changed()"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/IntentSender.html#getTargetPackage()" target="_top"><code>getTargetPackage</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.ActivityInfo.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.ActivityInfo.html
new file mode 100644
index 0000000..1c835df
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.ActivityInfo.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.ActivityInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/ActivityInfo.html" target="_top"><font size="+2"><code>ActivityInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ActivityInfo.CONFIG_DENSITY"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ActivityInfo.html#CONFIG_DENSITY" target="_top"><code>CONFIG_DENSITY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ActivityInfo.CONFIG_LAYOUT_DIRECTION"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ActivityInfo.html#CONFIG_LAYOUT_DIRECTION" target="_top"><code>CONFIG_LAYOUT_DIRECTION</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ActivityInfo.FLAG_SINGLE_USER"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ActivityInfo.html#FLAG_SINGLE_USER" target="_top"><code>FLAG_SINGLE_USER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.ApplicationInfo.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.ApplicationInfo.html
new file mode 100644
index 0000000..e770229
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.ApplicationInfo.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.ApplicationInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/ApplicationInfo.html" target="_top"><font size="+2"><code>ApplicationInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ApplicationInfo.FLAG_INSTALLED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ApplicationInfo.html#FLAG_INSTALLED" target="_top"><code>FLAG_INSTALLED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ApplicationInfo.FLAG_IS_DATA_ONLY"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ApplicationInfo.html#FLAG_IS_DATA_ONLY" target="_top"><code>FLAG_IS_DATA_ONLY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ApplicationInfo.FLAG_SUPPORTS_RTL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ApplicationInfo.html#FLAG_SUPPORTS_RTL" target="_top"><code>FLAG_SUPPORTS_RTL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.PackageManager.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.PackageManager.html
new file mode 100644
index 0000000..0bd66ed
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.PackageManager.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.PackageManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/PackageManager.html" target="_top"><font size="+2"><code>PackageManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PackageManager.extendVerificationTimeout_added(int, int, long)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#extendVerificationTimeout(int, int, long)" target="_top"><code>extendVerificationTimeout</code></A>(<code>int,</nobr> int<nobr>,</nobr> long<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PackageManager.EXTRA_VERIFICATION_RESULT"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#EXTRA_VERIFICATION_RESULT" target="_top"><code>EXTRA_VERIFICATION_RESULT</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PackageManager.FEATURE_CAMERA_ANY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#FEATURE_CAMERA_ANY" target="_top"><code>FEATURE_CAMERA_ANY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PackageManager.MAXIMUM_VERIFICATION_TIMEOUT"></A>
+ <nobr><code>long</code> <A HREF="../../../../reference/android/content/pm/PackageManager.html#MAXIMUM_VERIFICATION_TIMEOUT" target="_top"><code>MAXIMUM_VERIFICATION_TIMEOUT</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.PermissionGroupInfo.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.PermissionGroupInfo.html
new file mode 100644
index 0000000..6784c30
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.PermissionGroupInfo.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.PermissionGroupInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/PermissionGroupInfo.html" target="_top"><font size="+2"><code>PermissionGroupInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PermissionGroupInfo.FLAG_PERSONAL_INFO"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PermissionGroupInfo.html#FLAG_PERSONAL_INFO" target="_top"><code>FLAG_PERSONAL_INFO</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PermissionGroupInfo.flags"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PermissionGroupInfo.html#flags" target="_top"><code>flags</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PermissionGroupInfo.priority"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PermissionGroupInfo.html#priority" target="_top"><code>priority</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.PermissionInfo.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.PermissionInfo.html
new file mode 100644
index 0000000..16314f8
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.PermissionInfo.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.PermissionInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/PermissionInfo.html" target="_top"><font size="+2"><code>PermissionInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PermissionInfo.FLAG_COSTS_MONEY"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PermissionInfo.html#FLAG_COSTS_MONEY" target="_top"><code>FLAG_COSTS_MONEY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.PermissionInfo.flags"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/PermissionInfo.html#flags" target="_top"><code>flags</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.ProviderInfo.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.ProviderInfo.html
new file mode 100644
index 0000000..de54866
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.ProviderInfo.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.ProviderInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/ProviderInfo.html" target="_top"><font size="+2"><code>ProviderInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ProviderInfo.FLAG_SINGLE_USER"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ProviderInfo.html#FLAG_SINGLE_USER" target="_top"><code>FLAG_SINGLE_USER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ProviderInfo.flags"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ProviderInfo.html#flags" target="_top"><code>flags</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.ResolveInfo.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.ResolveInfo.html
new file mode 100644
index 0000000..ea75367
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.ResolveInfo.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.ResolveInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/ResolveInfo.html" target="_top"><font size="+2"><code>ResolveInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Constructors" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Constructors</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ResolveInfo.ctor_added(android.content.pm.ResolveInfo)"></A>
+ <nobr><A HREF="../../../../reference/android/content/pm/ResolveInfo.html#ResolveInfo(android.content.pm.ResolveInfo)" target="_top"><code>ResolveInfo</code></A>(<code>ResolveInfo</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.pm.ServiceInfo.html b/docs/html/sdk/api_diff/17/changes/android.content.pm.ServiceInfo.html
new file mode 100644
index 0000000..b3e0dcf
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.pm.ServiceInfo.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm.ServiceInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.pm.<A HREF="../../../../reference/android/content/pm/ServiceInfo.html" target="_top"><font size="+2"><code>ServiceInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm.ServiceInfo.FLAG_SINGLE_USER"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/pm/ServiceInfo.html#FLAG_SINGLE_USER" target="_top"><code>FLAG_SINGLE_USER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.content.res.Configuration.html b/docs/html/sdk/api_diff/17/changes/android.content.res.Configuration.html
new file mode 100644
index 0000000..007bed9
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.content.res.Configuration.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.res.Configuration
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.content.res.<A HREF="../../../../reference/android/content/res/Configuration.html" target="_top"><font size="+2"><code>Configuration</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.getLayoutDirection_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#getLayoutDirection()" target="_top"><code>getLayoutDirection</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.setLayoutDirection_added(java.util.Locale)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/Configuration.html#setLayoutDirection(java.util.Locale)" target="_top"><code>setLayoutDirection</code></A>(<code>Locale</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.setLocale_added(java.util.Locale)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/content/res/Configuration.html#setLocale(java.util.Locale)" target="_top"><code>setLocale</code></A>(<code>Locale</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.DENSITY_DPI_UNDEFINED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#DENSITY_DPI_UNDEFINED" target="_top"><code>DENSITY_DPI_UNDEFINED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_LTR"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#SCREENLAYOUT_LAYOUTDIR_LTR" target="_top"><code>SCREENLAYOUT_LAYOUTDIR_LTR</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_MASK"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#SCREENLAYOUT_LAYOUTDIR_MASK" target="_top"><code>SCREENLAYOUT_LAYOUTDIR_MASK</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_RTL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#SCREENLAYOUT_LAYOUTDIR_RTL" target="_top"><code>SCREENLAYOUT_LAYOUTDIR_RTL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_SHIFT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#SCREENLAYOUT_LAYOUTDIR_SHIFT" target="_top"><code>SCREENLAYOUT_LAYOUTDIR_SHIFT</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_UNDEFINED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#SCREENLAYOUT_LAYOUTDIR_UNDEFINED" target="_top"><code>SCREENLAYOUT_LAYOUTDIR_UNDEFINED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.SCREENLAYOUT_UNDEFINED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#SCREENLAYOUT_UNDEFINED" target="_top"><code>SCREENLAYOUT_UNDEFINED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res.Configuration.densityDpi"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/content/res/Configuration.html#densityDpi" target="_top"><code>densityDpi</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.database.DatabaseUtils.InsertHelper.html b/docs/html/sdk/api_diff/17/changes/android.database.DatabaseUtils.InsertHelper.html
new file mode 100644
index 0000000..fc6bf4a
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.database.DatabaseUtils.InsertHelper.html
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.database.DatabaseUtils.InsertHelper
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.database.<A HREF="../../../../reference/android/database/DatabaseUtils.InsertHelper.html" target="_top"><font size="+2"><code>DatabaseUtils.InsertHelper</code></font></A>
+</H2>
+<p><b>Now deprecated</b>.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_DEFAULT_INDEX"></A>
+ <code>int</code> TABLE_INFO_PRAGMA_DEFAULT_INDEX
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.graphics.Bitmap.html b/docs/html/sdk/api_diff/17/changes/android.graphics.Bitmap.html
new file mode 100644
index 0000000..1c91b36
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.graphics.Bitmap.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.graphics.Bitmap
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.graphics.<A HREF="../../../../reference/android/graphics/Bitmap.html" target="_top"><font size="+2"><code>Bitmap</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)"></A>
+ <nobr><code>Bitmap</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#createBitmap(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)" target="_top"><code>createBitmap</code></A>(<code>DisplayMetrics,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> Config<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)"></A>
+ <nobr><code>Bitmap</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#createBitmap(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)" target="_top"><code>createBitmap</code></A>(<code>DisplayMetrics,</nobr> int[]<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> Config<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)"></A>
+ <nobr><code>Bitmap</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#createBitmap(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)" target="_top"><code>createBitmap</code></A>(<code>DisplayMetrics,</nobr> int[]<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> Config<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Bitmap.hasMipMap_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#hasMipMap()" target="_top"><code>hasMipMap</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Bitmap.isPremultiplied_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#isPremultiplied()" target="_top"><code>isPremultiplied</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Bitmap.setHasMipMap_added(boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/Bitmap.html#setHasMipMap(boolean)" target="_top"><code>setHasMipMap</code></A>(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.graphics.Paint.html b/docs/html/sdk/api_diff/17/changes/android.graphics.Paint.html
new file mode 100644
index 0000000..14f466f
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.graphics.Paint.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.graphics.Paint
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.graphics.<A HREF="../../../../reference/android/graphics/Paint.html" target="_top"><font size="+2"><code>Paint</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Paint.getTextLocale_added()"></A>
+ <nobr><code>Locale</code> <A HREF="../../../../reference/android/graphics/Paint.html#getTextLocale()" target="_top"><code>getTextLocale</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics.Paint.setTextLocale_added(java.util.Locale)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/graphics/Paint.html#setTextLocale(java.util.Locale)" target="_top"><code>setTextLocale</code></A>(<code>Locale</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.CameraInfo.html b/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.CameraInfo.html
new file mode 100644
index 0000000..61888e4
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.CameraInfo.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.hardware.Camera.CameraInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.hardware.<A HREF="../../../../reference/android/hardware/Camera.CameraInfo.html" target="_top"><font size="+2"><code>Camera.CameraInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.hardware.Camera.CameraInfo.canDisableShutterSound"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/Camera.CameraInfo.html#canDisableShutterSound" target="_top"><code>canDisableShutterSound</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.Parameters.html b/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.Parameters.html
new file mode 100644
index 0000000..e96f27f
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.Parameters.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.hardware.Camera.Parameters
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.hardware.<A HREF="../../../../reference/android/hardware/Camera.Parameters.html" target="_top"><font size="+2"><code>Camera.Parameters</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.hardware.Camera.Parameters.SCENE_MODE_HDR"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/hardware/Camera.Parameters.html#SCENE_MODE_HDR" target="_top"><code>SCENE_MODE_HDR</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.html b/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.html
new file mode 100644
index 0000000..8f0ea73
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.hardware.Camera.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.hardware.Camera
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.hardware.<A HREF="../../../../reference/android/hardware/Camera.html" target="_top"><font size="+2"><code>Camera</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.hardware.Camera.enableShutterSound_added(boolean)"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/hardware/Camera.html#enableShutterSound(boolean)" target="_top"><code>enableShutterSound</code></A>(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.hardware.Sensor.html b/docs/html/sdk/api_diff/17/changes/android.hardware.Sensor.html
new file mode 100644
index 0000000..4a2b4a0
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.hardware.Sensor.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.hardware.Sensor
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.hardware.<A HREF="../../../../reference/android/hardware/Sensor.html" target="_top"><font size="+2"><code>Sensor</code></font></A>
+</H2>
+<p>Change from non-final to final.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html b/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html
new file mode 100644
index 0000000..3707cb8
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.inputmethodservice.<A HREF="../../../../reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodSessionImpl.html" target="_top"><font size="+2"><code>AbstractInputMethodService.AbstractInputMethodSessionImpl</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/inputmethodservice/AbstractInputMethodService.AbstractInputMethodSessionImpl.html#dispatchGenericMotionEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" target="_top"><code>dispatchGenericMotionEvent</code></A>(<code>int,</nobr> MotionEvent<nobr>,</nobr> EventCallback<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.AbstractInputMethodService.html b/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.AbstractInputMethodService.html
new file mode 100644
index 0000000..71b3d90
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.AbstractInputMethodService.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.inputmethodservice.AbstractInputMethodService
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.inputmethodservice.<A HREF="../../../../reference/android/inputmethodservice/AbstractInputMethodService.html" target="_top"><font size="+2"><code>AbstractInputMethodService</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.inputmethodservice.AbstractInputMethodService.onGenericMotionEvent_added(android.view.MotionEvent)"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/inputmethodservice/AbstractInputMethodService.html#onGenericMotionEvent(android.view.MotionEvent)" target="_top"><code>onGenericMotionEvent</code></A>(<code>MotionEvent</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.InputMethodService.html b/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.InputMethodService.html
new file mode 100644
index 0000000..913c3db
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.inputmethodservice.InputMethodService.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.inputmethodservice.InputMethodService
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.inputmethodservice.<A HREF="../../../../reference/android/inputmethodservice/InputMethodService.html" target="_top"><font size="+2"><code>InputMethodService</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.inputmethodservice.InputMethodService.enableHardwareAcceleration_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/inputmethodservice/InputMethodService.html#enableHardwareAcceleration()" target="_top"><code>enableHardwareAcceleration</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.location.Location.html b/docs/html/sdk/api_diff/17/changes/android.location.Location.html
new file mode 100644
index 0000000..bc7329e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.location.Location.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.location.Location
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.location.<A HREF="../../../../reference/android/location/Location.html" target="_top"><font size="+2"><code>Location</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.Location.getElapsedRealtimeNanos_added()"></A>
+ <nobr><code>long</code> <A HREF="../../../../reference/android/location/Location.html#getElapsedRealtimeNanos()" target="_top"><code>getElapsedRealtimeNanos</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.Location.setElapsedRealtimeNanos_added(long)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/location/Location.html#setElapsedRealtimeNanos(long)" target="_top"><code>setElapsedRealtimeNanos</code></A>(<code>long</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.location.LocationProvider.html b/docs/html/sdk/api_diff/17/changes/android.location.LocationProvider.html
new file mode 100644
index 0000000..f30f1d3
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.location.LocationProvider.html
@@ -0,0 +1,206 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.location.LocationProvider
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.location.<A HREF="../../../../reference/android/location/LocationProvider.html" target="_top"><font size="+2"><code>LocationProvider</code></font></A>
+</H2>
+<p>Changed from abstract to non-abstract.
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.getAccuracy_changed()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/location/LocationProvider.html#getAccuracy()" target="_top"><code>getAccuracy</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.getPowerRequirement_changed()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/location/LocationProvider.html#getPowerRequirement()" target="_top"><code>getPowerRequirement</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.hasMonetaryCost_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationProvider.html#hasMonetaryCost()" target="_top"><code>hasMonetaryCost</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.requiresCell_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationProvider.html#requiresCell()" target="_top"><code>requiresCell</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.requiresNetwork_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationProvider.html#requiresNetwork()" target="_top"><code>requiresNetwork</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.requiresSatellite_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationProvider.html#requiresSatellite()" target="_top"><code>requiresSatellite</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.supportsAltitude_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationProvider.html#supportsAltitude()" target="_top"><code>supportsAltitude</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.supportsBearing_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationProvider.html#supportsBearing()" target="_top"><code>supportsBearing</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location.LocationProvider.supportsSpeed_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/location/LocationProvider.html#supportsSpeed()" target="_top"><code>supportsSpeed</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Changed from abstract to non-abstract.
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.media.AudioManager.html b/docs/html/sdk/api_diff/17/changes/android.media.AudioManager.html
new file mode 100644
index 0000000..6dd662e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.media.AudioManager.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media.AudioManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.media.<A HREF="../../../../reference/android/media/AudioManager.html" target="_top"><font size="+2"><code>AudioManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.AudioManager.getProperty_added(java.lang.String)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/media/AudioManager.html#getProperty(java.lang.String)" target="_top"><code>getProperty</code></A>(<code>String</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/media/AudioManager.html#PROPERTY_OUTPUT_FRAMES_PER_BUFFER" target="_top"><code>PROPERTY_OUTPUT_FRAMES_PER_BUFFER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/media/AudioManager.html#PROPERTY_OUTPUT_SAMPLE_RATE" target="_top"><code>PROPERTY_OUTPUT_SAMPLE_RATE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.media.MediaMetadataRetriever.html b/docs/html/sdk/api_diff/17/changes/android.media.MediaMetadataRetriever.html
new file mode 100644
index 0000000..ab2f148
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.media.MediaMetadataRetriever.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media.MediaMetadataRetriever
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.media.<A HREF="../../../../reference/android/media/MediaMetadataRetriever.html" target="_top"><font size="+2"><code>MediaMetadataRetriever</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaMetadataRetriever.html#METADATA_KEY_VIDEO_ROTATION" target="_top"><code>METADATA_KEY_VIDEO_ROTATION</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.media.MediaPlayer.html b/docs/html/sdk/api_diff/17/changes/android.media.MediaPlayer.html
new file mode 100644
index 0000000..240b3ba
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.media.MediaPlayer.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media.MediaPlayer
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.media.<A HREF="../../../../reference/android/media/MediaPlayer.html" target="_top"><font size="+2"><code>MediaPlayer</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaPlayer.MEDIA_ERROR_IO"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_ERROR_IO" target="_top"><code>MEDIA_ERROR_IO</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaPlayer.MEDIA_ERROR_MALFORMED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_ERROR_MALFORMED" target="_top"><code>MEDIA_ERROR_MALFORMED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaPlayer.MEDIA_ERROR_TIMED_OUT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_ERROR_TIMED_OUT" target="_top"><code>MEDIA_ERROR_TIMED_OUT</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaPlayer.MEDIA_ERROR_UNSUPPORTED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_ERROR_UNSUPPORTED" target="_top"><code>MEDIA_ERROR_UNSUPPORTED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaPlayer.html#MEDIA_INFO_VIDEO_RENDERING_START" target="_top"><code>MEDIA_INFO_VIDEO_RENDERING_START</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.media.MediaRecorder.html b/docs/html/sdk/api_diff/17/changes/android.media.MediaRecorder.html
new file mode 100644
index 0000000..f0a9874
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.media.MediaRecorder.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media.MediaRecorder
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.media.<A HREF="../../../../reference/android/media/MediaRecorder.html" target="_top"><font size="+2"><code>MediaRecorder</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaRecorder.MEDIA_ERROR_SERVER_DIED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRecorder.html#MEDIA_ERROR_SERVER_DIED" target="_top"><code>MEDIA_ERROR_SERVER_DIED</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.Callback.html b/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.Callback.html
new file mode 100644
index 0000000..7bd7353
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.Callback.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media.MediaRouter.Callback
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.media.<A HREF="../../../../reference/android/media/MediaRouter.Callback.html" target="_top"><font size="+2"><code>MediaRouter.Callback</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaRouter.Callback.onRoutePresentationDisplayChanged_added(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/media/MediaRouter.Callback.html#onRoutePresentationDisplayChanged(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)" target="_top"><code>onRoutePresentationDisplayChanged</code></A>(<code>MediaRouter,</nobr> RouteInfo<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.RouteInfo.html b/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.RouteInfo.html
new file mode 100644
index 0000000..a7f39fe
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.RouteInfo.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media.MediaRouter.RouteInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.media.<A HREF="../../../../reference/android/media/MediaRouter.RouteInfo.html" target="_top"><font size="+2"><code>MediaRouter.RouteInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaRouter.RouteInfo.getPresentationDisplay_added()"></A>
+ <nobr><code>Display</code> <A HREF="../../../../reference/android/media/MediaRouter.RouteInfo.html#getPresentationDisplay()" target="_top"><code>getPresentationDisplay</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaRouter.RouteInfo.isEnabled_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/media/MediaRouter.RouteInfo.html#isEnabled()" target="_top"><code>isEnabled</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.html b/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.html
new file mode 100644
index 0000000..258ad3c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.media.MediaRouter.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media.MediaRouter
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.media.<A HREF="../../../../reference/android/media/MediaRouter.html" target="_top"><font size="+2"><code>MediaRouter</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media.MediaRouter.ROUTE_TYPE_LIVE_VIDEO"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/media/MediaRouter.html#ROUTE_TYPE_LIVE_VIDEO" target="_top"><code>ROUTE_TYPE_LIVE_VIDEO</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.net.ConnectivityManager.html b/docs/html/sdk/api_diff/17/changes/android.net.ConnectivityManager.html
new file mode 100644
index 0000000..a9acb12
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.net.ConnectivityManager.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.net.ConnectivityManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.net.<A HREF="../../../../reference/android/net/ConnectivityManager.html" target="_top"><font size="+2"><code>ConnectivityManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.net.ConnectivityManager.EXTRA_NETWORK_TYPE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/net/ConnectivityManager.html#EXTRA_NETWORK_TYPE" target="_top"><code>EXTRA_NETWORK_TYPE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.net.LocalSocket.html b/docs/html/sdk/api_diff/17/changes/android.net.LocalSocket.html
new file mode 100644
index 0000000..de70962a
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.net.LocalSocket.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.net.LocalSocket
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.net.<A HREF="../../../../reference/android/net/LocalSocket.html" target="_top"><font size="+2"><code>LocalSocket</code></font></A>
+</H2>
+<p><font xsize="+1">Added interface <code>java.io.Closeable</code>.<br></font>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.net.SSLCertificateSocketFactory.html b/docs/html/sdk/api_diff/17/changes/android.net.SSLCertificateSocketFactory.html
new file mode 100644
index 0000000..861c632
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.net.SSLCertificateSocketFactory.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.net.SSLCertificateSocketFactory
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.net.<A HREF="../../../../reference/android/net/SSLCertificateSocketFactory.html" target="_top"><font size="+2"><code>SSLCertificateSocketFactory</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.net.SSLCertificateSocketFactory.setHostname_added(java.net.Socket, java.lang.String)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/net/SSLCertificateSocketFactory.html#setHostname(java.net.Socket, java.lang.String)" target="_top"><code>setHostname</code></A>(<code>Socket,</nobr> String<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.net.SSLCertificateSocketFactory.setUseSessionTickets_added(java.net.Socket, boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/net/SSLCertificateSocketFactory.html#setUseSessionTickets(java.net.Socket, boolean)" target="_top"><code>setUseSessionTickets</code></A>(<code>Socket,</nobr> boolean<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.net.wifi.ScanResult.html b/docs/html/sdk/api_diff/17/changes/android.net.wifi.ScanResult.html
new file mode 100644
index 0000000..aee26cf
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.net.wifi.ScanResult.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.net.wifi.ScanResult
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.net.wifi.<A HREF="../../../../reference/android/net/wifi/ScanResult.html" target="_top"><font size="+2"><code>ScanResult</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.net.wifi.ScanResult.timestamp"></A>
+ <nobr><code>long</code> <A HREF="../../../../reference/android/net/wifi/ScanResult.html#timestamp" target="_top"><code>timestamp</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.opengl.GLES20.html b/docs/html/sdk/api_diff/17/changes/android.opengl.GLES20.html
new file mode 100644
index 0000000..af909ed
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.opengl.GLES20.html
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.opengl.GLES20
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.opengl.<A HREF="../../../../reference/android/opengl/GLES20.html" target="_top"><font size="+2"><code>GLES20</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.opengl.GLES20.glGetActiveAttrib_added(int, int, int[], int, int[], int)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/opengl/GLES20.html#glGetActiveAttrib(int, int, int[], int, int[], int)" target="_top"><code>glGetActiveAttrib</code></A>(<code>int,</nobr> int<nobr>,</nobr> int[]<nobr>,</nobr> int<nobr>,</nobr> int[]<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.opengl.GLES20.glGetActiveAttrib_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/opengl/GLES20.html#glGetActiveAttrib(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" target="_top"><code>glGetActiveAttrib</code></A>(<code>int,</nobr> int<nobr>,</nobr> IntBuffer<nobr>,</nobr> IntBuffer<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.opengl.GLES20.glGetActiveUniform_added(int, int, int[], int, int[], int)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/opengl/GLES20.html#glGetActiveUniform(int, int, int[], int, int[], int)" target="_top"><code>glGetActiveUniform</code></A>(<code>int,</nobr> int<nobr>,</nobr> int[]<nobr>,</nobr> int<nobr>,</nobr> int[]<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.opengl.GLES20.glGetActiveUniform_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/opengl/GLES20.html#glGetActiveUniform(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" target="_top"><code>glGetActiveUniform</code></A>(<code>int,</nobr> int<nobr>,</nobr> IntBuffer<nobr>,</nobr> IntBuffer<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.opengl.GLES20.glGetShaderSource_added(int)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/opengl/GLES20.html#glGetShaderSource(int)" target="_top"><code>glGetShaderSource</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.BatteryManager.html b/docs/html/sdk/api_diff/17/changes/android.os.BatteryManager.html
new file mode 100644
index 0000000..3beccbd
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.BatteryManager.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.BatteryManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/BatteryManager.html" target="_top"><font size="+2"><code>BatteryManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/os/BatteryManager.html#BATTERY_PLUGGED_WIRELESS" target="_top"><code>BATTERY_PLUGGED_WIRELESS</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.Binder.html b/docs/html/sdk/api_diff/17/changes/android.os.Binder.html
new file mode 100644
index 0000000..5140918
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.Binder.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.Binder
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/Binder.html" target="_top"><font size="+2"><code>Binder</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.Binder.getCallingUserHandle_added()"></A>
+ <nobr><code>UserHandle</code> <A HREF="../../../../reference/android/os/Binder.html#getCallingUserHandle()" target="_top"><code>getCallingUserHandle</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.Build.VERSION_CODES.html b/docs/html/sdk/api_diff/17/changes/android.os.Build.VERSION_CODES.html
new file mode 100644
index 0000000..0cb5cf5
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.Build.VERSION_CODES.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.Build.VERSION_CODES
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/Build.VERSION_CODES.html" target="_top"><font size="+2"><code>Build.VERSION_CODES</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.Build.VERSION_CODES.JELLY_BEAN_MR1"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN_MR1" target="_top"><code>JELLY_BEAN_MR1</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.PowerManager.WakeLock.html b/docs/html/sdk/api_diff/17/changes/android.os.PowerManager.WakeLock.html
new file mode 100644
index 0000000..6361c8d
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.PowerManager.WakeLock.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.PowerManager.WakeLock
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/PowerManager.WakeLock.html" target="_top"><font size="+2"><code>PowerManager.WakeLock</code></font></A>
+</H2>
+<p>Change from non-final to final.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.PowerManager.html b/docs/html/sdk/api_diff/17/changes/android.os.PowerManager.html
new file mode 100644
index 0000000..0874295
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.PowerManager.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.PowerManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/PowerManager.html" target="_top"><font size="+2"><code>PowerManager</code></font></A>
+</H2>
+<p>Change from non-final to final.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.PowerManager.wakeUp_added(long)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/os/PowerManager.html#wakeUp(long)" target="_top"><code>wakeUp</code></A>(<code>long</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.PowerManager.FULL_WAKE_LOCK"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/os/PowerManager.html#FULL_WAKE_LOCK" target="_top"><code>FULL_WAKE_LOCK</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.PowerManager.SCREEN_DIM_WAKE_LOCK"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/os/PowerManager.html#SCREEN_DIM_WAKE_LOCK" target="_top"><code>SCREEN_DIM_WAKE_LOCK</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.Process.html b/docs/html/sdk/api_diff/17/changes/android.os.Process.html
new file mode 100644
index 0000000..97240da1d
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.Process.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.Process
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/Process.html" target="_top"><font size="+2"><code>Process</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.Process.myUserHandle_added()"></A>
+ <nobr><code>UserHandle</code> <A HREF="../../../../reference/android/os/Process.html#myUserHandle()" target="_top"><code>myUserHandle</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.RemoteCallbackList.html b/docs/html/sdk/api_diff/17/changes/android.os.RemoteCallbackList.html
new file mode 100644
index 0000000..77b8b7e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.RemoteCallbackList.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.RemoteCallbackList
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/RemoteCallbackList.html" target="_top"><font size="+2"><code>RemoteCallbackList</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.RemoteCallbackList.getRegisteredCallbackCount_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/os/RemoteCallbackList.html#getRegisteredCallbackCount()" target="_top"><code>getRegisteredCallbackCount</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.os.SystemClock.html b/docs/html/sdk/api_diff/17/changes/android.os.SystemClock.html
new file mode 100644
index 0000000..e7f6fe8
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.os.SystemClock.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os.SystemClock
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.os.<A HREF="../../../../reference/android/os/SystemClock.html" target="_top"><font size="+2"><code>SystemClock</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os.SystemClock.elapsedRealtimeNanos_added()"></A>
+ <nobr><code>long</code> <A HREF="../../../../reference/android/os/SystemClock.html#elapsedRealtimeNanos()" target="_top"><code>elapsedRealtimeNanos</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.provider.CalendarContract.CalendarColumns.html b/docs/html/sdk/api_diff/17/changes/android.provider.CalendarContract.CalendarColumns.html
new file mode 100644
index 0000000..d067f78
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.provider.CalendarContract.CalendarColumns.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.provider.CalendarContract.CalendarColumns
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Interface android.provider.<A HREF="../../../../reference/android/provider/CalendarContract.CalendarColumns.html" target="_top"><font size="+2"><code>CalendarContract.CalendarColumns</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.CalendarContract.CalendarColumns.IS_PRIMARY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/CalendarContract.CalendarColumns.html#IS_PRIMARY" target="_top"><code>IS_PRIMARY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.provider.CalendarContract.EventsColumns.html b/docs/html/sdk/api_diff/17/changes/android.provider.CalendarContract.EventsColumns.html
new file mode 100644
index 0000000..36e4029
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.provider.CalendarContract.EventsColumns.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.provider.CalendarContract.EventsColumns
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Interface android.provider.<A HREF="../../../../reference/android/provider/CalendarContract.EventsColumns.html" target="_top"><font size="+2"><code>CalendarContract.EventsColumns</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.CalendarContract.EventsColumns.IS_ORGANIZER"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/CalendarContract.EventsColumns.html#IS_ORGANIZER" target="_top"><code>IS_ORGANIZER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.CalendarContract.EventsColumns.UID_2445"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/CalendarContract.EventsColumns.html#UID_2445" target="_top"><code>UID_2445</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.provider.CallLog.Calls.html b/docs/html/sdk/api_diff/17/changes/android.provider.CallLog.Calls.html
new file mode 100644
index 0000000..5ae5fc0
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.provider.CallLog.Calls.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.provider.CallLog.Calls
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.provider.<A HREF="../../../../reference/android/provider/CallLog.Calls.html" target="_top"><font size="+2"><code>CallLog.Calls</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.CallLog.Calls.LIMIT_PARAM_KEY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/CallLog.Calls.html#LIMIT_PARAM_KEY" target="_top"><code>LIMIT_PARAM_KEY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.CallLog.Calls.OFFSET_PARAM_KEY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/CallLog.Calls.html#OFFSET_PARAM_KEY" target="_top"><code>OFFSET_PARAM_KEY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.provider.MediaStore.html b/docs/html/sdk/api_diff/17/changes/android.provider.MediaStore.html
new file mode 100644
index 0000000..09b422e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.provider.MediaStore.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.provider.MediaStore
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.provider.<A HREF="../../../../reference/android/provider/MediaStore.html" target="_top"><font size="+2"><code>MediaStore</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.MediaStore.ACTION_IMAGE_CAPTURE_SECURE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE_SECURE" target="_top"><code>ACTION_IMAGE_CAPTURE_SECURE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE" target="_top"><code>INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.MediaStore.INTENT_ACTION_TEXT_OPEN_FROM_SEARCH"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_TEXT_OPEN_FROM_SEARCH" target="_top"><code>INTENT_ACTION_TEXT_OPEN_FROM_SEARCH</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.MediaStore.INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/MediaStore.html#INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH" target="_top"><code>INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.provider.Settings.Secure.html b/docs/html/sdk/api_diff/17/changes/android.provider.Settings.Secure.html
new file mode 100644
index 0000000..ba5b553
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.provider.Settings.Secure.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.provider.Settings.Secure
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.provider.<A HREF="../../../../reference/android/provider/Settings.Secure.html" target="_top"><font size="+2"><code>Settings.Secure</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.ADB_ENABLED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#ADB_ENABLED" target="_top"><code>ADB_ENABLED</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.BLUETOOTH_ON"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#BLUETOOTH_ON" target="_top"><code>BLUETOOTH_ON</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.DATA_ROAMING"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#DATA_ROAMING" target="_top"><code>DATA_ROAMING</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#DEVELOPMENT_SETTINGS_ENABLED" target="_top"><code>DEVELOPMENT_SETTINGS_ENABLED</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.DEVICE_PROVISIONED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#DEVICE_PROVISIONED" target="_top"><code>DEVICE_PROVISIONED</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.HTTP_PROXY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#HTTP_PROXY" target="_top"><code>HTTP_PROXY</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.INSTALL_NON_MARKET_APPS"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#INSTALL_NON_MARKET_APPS" target="_top"><code>INSTALL_NON_MARKET_APPS</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" target="_top"><code>LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.NETWORK_PREFERENCE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#NETWORK_PREFERENCE" target="_top"><code>NETWORK_PREFERENCE</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.USB_MASS_STORAGE_ENABLED"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#USB_MASS_STORAGE_ENABLED" target="_top"><code>USB_MASS_STORAGE_ENABLED</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.USE_GOOGLE_MAIL"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#USE_GOOGLE_MAIL" target="_top"><code>USE_GOOGLE_MAIL</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.WIFI_MAX_DHCP_RETRY_COUNT"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#WIFI_MAX_DHCP_RETRY_COUNT" target="_top"><code>WIFI_MAX_DHCP_RETRY_COUNT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" target="_top"><code>WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" target="_top"><code>WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" target="_top"><code>WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#WIFI_NUM_OPEN_NETWORKS_KEPT" target="_top"><code>WIFI_NUM_OPEN_NETWORKS_KEPT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.WIFI_ON"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#WIFI_ON" target="_top"><code>WIFI_ON</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.Secure.WIFI_WATCHDOG_ON"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.Secure.html#WIFI_WATCHDOG_ON" target="_top"><code>WIFI_WATCHDOG_ON</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.provider.Settings.System.html b/docs/html/sdk/api_diff/17/changes/android.provider.Settings.System.html
new file mode 100644
index 0000000..aa7c33e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.provider.Settings.System.html
@@ -0,0 +1,404 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.provider.Settings.System
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.provider.<A HREF="../../../../reference/android/provider/Settings.System.html" target="_top"><font size="+2"><code>Settings.System</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.getShowGTalkServiceStatus_changed(android.content.ContentResolver)"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/provider/Settings.System.html#getShowGTalkServiceStatus(android.content.ContentResolver)" target="_top"><code>getShowGTalkServiceStatus</code></A>(<code>ContentResolver</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.setShowGTalkServiceStatus_changed(android.content.ContentResolver, boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/provider/Settings.System.html#setShowGTalkServiceStatus(android.content.ContentResolver, boolean)" target="_top"><code>setShowGTalkServiceStatus</code></A>(<code>ContentResolver,</nobr> boolean<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.AIRPLANE_MODE_ON"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#AIRPLANE_MODE_ON" target="_top"><code>AIRPLANE_MODE_ON</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.AIRPLANE_MODE_RADIOS"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#AIRPLANE_MODE_RADIOS" target="_top"><code>AIRPLANE_MODE_RADIOS</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.ALWAYS_FINISH_ACTIVITIES"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ALWAYS_FINISH_ACTIVITIES" target="_top"><code>ALWAYS_FINISH_ACTIVITIES</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.ANIMATOR_DURATION_SCALE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#ANIMATOR_DURATION_SCALE" target="_top"><code>ANIMATOR_DURATION_SCALE</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.AUTO_TIME"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#AUTO_TIME" target="_top"><code>AUTO_TIME</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.AUTO_TIME_ZONE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#AUTO_TIME_ZONE" target="_top"><code>AUTO_TIME_ZONE</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.DEBUG_APP"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#DEBUG_APP" target="_top"><code>DEBUG_APP</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.DIM_SCREEN"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#DIM_SCREEN" target="_top"><code>DIM_SCREEN</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.MODE_RINGER"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#MODE_RINGER" target="_top"><code>MODE_RINGER</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.RADIO_BLUETOOTH"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#RADIO_BLUETOOTH" target="_top"><code>RADIO_BLUETOOTH</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.RADIO_CELL"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#RADIO_CELL" target="_top"><code>RADIO_CELL</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.RADIO_NFC"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#RADIO_NFC" target="_top"><code>RADIO_NFC</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.RADIO_WIFI"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#RADIO_WIFI" target="_top"><code>RADIO_WIFI</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.SHOW_PROCESSES"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#SHOW_PROCESSES" target="_top"><code>SHOW_PROCESSES</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.STAY_ON_WHILE_PLUGGED_IN"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#STAY_ON_WHILE_PLUGGED_IN" target="_top"><code>STAY_ON_WHILE_PLUGGED_IN</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.TRANSITION_ANIMATION_SCALE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#TRANSITION_ANIMATION_SCALE" target="_top"><code>TRANSITION_ANIMATION_SCALE</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WAIT_FOR_DEBUGGER"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WAIT_FOR_DEBUGGER" target="_top"><code>WAIT_FOR_DEBUGGER</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WALLPAPER_ACTIVITY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WALLPAPER_ACTIVITY" target="_top"><code>WALLPAPER_ACTIVITY</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY" target="_top"><code>WIFI_SLEEP_POLICY</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY_DEFAULT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_DEFAULT" target="_top"><code>WIFI_SLEEP_POLICY_DEFAULT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_NEVER" target="_top"><code>WIFI_SLEEP_POLICY_NEVER</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" target="_top"><code>WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_STATIC_DNS1"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_STATIC_DNS1" target="_top"><code>WIFI_STATIC_DNS1</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_STATIC_DNS2"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_STATIC_DNS2" target="_top"><code>WIFI_STATIC_DNS2</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_STATIC_GATEWAY"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_STATIC_GATEWAY" target="_top"><code>WIFI_STATIC_GATEWAY</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_STATIC_IP"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_STATIC_IP" target="_top"><code>WIFI_STATIC_IP</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_STATIC_NETMASK"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_STATIC_NETMASK" target="_top"><code>WIFI_STATIC_NETMASK</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WIFI_USE_STATIC_IP"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WIFI_USE_STATIC_IP" target="_top"><code>WIFI_USE_STATIC_IP</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider.Settings.System.WINDOW_ANIMATION_SCALE"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/provider/Settings.System.html#WINDOW_ANIMATION_SCALE" target="_top"><code>WINDOW_ANIMATION_SCALE</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.renderscript.Script.html b/docs/html/sdk/api_diff/17/changes/android.renderscript.Script.html
new file mode 100644
index 0000000..3cacb90
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.renderscript.Script.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.renderscript.Script
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.renderscript.<A HREF="../../../../reference/android/renderscript/Script.html" target="_top"><font size="+2"><code>Script</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.renderscript.Script.createFieldID_added(int, android.renderscript.Element)"></A>
+ <nobr><code>FieldID</code> <A HREF="../../../../reference/android/renderscript/Script.html#createFieldID(int, android.renderscript.Element)" target="_top"><code>createFieldID</code></A>(<code>int,</nobr> Element<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.renderscript.Script.createKernelID_added(int, int, android.renderscript.Element, android.renderscript.Element)"></A>
+ <nobr><code>KernelID</code> <A HREF="../../../../reference/android/renderscript/Script.html#createKernelID(int, int, android.renderscript.Element, android.renderscript.Element)" target="_top"><code>createKernelID</code></A>(<code>int,</nobr> int<nobr>,</nobr> Element<nobr>,</nobr> Element<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.telephony.PhoneStateListener.html b/docs/html/sdk/api_diff/17/changes/android.telephony.PhoneStateListener.html
new file mode 100644
index 0000000..d244732
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.telephony.PhoneStateListener.html
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.telephony.PhoneStateListener
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.telephony.<A HREF="../../../../reference/android/telephony/PhoneStateListener.html" target="_top"><font size="+2"><code>PhoneStateListener</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.telephony.PhoneStateListener.onCellInfoChanged_added(java.util.List<android.telephony.CellInfo>)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/telephony/PhoneStateListener.html#onCellInfoChanged(java.util.List<android.telephony.CellInfo>)" target="_top"><code>onCellInfoChanged</code></A>(<code>List<CellInfo></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.telephony.PhoneStateListener.LISTEN_CELL_INFO"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/telephony/PhoneStateListener.html#LISTEN_CELL_INFO" target="_top"><code>LISTEN_CELL_INFO</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.telephony.TelephonyManager.html b/docs/html/sdk/api_diff/17/changes/android.telephony.TelephonyManager.html
new file mode 100644
index 0000000..0248453
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.telephony.TelephonyManager.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.telephony.TelephonyManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.telephony.<A HREF="../../../../reference/android/telephony/TelephonyManager.html" target="_top"><font size="+2"><code>TelephonyManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.telephony.TelephonyManager.getAllCellInfo_added()"></A>
+ <nobr><code>List<CellInfo></code> <A HREF="../../../../reference/android/telephony/TelephonyManager.html#getAllCellInfo()" target="_top"><code>getAllCellInfo</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.telephony.cdma.CdmaCellLocation.html b/docs/html/sdk/api_diff/17/changes/android.telephony.cdma.CdmaCellLocation.html
new file mode 100644
index 0000000..f3f288e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.telephony.cdma.CdmaCellLocation.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.telephony.cdma.CdmaCellLocation
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.telephony.cdma.<A HREF="../../../../reference/android/telephony/cdma/CdmaCellLocation.html" target="_top"><font size="+2"><code>CdmaCellLocation</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.telephony.cdma.CdmaCellLocation.convertQuartSecToDecDegrees_added(int)"></A>
+ <nobr><code>double</code> <A HREF="../../../../reference/android/telephony/cdma/CdmaCellLocation.html#convertQuartSecToDecDegrees(int)" target="_top"><code>convertQuartSecToDecDegrees</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.test.mock.MockContext.html b/docs/html/sdk/api_diff/17/changes/android.test.mock.MockContext.html
new file mode 100644
index 0000000..d0f605f
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.test.mock.MockContext.html
@@ -0,0 +1,171 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.test.mock.MockContext
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.test.mock.<A HREF="../../../../reference/android/test/mock/MockContext.html" target="_top"><font size="+2"><code>MockContext</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.createConfigurationContext_added(android.content.res.Configuration)"></A>
+ <nobr><code>Context</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#createConfigurationContext(android.content.res.Configuration)" target="_top"><code>createConfigurationContext</code></A>(<code>Configuration</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.createDisplayContext_added(android.view.Display)"></A>
+ <nobr><code>Context</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#createDisplayContext(android.view.Display)" target="_top"><code>createDisplayContext</code></A>(<code>Display</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>removeStickyBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#sendBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>sendBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String)" target="_top"><code>sendBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> String<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" target="_top"><code>sendOrderedBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> String<nobr>,</nobr> BroadcastReceiver<nobr>,</nobr> Handler<nobr>,</nobr> int<nobr>,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)" target="_top"><code>sendStickyBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockContext.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/test/mock/MockContext.html#sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" target="_top"><code>sendStickyOrderedBroadcastAsUser</code></A>(<code>Intent,</nobr> UserHandle<nobr>,</nobr> BroadcastReceiver<nobr>,</nobr> Handler<nobr>,</nobr> int<nobr>,</nobr> String<nobr>,</nobr> Bundle<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.test.mock.MockPackageManager.html b/docs/html/sdk/api_diff/17/changes/android.test.mock.MockPackageManager.html
new file mode 100644
index 0000000..4b37968
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.test.mock.MockPackageManager.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.test.mock.MockPackageManager
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.test.mock.<A HREF="../../../../reference/android/test/mock/MockPackageManager.html" target="_top"><font size="+2"><code>MockPackageManager</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock.MockPackageManager.extendVerificationTimeout_added(int, int, long)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/test/mock/MockPackageManager.html#extendVerificationTimeout(int, int, long)" target="_top"><code>extendVerificationTimeout</code></A>(<code>int,</nobr> int<nobr>,</nobr> long<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.text.TextUtils.html b/docs/html/sdk/api_diff/17/changes/android.text.TextUtils.html
new file mode 100644
index 0000000..a9199da1
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.text.TextUtils.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.text.TextUtils
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.text.<A HREF="../../../../reference/android/text/TextUtils.html" target="_top"><font size="+2"><code>TextUtils</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.TextUtils.getLayoutDirectionFromLocale_added(java.util.Locale)"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/TextUtils.html#getLayoutDirectionFromLocale(java.util.Locale)" target="_top"><code>getLayoutDirectionFromLocale</code></A>(<code>Locale</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.text.format.DateFormat.html b/docs/html/sdk/api_diff/17/changes/android.text.format.DateFormat.html
new file mode 100644
index 0000000..caf69a7
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.text.format.DateFormat.html
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.text.format.DateFormat
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.text.format.<A HREF="../../../../reference/android/text/format/DateFormat.html" target="_top"><font size="+2"><code>DateFormat</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.getDateFormat_changed(android.content.Context)"></A>
+ <nobr><code>DateFormat</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#getDateFormat(android.content.Context)" target="_top"><code>getDateFormat</code></A>(<code>Context</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.getDateFormatOrder_changed(android.content.Context)"></A>
+ <nobr><code>char[]</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#getDateFormatOrder(android.content.Context)" target="_top"><code>getDateFormatOrder</code></A>(<code>Context</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.getLongDateFormat_changed(android.content.Context)"></A>
+ <nobr><code>DateFormat</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#getLongDateFormat(android.content.Context)" target="_top"><code>getLongDateFormat</code></A>(<code>Context</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.getMediumDateFormat_changed(android.content.Context)"></A>
+ <nobr><code>DateFormat</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#getMediumDateFormat(android.content.Context)" target="_top"><code>getMediumDateFormat</code></A>(<code>Context</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.getTimeFormat_changed(android.content.Context)"></A>
+ <nobr><code>DateFormat</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#getTimeFormat(android.content.Context)" target="_top"><code>getTimeFormat</code></A>(<code>Context</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Calendar)"></A>
+ <nobr><code>CharSequence</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#format(java.lang.CharSequence, java.util.Calendar)" target="_top"><code>format</code></A>(<code>CharSequence,</nobr> Calendar<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Date)"></A>
+ <nobr><code>CharSequence</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#format(java.lang.CharSequence, java.util.Date)" target="_top"><code>format</code></A>(<code>CharSequence,</nobr> Date<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.format_changed(java.lang.CharSequence, long)"></A>
+ <nobr><code>CharSequence</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#format(java.lang.CharSequence, long)" target="_top"><code>format</code></A>(<code>CharSequence,</nobr> long<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Change from final to non-final.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateFormat.STANDALONE_MONTH"></A>
+ <nobr><code>char</code> <A HREF="../../../../reference/android/text/format/DateFormat.html#STANDALONE_MONTH" target="_top"><code>STANDALONE_MONTH</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.text.format.DateUtils.html b/docs/html/sdk/api_diff/17/changes/android.text.format.DateUtils.html
new file mode 100644
index 0000000..2c327b34
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.text.format.DateUtils.html
@@ -0,0 +1,297 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.text.format.DateUtils
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.text.format.<A HREF="../../../../reference/android/text/format/DateUtils.html" target="_top"><font size="+2"><code>DateUtils</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.getAMPMString_changed(int)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#getAMPMString(int)" target="_top"><code>getAMPMString</code></A>(<code>int</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.getDayOfWeekString_changed(int, int)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#getDayOfWeekString(int, int)" target="_top"><code>getDayOfWeekString</code></A>(<code>int,</nobr> int<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.getMonthString_changed(int, int)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#getMonthString(int, int)" target="_top"><code>getMonthString</code></A>(<code>int,</nobr> int<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.ABBREV_MONTH_FORMAT"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#ABBREV_MONTH_FORMAT" target="_top"><code>ABBREV_MONTH_FORMAT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.FORMAT_12HOUR"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#FORMAT_12HOUR" target="_top"><code>FORMAT_12HOUR</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.FORMAT_24HOUR"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#FORMAT_24HOUR" target="_top"><code>FORMAT_24HOUR</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.FORMAT_CAP_AMPM"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#FORMAT_CAP_AMPM" target="_top"><code>FORMAT_CAP_AMPM</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.FORMAT_CAP_MIDNIGHT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#FORMAT_CAP_MIDNIGHT" target="_top"><code>FORMAT_CAP_MIDNIGHT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.FORMAT_CAP_NOON"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#FORMAT_CAP_NOON" target="_top"><code>FORMAT_CAP_NOON</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.FORMAT_CAP_NOON_MIDNIGHT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#FORMAT_CAP_NOON_MIDNIGHT" target="_top"><code>FORMAT_CAP_NOON_MIDNIGHT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.FORMAT_NO_NOON_MIDNIGHT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#FORMAT_NO_NOON_MIDNIGHT" target="_top"><code>FORMAT_NO_NOON_MIDNIGHT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.HOUR_MINUTE_24"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#HOUR_MINUTE_24" target="_top"><code>HOUR_MINUTE_24</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.LENGTH_LONG"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#LENGTH_LONG" target="_top"><code>LENGTH_LONG</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.LENGTH_MEDIUM"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#LENGTH_MEDIUM" target="_top"><code>LENGTH_MEDIUM</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.LENGTH_SHORT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#LENGTH_SHORT" target="_top"><code>LENGTH_SHORT</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.LENGTH_SHORTER"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#LENGTH_SHORTER" target="_top"><code>LENGTH_SHORTER</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.LENGTH_SHORTEST"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#LENGTH_SHORTEST" target="_top"><code>LENGTH_SHORTEST</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.sameMonthTable"></A>
+ <nobr><code>int[]</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#sameMonthTable" target="_top"><code>sameMonthTable</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format.DateUtils.sameYearTable"></A>
+ <nobr><code>int[]</code> <A HREF="../../../../reference/android/text/format/DateUtils.html#sameYearTable" target="_top"><code>sameYearTable</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.util.DisplayMetrics.html b/docs/html/sdk/api_diff/17/changes/android.util.DisplayMetrics.html
new file mode 100644
index 0000000..7580d75
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.util.DisplayMetrics.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.util.DisplayMetrics
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.util.<A HREF="../../../../reference/android/util/DisplayMetrics.html" target="_top"><font size="+2"><code>DisplayMetrics</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.util.DisplayMetrics.equals_added(android.util.DisplayMetrics)"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/util/DisplayMetrics.html#equals(android.util.DisplayMetrics)" target="_top"><code>equals</code></A>(<code>DisplayMetrics</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.util.FloatMath.html b/docs/html/sdk/api_diff/17/changes/android.util.FloatMath.html
new file mode 100644
index 0000000..618c730
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.util.FloatMath.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.util.FloatMath
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.util.<A HREF="../../../../reference/android/util/FloatMath.html" target="_top"><font size="+2"><code>FloatMath</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.util.FloatMath.exp_added(float)"></A>
+ <nobr><code>float</code> <A HREF="../../../../reference/android/util/FloatMath.html#exp(float)" target="_top"><code>exp</code></A>(<code>float</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.util.FloatMath.hypot_added(float, float)"></A>
+ <nobr><code>float</code> <A HREF="../../../../reference/android/util/FloatMath.html#hypot(float, float)" target="_top"><code>hypot</code></A>(<code>float,</nobr> float<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.util.FloatMath.pow_added(float, float)"></A>
+ <nobr><code>float</code> <A HREF="../../../../reference/android/util/FloatMath.html#pow(float, float)" target="_top"><code>pow</code></A>(<code>float,</nobr> float<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.util.LruCache.html b/docs/html/sdk/api_diff/17/changes/android.util.LruCache.html
new file mode 100644
index 0000000..2c40941
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.util.LruCache.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.util.LruCache
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.util.<A HREF="../../../../reference/android/util/LruCache.html" target="_top"><font size="+2"><code>LruCache</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.util.LruCache.trimToSize_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/util/LruCache.html#trimToSize(int)" target="_top"><code>trimToSize</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.ContextThemeWrapper.html b/docs/html/sdk/api_diff/17/changes/android.view.ContextThemeWrapper.html
new file mode 100644
index 0000000..832b36e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.ContextThemeWrapper.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.ContextThemeWrapper
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/ContextThemeWrapper.html" target="_top"><font size="+2"><code>ContextThemeWrapper</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ContextThemeWrapper.applyOverrideConfiguration_added(android.content.res.Configuration)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/ContextThemeWrapper.html#applyOverrideConfiguration(android.content.res.Configuration)" target="_top"><code>applyOverrideConfiguration</code></A>(<code>Configuration</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.Display.html b/docs/html/sdk/api_diff/17/changes/android.view.Display.html
new file mode 100644
index 0000000..674e1c5
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.Display.html
@@ -0,0 +1,191 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.Display
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/Display.html" target="_top"><font size="+2"><code>Display</code></font></A>
+</H2>
+<p>Change from non-final to final.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.getFlags_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/Display.html#getFlags()" target="_top"><code>getFlags</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.getName_added()"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/view/Display.html#getName()" target="_top"><code>getName</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.getRealMetrics_added(android.util.DisplayMetrics)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/Display.html#getRealMetrics(android.util.DisplayMetrics)" target="_top"><code>getRealMetrics</code></A>(<code>DisplayMetrics</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.getRealSize_added(android.graphics.Point)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/Display.html#getRealSize(android.graphics.Point)" target="_top"><code>getRealSize</code></A>(<code>Point</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.isValid_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/view/Display.html#isValid()" target="_top"><code>isValid</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.getPixelFormat_changed()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/Display.html#getPixelFormat()" target="_top"><code>getPixelFormat</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.FLAG_SECURE"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/Display.html#FLAG_SECURE" target="_top"><code>FLAG_SECURE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Display.FLAG_SUPPORTS_PROTECTED_BUFFERS"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/Display.html#FLAG_SUPPORTS_PROTECTED_BUFFERS" target="_top"><code>FLAG_SUPPORTS_PROTECTED_BUFFERS</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.Gravity.html b/docs/html/sdk/api_diff/17/changes/android.view.Gravity.html
new file mode 100644
index 0000000..c3965cf
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.Gravity.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.Gravity
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/Gravity.html" target="_top"><font size="+2"><code>Gravity</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, android.graphics.Rect, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/Gravity.html#apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int)" target="_top"><code>apply</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> Rect<nobr>,</nobr> Rect<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/Gravity.html#apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)" target="_top"><code>apply</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> Rect<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> Rect<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Gravity.applyDisplay_added(int, android.graphics.Rect, android.graphics.Rect, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/Gravity.html#applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int)" target="_top"><code>applyDisplay</code></A>(<code>int,</nobr> Rect<nobr>,</nobr> Rect<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Gravity.getAbsoluteGravity_added(int, int)"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/Gravity.html#getAbsoluteGravity(int, int)" target="_top"><code>getAbsoluteGravity</code></A>(<code>int,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.Surface.html b/docs/html/sdk/api_diff/17/changes/android.view.Surface.html
new file mode 100644
index 0000000..878c2c8
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.Surface.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.Surface
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/Surface.html" target="_top"><font size="+2"><code>Surface</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.Surface.unlockCanvas_changed(android.graphics.Canvas)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/Surface.html#unlockCanvas(android.graphics.Canvas)" target="_top"><code>unlockCanvas</code></A>(<code>Canvas</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.SurfaceView.html b/docs/html/sdk/api_diff/17/changes/android.view.SurfaceView.html
new file mode 100644
index 0000000..ec45c76
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.SurfaceView.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.SurfaceView
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/SurfaceView.html" target="_top"><font size="+2"><code>SurfaceView</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.SurfaceView.setSecure_added(boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/SurfaceView.html#setSecure(boolean)" target="_top"><code>setSecure</code></A>(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.View.html b/docs/html/sdk/api_diff/17/changes/android.view.View.html
new file mode 100644
index 0000000..7fcd852
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.View.html
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.View
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/View.html" target="_top"><font size="+2"><code>View</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.generateViewId_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#generateViewId()" target="_top"><code>generateViewId</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.getDisplay_added()"></A>
+ <nobr><code>Display</code> <A HREF="../../../../reference/android/view/View.html#getDisplay()" target="_top"><code>getDisplay</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.getLabelFor_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#getLabelFor()" target="_top"><code>getLabelFor</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.getLayoutDirection_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#getLayoutDirection()" target="_top"><code>getLayoutDirection</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.getPaddingEnd_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#getPaddingEnd()" target="_top"><code>getPaddingEnd</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.getPaddingStart_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#getPaddingStart()" target="_top"><code>getPaddingStart</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.getTextAlignment_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#getTextAlignment()" target="_top"><code>getTextAlignment</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.getTextDirection_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#getTextDirection()" target="_top"><code>getTextDirection</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.isPaddingRelative_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/view/View.html#isPaddingRelative()" target="_top"><code>isPaddingRelative</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.onRtlPropertiesChanged_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#onRtlPropertiesChanged(int)" target="_top"><code>onRtlPropertiesChanged</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.setLabelFor_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#setLabelFor(int)" target="_top"><code>setLabelFor</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.setLayerPaint_added(android.graphics.Paint)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#setLayerPaint(android.graphics.Paint)" target="_top"><code>setLayerPaint</code></A>(<code>Paint</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.setLayoutDirection_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#setLayoutDirection(int)" target="_top"><code>setLayoutDirection</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.setPaddingRelative_added(int, int, int, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#setPaddingRelative(int, int, int, int)" target="_top"><code>setPaddingRelative</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.setTextAlignment_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#setTextAlignment(int)" target="_top"><code>setTextAlignment</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.setTextDirection_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#setTextDirection(int)" target="_top"><code>setTextDirection</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_ALIGNMENT_RESOLVED_DEFAULT"></A>
+ <code>int</code> TEXT_ALIGNMENT_RESOLVED_DEFAULT
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.LAYOUT_DIRECTION_INHERIT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#LAYOUT_DIRECTION_INHERIT" target="_top"><code>LAYOUT_DIRECTION_INHERIT</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.LAYOUT_DIRECTION_LOCALE"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#LAYOUT_DIRECTION_LOCALE" target="_top"><code>LAYOUT_DIRECTION_LOCALE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.LAYOUT_DIRECTION_LTR"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#LAYOUT_DIRECTION_LTR" target="_top"><code>LAYOUT_DIRECTION_LTR</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.LAYOUT_DIRECTION_RTL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#LAYOUT_DIRECTION_RTL" target="_top"><code>LAYOUT_DIRECTION_RTL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_ALIGNMENT_CENTER"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_ALIGNMENT_CENTER" target="_top"><code>TEXT_ALIGNMENT_CENTER</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_ALIGNMENT_GRAVITY"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_ALIGNMENT_GRAVITY" target="_top"><code>TEXT_ALIGNMENT_GRAVITY</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_ALIGNMENT_TEXT_END"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_ALIGNMENT_TEXT_END" target="_top"><code>TEXT_ALIGNMENT_TEXT_END</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_ALIGNMENT_TEXT_START"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_ALIGNMENT_TEXT_START" target="_top"><code>TEXT_ALIGNMENT_TEXT_START</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_ALIGNMENT_VIEW_END"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_ALIGNMENT_VIEW_END" target="_top"><code>TEXT_ALIGNMENT_VIEW_END</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_ALIGNMENT_VIEW_START"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_ALIGNMENT_VIEW_START" target="_top"><code>TEXT_ALIGNMENT_VIEW_START</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_DIRECTION_ANY_RTL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_DIRECTION_ANY_RTL" target="_top"><code>TEXT_DIRECTION_ANY_RTL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_DIRECTION_FIRST_STRONG"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_DIRECTION_FIRST_STRONG" target="_top"><code>TEXT_DIRECTION_FIRST_STRONG</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_DIRECTION_INHERIT"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_DIRECTION_INHERIT" target="_top"><code>TEXT_DIRECTION_INHERIT</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_DIRECTION_LOCALE"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_DIRECTION_LOCALE" target="_top"><code>TEXT_DIRECTION_LOCALE</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_DIRECTION_LTR"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_DIRECTION_LTR" target="_top"><code>TEXT_DIRECTION_LTR</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.View.TEXT_DIRECTION_RTL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/View.html#TEXT_DIRECTION_RTL" target="_top"><code>TEXT_DIRECTION_RTL</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.ViewGroup.LayoutParams.html b/docs/html/sdk/api_diff/17/changes/android.view.ViewGroup.LayoutParams.html
new file mode 100644
index 0000000..6459b06
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.ViewGroup.LayoutParams.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.ViewGroup.LayoutParams
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/ViewGroup.LayoutParams.html" target="_top"><font size="+2"><code>ViewGroup.LayoutParams</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.LayoutParams.resolveLayoutDirection_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/ViewGroup.LayoutParams.html#resolveLayoutDirection(int)" target="_top"><code>resolveLayoutDirection</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.ViewGroup.MarginLayoutParams.html b/docs/html/sdk/api_diff/17/changes/android.view.ViewGroup.MarginLayoutParams.html
new file mode 100644
index 0000000..a4f01afb
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.ViewGroup.MarginLayoutParams.html
@@ -0,0 +1,164 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.ViewGroup.MarginLayoutParams
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html" target="_top"><font size="+2"><code>ViewGroup.MarginLayoutParams</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.MarginLayoutParams.getLayoutDirection_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html#getLayoutDirection()" target="_top"><code>getLayoutDirection</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.MarginLayoutParams.getMarginEnd_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html#getMarginEnd()" target="_top"><code>getMarginEnd</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.MarginLayoutParams.getMarginStart_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html#getMarginStart()" target="_top"><code>getMarginStart</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.MarginLayoutParams.isMarginRelative_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html#isMarginRelative()" target="_top"><code>isMarginRelative</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.MarginLayoutParams.setLayoutDirection_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html#setLayoutDirection(int)" target="_top"><code>setLayoutDirection</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.MarginLayoutParams.setMarginEnd_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html#setMarginEnd(int)" target="_top"><code>setMarginEnd</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.ViewGroup.MarginLayoutParams.setMarginStart_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/ViewGroup.MarginLayoutParams.html#setMarginStart(int)" target="_top"><code>setMarginStart</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.WindowManager.LayoutParams.html b/docs/html/sdk/api_diff/17/changes/android.view.WindowManager.LayoutParams.html
new file mode 100644
index 0000000..9071e7d
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.WindowManager.LayoutParams.html
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.WindowManager.LayoutParams
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.<A HREF="../../../../reference/android/view/WindowManager.LayoutParams.html" target="_top"><font size="+2"><code>WindowManager.LayoutParams</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.WindowManager.LayoutParams.FLAG_DITHER"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/WindowManager.LayoutParams.html#FLAG_DITHER" target="_top"><code>FLAG_DITHER</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.accessibility.AccessibilityEvent.html b/docs/html/sdk/api_diff/17/changes/android.view.accessibility.AccessibilityEvent.html
new file mode 100644
index 0000000..452fbfe
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.accessibility.AccessibilityEvent.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.accessibility.AccessibilityEvent
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.accessibility.<A HREF="../../../../reference/android/view/accessibility/AccessibilityEvent.html" target="_top"><font size="+2"><code>AccessibilityEvent</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_END"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityEvent.html#TYPE_GESTURE_DETECTION_END" target="_top"><code>TYPE_GESTURE_DETECTION_END</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_START"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityEvent.html#TYPE_GESTURE_DETECTION_START" target="_top"><code>TYPE_GESTURE_DETECTION_START</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_END"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityEvent.html#TYPE_TOUCH_INTERACTION_END" target="_top"><code>TYPE_TOUCH_INTERACTION_END</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_START"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityEvent.html#TYPE_TOUCH_INTERACTION_START" target="_top"><code>TYPE_TOUCH_INTERACTION_START</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.accessibility.AccessibilityNodeInfo.html b/docs/html/sdk/api_diff/17/changes/android.view.accessibility.AccessibilityNodeInfo.html
new file mode 100644
index 0000000..95bab46
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.accessibility.AccessibilityNodeInfo.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.accessibility.AccessibilityNodeInfo
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.accessibility.<A HREF="../../../../reference/android/view/accessibility/AccessibilityNodeInfo.html" target="_top"><font size="+2"><code>AccessibilityNodeInfo</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityNodeInfo.getLabelFor_added()"></A>
+ <nobr><code>AccessibilityNodeInfo</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityNodeInfo.html#getLabelFor()" target="_top"><code>getLabelFor</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityNodeInfo.getLabeledBy_added()"></A>
+ <nobr><code>AccessibilityNodeInfo</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityNodeInfo.html#getLabeledBy()" target="_top"><code>getLabeledBy</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityNodeInfo.html#setLabelFor(android.view.View)" target="_top"><code>setLabelFor</code></A>(<code>View</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityNodeInfo.html#setLabelFor(android.view.View, int)" target="_top"><code>setLabelFor</code></A>(<code>View,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityNodeInfo.html#setLabeledBy(android.view.View)" target="_top"><code>setLabeledBy</code></A>(<code>View</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/accessibility/AccessibilityNodeInfo.html#setLabeledBy(android.view.View, int)" target="_top"><code>setLabeledBy</code></A>(<code>View,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.inputmethod.InputMethodSession.html b/docs/html/sdk/api_diff/17/changes/android.view.inputmethod.InputMethodSession.html
new file mode 100644
index 0000000..a2d912a
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.inputmethod.InputMethodSession.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.inputmethod.InputMethodSession
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Interface android.view.inputmethod.<A HREF="../../../../reference/android/view/inputmethod/InputMethodSession.html" target="_top"><font size="+2"><code>InputMethodSession</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.inputmethod.InputMethodSession.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/inputmethod/InputMethodSession.html#dispatchGenericMotionEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" target="_top"><code>dispatchGenericMotionEvent</code></A>(<code>int,</nobr> MotionEvent<nobr>,</nobr> EventCallback<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.view.inputmethod.InputMethodSubtype.html b/docs/html/sdk/api_diff/17/changes/android.view.inputmethod.InputMethodSubtype.html
new file mode 100644
index 0000000..947c69c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.view.inputmethod.InputMethodSubtype.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.inputmethod.InputMethodSubtype
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.view.inputmethod.<A HREF="../../../../reference/android/view/inputmethod/InputMethodSubtype.html" target="_top"><font size="+2"><code>InputMethodSubtype</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Constructors" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Constructors</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.inputmethod.InputMethodSubtype.ctor_added(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)"></A>
+ <nobr><A HREF="../../../../reference/android/view/inputmethod/InputMethodSubtype.html#InputMethodSubtype(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)" target="_top"><code>InputMethodSubtype</code></A>(<code>int,</nobr> int<nobr>,</nobr> String<nobr>,</nobr> String<nobr>,</nobr> String<nobr>,</nobr> boolean<nobr>,</nobr> boolean<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.webkit.WebChromeClient.html b/docs/html/sdk/api_diff/17/changes/android.webkit.WebChromeClient.html
new file mode 100644
index 0000000..658bb85
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.webkit.WebChromeClient.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.webkit.WebChromeClient
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.webkit.<A HREF="../../../../reference/android/webkit/WebChromeClient.html" target="_top"><font size="+2"><code>WebChromeClient</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebChromeClient.onJsTimeout_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/webkit/WebChromeClient.html#onJsTimeout()" target="_top"><code>onJsTimeout</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.webkit.WebHistoryItem.html b/docs/html/sdk/api_diff/17/changes/android.webkit.WebHistoryItem.html
new file mode 100644
index 0000000..91866f5
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.webkit.WebHistoryItem.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.webkit.WebHistoryItem
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.webkit.<A HREF="../../../../reference/android/webkit/WebHistoryItem.html" target="_top"><font size="+2"><code>WebHistoryItem</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebHistoryItem.getId_removed()"></A>
+ <nobr><code>int</code> getId()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.webkit.WebSettings.html b/docs/html/sdk/api_diff/17/changes/android.webkit.WebSettings.html
new file mode 100644
index 0000000..b8157ea
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.webkit.WebSettings.html
@@ -0,0 +1,245 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.webkit.WebSettings
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.webkit.<A HREF="../../../../reference/android/webkit/WebSettings.html" target="_top"><font size="+2"><code>WebSettings</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.getNavDump_removed()"></A>
+ <nobr><code>boolean</code> getNavDump()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.getUseDoubleTree_removed()"></A>
+ <nobr><code>boolean</code> getUseDoubleTree()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.getUseWebViewBackgroundForOverscrollBackground_removed()"></A>
+ <nobr><code>boolean</code> getUseWebViewBackgroundForOverscrollBackground()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.getUserAgent_removed()"></A>
+ <nobr><code>int</code> getUserAgent()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.setNavDump_removed(boolean)"></A>
+ <nobr><code>void</code> setNavDump(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.setUseDoubleTree_removed(boolean)"></A>
+ <nobr><code>void</code> setUseDoubleTree(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.setUseWebViewBackgroundForOverscrollBackground_removed(boolean)"></A>
+ <nobr><code>void</code> setUseWebViewBackgroundForOverscrollBackground(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.setUserAgent_removed(int)"></A>
+ <nobr><code>void</code> setUserAgent(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.getDefaultUserAgent_added(android.content.Context)"></A>
+ <nobr><code>String</code> <A HREF="../../../../reference/android/webkit/WebSettings.html#getDefaultUserAgent(android.content.Context)" target="_top"><code>getDefaultUserAgent</code></A>(<code>Context</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.getMediaPlaybackRequiresUserGesture_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/webkit/WebSettings.html#getMediaPlaybackRequiresUserGesture()" target="_top"><code>getMediaPlaybackRequiresUserGesture</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.setMediaPlaybackRequiresUserGesture_added(boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/webkit/WebSettings.html#setMediaPlaybackRequiresUserGesture(boolean)" target="_top"><code>setMediaPlaybackRequiresUserGesture</code></A>(<code>boolean</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.enableSmoothTransition_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/webkit/WebSettings.html#enableSmoothTransition()" target="_top"><code>enableSmoothTransition</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.setEnableSmoothTransition_changed(boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/webkit/WebSettings.html#setEnableSmoothTransition(boolean)" target="_top"><code>setEnableSmoothTransition</code></A>(<code>boolean</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebSettings.LOAD_NORMAL"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/webkit/WebSettings.html#LOAD_NORMAL" target="_top"><code>LOAD_NORMAL</code></font></A></nobr> </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.webkit.WebView.html b/docs/html/sdk/api_diff/17/changes/android.webkit.WebView.html
new file mode 100644
index 0000000..a4234d2
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.webkit.WebView.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.webkit.WebView
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.webkit.<A HREF="../../../../reference/android/webkit/WebView.html" target="_top"><font size="+2"><code>WebView</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Constructors" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Constructors</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.ctor_changed(android.content.Context, android.util.AttributeSet, int, boolean)"></A>
+ <nobr><A HREF="../../../../reference/android/webkit/WebView.html#WebView(android.content.Context, android.util.AttributeSet, int, boolean)" target="_top"><code>WebView</code></A>(<code>Context,</nobr> AttributeSet<nobr>,</nobr> int<nobr>,</nobr> boolean<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="methods"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.debugDump_removed()"></A>
+ <nobr><code>void</code> debugDump()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.disablePlatformNotifications_removed()"></A>
+ <nobr><code>void</code> disablePlatformNotifications()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.emulateShiftHeld_removed()"></A>
+ <nobr><code>void</code> emulateShiftHeld()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.enablePlatformNotifications_removed()"></A>
+ <nobr><code>void</code> enablePlatformNotifications()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.getVisibleTitleHeight_removed()"></A>
+ <nobr><code>int</code> getVisibleTitleHeight()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.restorePicture_removed(android.os.Bundle, java.io.File)"></A>
+ <nobr><code>boolean</code> restorePicture(<code>Bundle,</nobr> File<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.savePicture_removed(android.os.Bundle, java.io.File)"></A>
+ <nobr><code>boolean</code> savePicture(<code>Bundle,</nobr> File<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.canZoomIn_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/webkit/WebView.html#canZoomIn()" target="_top"><code>canZoomIn</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.canZoomOut_changed()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/webkit/WebView.html#canZoomOut()" target="_top"><code>canZoomOut</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.getScale_changed()"></A>
+ <nobr><code>float</code> <A HREF="../../../../reference/android/webkit/WebView.html#getScale()" target="_top"><code>getScale</code></A>() </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.setCertificate_changed(android.net.http.SslCertificate)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/webkit/WebView.html#setCertificate(android.net.http.SslCertificate)" target="_top"><code>setCertificate</code></A>(<code>SslCertificate</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebView.setMapTrackballToArrowKeys_changed(boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/webkit/WebView.html#setMapTrackballToArrowKeys(boolean)" target="_top"><code>setMapTrackballToArrowKeys</code></A>(<code>boolean</code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+<b>Now deprecated</b>.<br>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.webkit.WebViewDatabase.html b/docs/html/sdk/api_diff/17/changes/android.webkit.WebViewDatabase.html
new file mode 100644
index 0000000..4b51daa
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.webkit.WebViewDatabase.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.webkit.WebViewDatabase
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.webkit.<A HREF="../../../../reference/android/webkit/WebViewDatabase.html" target="_top"><font size="+2"><code>WebViewDatabase</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit.WebViewDatabase.LOGTAG"></A>
+ <code>String</code> LOGTAG
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/17/changes/android.widget.AutoCompleteTextView.html
new file mode 100644
index 0000000..4ff84f4
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.AutoCompleteTextView.html
@@ -0,0 +1,129 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.AutoCompleteTextView
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/AutoCompleteTextView.html" target="_top"><font size="+2"><code>AutoCompleteTextView</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.AutoCompleteTextView.setOnDismissListener_added(android.widget.AutoCompleteTextView.OnDismissListener)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/AutoCompleteTextView.html#setOnDismissListener(android.widget.AutoCompleteTextView.OnDismissListener)" target="_top"><code>setOnDismissListener</code></A>(<code>OnDismissListener</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.AutoCompleteTextView.setText_added(java.lang.CharSequence, boolean)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/AutoCompleteTextView.html#setText(java.lang.CharSequence, boolean)" target="_top"><code>setText</code></A>(<code>CharSequence,</nobr> boolean<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.CheckedTextView.html b/docs/html/sdk/api_diff/17/changes/android.widget.CheckedTextView.html
new file mode 100644
index 0000000..3624beb
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.CheckedTextView.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.CheckedTextView
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/CheckedTextView.html" target="_top"><font size="+2"><code>CheckedTextView</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.CheckedTextView.onPaddingChanged_removed(int)"></A>
+ <nobr><code>void</code> onPaddingChanged(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.DigitalClock.html b/docs/html/sdk/api_diff/17/changes/android.widget.DigitalClock.html
new file mode 100644
index 0000000..727870c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.DigitalClock.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.DigitalClock
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/DigitalClock.html" target="_top"><font size="+2"><code>DigitalClock</code></font></A>
+</H2>
+<p><b>Now deprecated</b>.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.RelativeLayout.LayoutParams.html b/docs/html/sdk/api_diff/17/changes/android.widget.RelativeLayout.LayoutParams.html
new file mode 100644
index 0000000..61940b7
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.RelativeLayout.LayoutParams.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.RelativeLayout.LayoutParams
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/RelativeLayout.LayoutParams.html" target="_top"><font size="+2"><code>RelativeLayout.LayoutParams</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RelativeLayout.LayoutParams.removeRule_added(int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/RelativeLayout.LayoutParams.html#removeRule(int)" target="_top"><code>removeRule</code></A>(<code>int</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.RelativeLayout.html b/docs/html/sdk/api_diff/17/changes/android.widget.RelativeLayout.html
new file mode 100644
index 0000000..c056ddb
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.RelativeLayout.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.RelativeLayout
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/RelativeLayout.html" target="_top"><font size="+2"><code>RelativeLayout</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Fields" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Fields</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RelativeLayout.ALIGN_END"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/RelativeLayout.html#ALIGN_END" target="_top"><code>ALIGN_END</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RelativeLayout.ALIGN_PARENT_END"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/RelativeLayout.html#ALIGN_PARENT_END" target="_top"><code>ALIGN_PARENT_END</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RelativeLayout.ALIGN_PARENT_START"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/RelativeLayout.html#ALIGN_PARENT_START" target="_top"><code>ALIGN_PARENT_START</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RelativeLayout.ALIGN_START"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/RelativeLayout.html#ALIGN_START" target="_top"><code>ALIGN_START</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RelativeLayout.END_OF"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/RelativeLayout.html#END_OF" target="_top"><code>END_OF</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RelativeLayout.START_OF"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/RelativeLayout.html#START_OF" target="_top"><code>START_OF</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.RemoteViews.html b/docs/html/sdk/api_diff/17/changes/android.widget.RemoteViews.html
new file mode 100644
index 0000000..4de9a8c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.RemoteViews.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.RemoteViews
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/RemoteViews.html" target="_top"><font size="+2"><code>RemoteViews</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.RemoteViews.setLabelFor_added(int, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/RemoteViews.html#setLabelFor(int, int)" target="_top"><code>setLabelFor</code></A>(<code>int,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.SlidingDrawer.html b/docs/html/sdk/api_diff/17/changes/android.widget.SlidingDrawer.html
new file mode 100644
index 0000000..0896020
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.SlidingDrawer.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.SlidingDrawer
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/SlidingDrawer.html" target="_top"><font size="+2"><code>SlidingDrawer</code></font></A>
+</H2>
+<p><b>Now deprecated</b>.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.TextView.html b/docs/html/sdk/api_diff/17/changes/android.widget.TextView.html
new file mode 100644
index 0000000..30aa980
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.TextView.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.TextView
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/TextView.html" target="_top"><font size="+2"><code>TextView</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.resetResolvedDrawables_removed()"></A>
+ <nobr><code>void</code> resetResolvedDrawables()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.resolveDrawables_removed()"></A>
+ <nobr><code>void</code> resolveDrawables()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.getCompoundDrawablesRelative_added()"></A>
+ <nobr><code>Drawable[]</code> <A HREF="../../../../reference/android/widget/TextView.html#getCompoundDrawablesRelative()" target="_top"><code>getCompoundDrawablesRelative</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.getCompoundPaddingEnd_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/TextView.html#getCompoundPaddingEnd()" target="_top"><code>getCompoundPaddingEnd</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.getCompoundPaddingStart_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/TextView.html#getCompoundPaddingStart()" target="_top"><code>getCompoundPaddingStart</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.getTextLocale_added()"></A>
+ <nobr><code>Locale</code> <A HREF="../../../../reference/android/widget/TextView.html#getTextLocale()" target="_top"><code>getTextLocale</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.getTotalPaddingEnd_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/TextView.html#getTotalPaddingEnd()" target="_top"><code>getTotalPaddingEnd</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.getTotalPaddingStart_added()"></A>
+ <nobr><code>int</code> <A HREF="../../../../reference/android/widget/TextView.html#getTotalPaddingStart()" target="_top"><code>getTotalPaddingStart</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.setCompoundDrawablesRelative_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/TextView.html#setCompoundDrawablesRelative(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" target="_top"><code>setCompoundDrawablesRelative</code></A>(<code>Drawable,</nobr> Drawable<nobr>,</nobr> Drawable<nobr>,</nobr> Drawable<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/TextView.html#setCompoundDrawablesRelativeWithIntrinsicBounds(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" target="_top"><code>setCompoundDrawablesRelativeWithIntrinsicBounds</code></A>(<code>Drawable,</nobr> Drawable<nobr>,</nobr> Drawable<nobr>,</nobr> Drawable<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(int, int, int, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/TextView.html#setCompoundDrawablesRelativeWithIntrinsicBounds(int, int, int, int)" target="_top"><code>setCompoundDrawablesRelativeWithIntrinsicBounds</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.setTextLocale_added(java.util.Locale)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/TextView.html#setTextLocale(java.util.Locale)" target="_top"><code>setTextLocale</code></A>(<code>Locale</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.TextView.setPaddingRelative_changed(int, int, int, int)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/view/View.html#setPaddingRelative(int, int, int, int)" target="_top"><code>setPaddingRelative</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>) </nobr>
+ </TD>
+ <TD VALIGN="TOP" WIDTH="30%">
+Method was locally defined, but is now inherited from <a href="../../../../reference/android/view/View.html#setPaddingRelative(int, int, int, int)" target="_top"><code>View</code></a>.
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.TwoLineListItem.html b/docs/html/sdk/api_diff/17/changes/android.widget.TwoLineListItem.html
new file mode 100644
index 0000000..fb23c1c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.TwoLineListItem.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.TwoLineListItem
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/TwoLineListItem.html" target="_top"><font size="+2"><code>TwoLineListItem</code></font></A>
+</H2>
+<p><b>Now deprecated</b>.<br>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.VideoView.html b/docs/html/sdk/api_diff/17/changes/android.widget.VideoView.html
new file mode 100644
index 0000000..4ec5579
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.VideoView.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.VideoView
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/VideoView.html" target="_top"><font size="+2"><code>VideoView</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.VideoView.setOnInfoListener_added(android.media.MediaPlayer.OnInfoListener)"></A>
+ <nobr><code>void</code> <A HREF="../../../../reference/android/widget/VideoView.html#setOnInfoListener(android.media.MediaPlayer.OnInfoListener)" target="_top"><code>setOnInfoListener</code></A>(<code>OnInfoListener</code>)</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/android.widget.ViewAnimator.html b/docs/html/sdk/api_diff/17/changes/android.widget.ViewAnimator.html
new file mode 100644
index 0000000..e0df51b
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/android.widget.ViewAnimator.html
@@ -0,0 +1,122 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget.ViewAnimator
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Class android.widget.<A HREF="../../../../reference/android/widget/ViewAnimator.html" target="_top"><font size="+2"><code>ViewAnimator</code></font></A>
+</H2>
+<a NAME="constructors"></a>
+<a NAME="methods"></a>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Methods" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget.ViewAnimator.getAnimateFirstView_added()"></A>
+ <nobr><code>boolean</code> <A HREF="../../../../reference/android/widget/ViewAnimator.html#getAnimateFirstView()" target="_top"><code>getAnimateFirstView</code></A>()</nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<a NAME="fields"></a>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/changes-summary.html b/docs/html/sdk/api_diff/17/changes/changes-summary.html
new file mode 100644
index 0000000..98d9924
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/changes-summary.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Android API Differences Report
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<body class="gc-documentation">
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+ <div id="docTitleContainer">
+<h1>Android API Differences Report</h1>
+<p>This report details the changes in the core Android framework API between two <a
+href="http://developer.android.com/guide/appendix/api-levels.html" target="_top">API Level</a>
+specifications. It shows additions, modifications, and removals for packages, classes, methods, and fields.
+The report also includes general statistics that characterize the extent and type of the differences.</p>
+<p>This report is based a comparison of the Android API specifications
+whose API Level identifiers are given in the upper-right corner of this page. It compares a
+newer "to" API to an older "from" API, noting all changes relative to the
+older API. So, for example, API elements marked as removed are no longer present in the "to"
+API specification.</p>
+<p>To navigate the report, use the "Select a Diffs Index" and "Filter the Index"
+controls on the left. The report uses text formatting to indicate <em>interface names</em>,
+<a href= ><code>links to reference documentation</code></a>, and <a href= >links to change
+description</a>. The statistics are accessible from the "Statistics" link in the upper-right corner.</p>
+<p>For more information about the Android framework API and SDK,
+see the <a href="http://developer.android.com/index.html" target="_top">Android Developers site</a>.</p>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Packages" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Packages</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.hardware.display"></A>
+ <nobr><A HREF="../../../../reference/android/hardware/display/package-summary.html" target="_top"><code>android.hardware.display</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.service.dreams"></A>
+ <nobr><A HREF="../../../../reference/android/service/dreams/package-summary.html" target="_top"><code>android.service.dreams</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Packages" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=3>Changed Packages</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android"></A>
+ <nobr><A HREF="pkg_android.html">android</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.accessibilityservice"></A>
+ <nobr><A HREF="pkg_android.accessibilityservice.html">android.accessibilityservice</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app"></A>
+ <nobr><A HREF="pkg_android.app.html">android.app</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.app.admin"></A>
+ <nobr><A HREF="pkg_android.app.admin.html">android.app.admin</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.appwidget"></A>
+ <nobr><A HREF="pkg_android.appwidget.html">android.appwidget</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.bluetooth"></A>
+ <nobr><A HREF="pkg_android.bluetooth.html">android.bluetooth</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content"></A>
+ <nobr><A HREF="pkg_android.content.html">android.content</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.pm"></A>
+ <nobr><A HREF="pkg_android.content.pm.html">android.content.pm</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.content.res"></A>
+ <nobr><A HREF="pkg_android.content.res.html">android.content.res</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.database"></A>
+ <nobr><A HREF="pkg_android.database.html">android.database</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.graphics"></A>
+ <nobr><A HREF="pkg_android.graphics.html">android.graphics</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.hardware"></A>
+ <nobr><A HREF="pkg_android.hardware.html">android.hardware</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.inputmethodservice"></A>
+ <nobr><A HREF="pkg_android.inputmethodservice.html">android.inputmethodservice</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.location"></A>
+ <nobr><A HREF="pkg_android.location.html">android.location</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.media"></A>
+ <nobr><A HREF="pkg_android.media.html">android.media</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.net"></A>
+ <nobr><A HREF="pkg_android.net.html">android.net</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.net.http"></A>
+ <nobr><A HREF="pkg_android.net.http.html">android.net.http</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.net.wifi"></A>
+ <nobr><A HREF="pkg_android.net.wifi.html">android.net.wifi</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.nfc.tech"></A>
+ <nobr><A HREF="pkg_android.nfc.tech.html">android.nfc.tech</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.opengl"></A>
+ <nobr><A HREF="pkg_android.opengl.html">android.opengl</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.os"></A>
+ <nobr><A HREF="pkg_android.os.html">android.os</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.provider"></A>
+ <nobr><A HREF="pkg_android.provider.html">android.provider</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.renderscript"></A>
+ <nobr><A HREF="pkg_android.renderscript.html">android.renderscript</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.telephony"></A>
+ <nobr><A HREF="pkg_android.telephony.html">android.telephony</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.telephony.cdma"></A>
+ <nobr><A HREF="pkg_android.telephony.cdma.html">android.telephony.cdma</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.test.mock"></A>
+ <nobr><A HREF="pkg_android.test.mock.html">android.test.mock</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text"></A>
+ <nobr><A HREF="pkg_android.text.html">android.text</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.format"></A>
+ <nobr><A HREF="pkg_android.text.format.html">android.text.format</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.text.style"></A>
+ <nobr><A HREF="pkg_android.text.style.html">android.text.style</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.util"></A>
+ <nobr><A HREF="pkg_android.util.html">android.util</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view"></A>
+ <nobr><A HREF="pkg_android.view.html">android.view</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.accessibility"></A>
+ <nobr><A HREF="pkg_android.view.accessibility.html">android.view.accessibility</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.view.inputmethod"></A>
+ <nobr><A HREF="pkg_android.view.inputmethod.html">android.view.inputmethod</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.webkit"></A>
+ <nobr><A HREF="pkg_android.webkit.html">android.webkit</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="android.widget"></A>
+ <nobr><A HREF="pkg_android.widget.html">android.widget</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<!-- End of API section -->
+<!-- Start of packages section -->
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/classes_index_additions.html b/docs/html/sdk/api_diff/17/changes/classes_index_additions.html
new file mode 100644
index 0000000..453e766a
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/classes_index_additions.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Class Additions Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Classes" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="classes_index_all.html" class="staysblack">All Classes</a>
+ <br>
+<A HREF="classes_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<b>Additions</b>
+ <br>
+<A HREF="classes_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.util.html#AtomicFile" class="hiddenlink" target="rightframe"><b>AtomicFile</b></A><br>
+<A HREF="pkg_android.widget.html#AutoCompleteTextView.OnDismissListener" class="hiddenlink" target="rightframe"><b><i>AutoCompleteTextView.OnDismissListener</i></b></A><br>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.telephony.html#CellIdentityCdma" class="hiddenlink" target="rightframe"><b>CellIdentityCdma</b></A><br>
+<A HREF="pkg_android.telephony.html#CellIdentityGsm" class="hiddenlink" target="rightframe"><b>CellIdentityGsm</b></A><br>
+<A HREF="pkg_android.telephony.html#CellIdentityLte" class="hiddenlink" target="rightframe"><b>CellIdentityLte</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfo" class="hiddenlink" target="rightframe"><b>CellInfo</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfoCdma" class="hiddenlink" target="rightframe"><b>CellInfoCdma</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfoGsm" class="hiddenlink" target="rightframe"><b>CellInfoGsm</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfoLte" class="hiddenlink" target="rightframe"><b>CellInfoLte</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrength" class="hiddenlink" target="rightframe"><b>CellSignalStrength</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrengthCdma" class="hiddenlink" target="rightframe"><b>CellSignalStrengthCdma</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrengthGsm" class="hiddenlink" target="rightframe"><b>CellSignalStrengthGsm</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrengthLte" class="hiddenlink" target="rightframe"><b>CellSignalStrengthLte</b></A><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.opengl.html#EGL14" class="hiddenlink" target="rightframe"><b>EGL14</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLConfig" class="hiddenlink" target="rightframe"><b>EGLConfig</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLContext" class="hiddenlink" target="rightframe"><b>EGLContext</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLDisplay" class="hiddenlink" target="rightframe"><b>EGLDisplay</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLObjectHandle" class="hiddenlink" target="rightframe"><b>EGLObjectHandle</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLSurface" class="hiddenlink" target="rightframe"><b>EGLSurface</b></A><br>
+<A NAME="J"></A>
+<br><font size="+2">J</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#JavascriptInterface" class="hiddenlink" target="rightframe"><b>JavascriptInterface</b></A><br>
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.text.style.html#LocaleSpan" class="hiddenlink" target="rightframe"><b>LocaleSpan</b></A><br>
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.nfc.tech.html#NfcBarcode" class="hiddenlink" target="rightframe"><b>NfcBarcode</b></A><br>
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.app.html#Presentation" class="hiddenlink" target="rightframe"><b>Presentation</b></A><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.renderscript.html#Script.FieldID" class="hiddenlink" target="rightframe"><b>Script.FieldID</b></A><br>
+<A HREF="pkg_android.renderscript.html#Script.KernelID" class="hiddenlink" target="rightframe"><b>Script.KernelID</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptGroup" class="hiddenlink" target="rightframe"><b>ScriptGroup</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptGroup.Builder" class="hiddenlink" target="rightframe"><b>ScriptGroup.Builder</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsic" class="hiddenlink" target="rightframe"><b>ScriptIntrinsic</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlend" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlend</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlur" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlur</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicColorMatrix" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicColorMatrix</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve3x3" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve3x3</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve5x5" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve5x5</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicLUT" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicLUT</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicYuvToRGB" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicYuvToRGB</b></A><br>
+<A HREF="pkg_android.provider.html#Settings.Global" class="hiddenlink" target="rightframe"><b>Settings.Global</b></A><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.widget.html#TextClock" class="hiddenlink" target="rightframe"><b>TextClock</b></A><br>
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.os.html#UserHandle" class="hiddenlink" target="rightframe"><b>UserHandle</b></A><br>
+<A HREF="pkg_android.os.html#UserManager" class="hiddenlink" target="rightframe"><b>UserManager</b></A><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.view.html#WindowManager.InvalidDisplayException" class="hiddenlink" target="rightframe"><b>WindowManager.InvalidDisplayException</b></A><br>
+<A NAME="X"></A>
+<br><font size="+2">X</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.net.http.html#X509TrustManagerExtensions" class="hiddenlink" target="rightframe"><b>X509TrustManagerExtensions</b></A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/classes_index_all.html b/docs/html/sdk/api_diff/17/changes/classes_index_all.html
new file mode 100644
index 0000000..49d116c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/classes_index_all.html
@@ -0,0 +1,675 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Class Differences Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Classes" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<b>Classes</b>
+ <br>
+<A HREF="classes_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="classes_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="classes_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.inputmethodservice.AbstractInputMethodService.html" class="hiddenlink" target="rightframe">AbstractInputMethodService</A><br>
+<A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html" class="hiddenlink" target="rightframe">AbstractInputMethodService.AbstractInputMethodSessionImpl</A><br>
+<A HREF="android.view.accessibility.AccessibilityEvent.html" class="hiddenlink" target="rightframe">AccessibilityEvent</A><br>
+<A HREF="android.view.accessibility.AccessibilityNodeInfo.html" class="hiddenlink" target="rightframe">AccessibilityNodeInfo</A><br>
+<A HREF="android.accessibilityservice.AccessibilityService.html" class="hiddenlink" target="rightframe">AccessibilityService</A><br>
+<A HREF="android.accessibilityservice.AccessibilityServiceInfo.html" class="hiddenlink" target="rightframe">AccessibilityServiceInfo</A><br>
+<A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
+<A HREF="android.content.pm.ActivityInfo.html" class="hiddenlink" target="rightframe">ActivityInfo</A><br>
+<A HREF="android.app.AlertDialog.Builder.html" class="hiddenlink" target="rightframe">AlertDialog.Builder</A><br>
+<A HREF="android.content.pm.ApplicationInfo.html" class="hiddenlink" target="rightframe">ApplicationInfo</A><br>
+<A HREF="android.appwidget.AppWidgetHost.html" class="hiddenlink" target="rightframe">AppWidgetHost</A><br>
+<A HREF="android.appwidget.AppWidgetManager.html" class="hiddenlink" target="rightframe">AppWidgetManager</A><br>
+<A HREF="android.appwidget.AppWidgetProviderInfo.html" class="hiddenlink" target="rightframe">AppWidgetProviderInfo</A><br>
+<A HREF="pkg_android.util.html#AtomicFile" class="hiddenlink" target="rightframe"><b>AtomicFile</b></A><br>
+<A HREF="android.media.AudioManager.html" class="hiddenlink" target="rightframe">AudioManager</A><br>
+<A HREF="android.widget.AutoCompleteTextView.html" class="hiddenlink" target="rightframe">AutoCompleteTextView</A><br>
+<A HREF="pkg_android.widget.html#AutoCompleteTextView.OnDismissListener" class="hiddenlink" target="rightframe"><b><i>AutoCompleteTextView.OnDismissListener</i></b></A><br>
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.os.BatteryManager.html" class="hiddenlink" target="rightframe">BatteryManager</A><br>
+<A HREF="android.os.Binder.html" class="hiddenlink" target="rightframe">Binder</A><br>
+<A HREF="android.graphics.Bitmap.html" class="hiddenlink" target="rightframe">Bitmap</A><br>
+<A HREF="android.bluetooth.BluetoothA2dp.html" class="hiddenlink" target="rightframe">BluetoothA2dp</A><br>
+<A HREF="android.os.Build.VERSION_CODES.html" class="hiddenlink" target="rightframe">Build.VERSION_CODES</A><br>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#CacheManager" class="hiddenlink" target="rightframe"><strike>CacheManager</strike></A><br>
+<A HREF="pkg_android.webkit.html#CacheManager.CacheResult" class="hiddenlink" target="rightframe"><strike>CacheManager.CacheResult</strike></A><br>
+<A HREF="android.provider.CalendarContract.CalendarColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.CalendarColumns</i></A><br>
+<A HREF="android.provider.CalendarContract.EventsColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.EventsColumns</i></A><br>
+<A HREF="android.provider.CallLog.Calls.html" class="hiddenlink" target="rightframe">CallLog.Calls</A><br>
+<A HREF="android.hardware.Camera.html" class="hiddenlink" target="rightframe">Camera</A><br>
+<A HREF="android.hardware.Camera.CameraInfo.html" class="hiddenlink" target="rightframe">Camera.CameraInfo</A><br>
+<A HREF="android.hardware.Camera.Parameters.html" class="hiddenlink" target="rightframe">Camera.Parameters</A><br>
+<A HREF="android.telephony.cdma.CdmaCellLocation.html" class="hiddenlink" target="rightframe">CdmaCellLocation</A><br>
+<A HREF="pkg_android.telephony.html#CellIdentityCdma" class="hiddenlink" target="rightframe"><b>CellIdentityCdma</b></A><br>
+<A HREF="pkg_android.telephony.html#CellIdentityGsm" class="hiddenlink" target="rightframe"><b>CellIdentityGsm</b></A><br>
+<A HREF="pkg_android.telephony.html#CellIdentityLte" class="hiddenlink" target="rightframe"><b>CellIdentityLte</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfo" class="hiddenlink" target="rightframe"><b>CellInfo</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfoCdma" class="hiddenlink" target="rightframe"><b>CellInfoCdma</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfoGsm" class="hiddenlink" target="rightframe"><b>CellInfoGsm</b></A><br>
+<A HREF="pkg_android.telephony.html#CellInfoLte" class="hiddenlink" target="rightframe"><b>CellInfoLte</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrength" class="hiddenlink" target="rightframe"><b>CellSignalStrength</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrengthCdma" class="hiddenlink" target="rightframe"><b>CellSignalStrengthCdma</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrengthGsm" class="hiddenlink" target="rightframe"><b>CellSignalStrengthGsm</b></A><br>
+<A HREF="pkg_android.telephony.html#CellSignalStrengthLte" class="hiddenlink" target="rightframe"><b>CellSignalStrengthLte</b></A><br>
+<A HREF="android.widget.CheckedTextView.html" class="hiddenlink" target="rightframe">CheckedTextView</A><br>
+<A HREF="android.content.res.Configuration.html" class="hiddenlink" target="rightframe">Configuration</A><br>
+<A HREF="android.net.ConnectivityManager.html" class="hiddenlink" target="rightframe">ConnectivityManager</A><br>
+<A HREF="android.content.ContentProviderClient.html" class="hiddenlink" target="rightframe">ContentProviderClient</A><br>
+<A HREF="android.content.Context.html" class="hiddenlink" target="rightframe">Context</A><br>
+<A HREF="android.view.ContextThemeWrapper.html" class="hiddenlink" target="rightframe">ContextThemeWrapper</A><br>
+<A HREF="android.content.ContextWrapper.html" class="hiddenlink" target="rightframe">ContextWrapper</A><br>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.database.DatabaseUtils.InsertHelper.html" class="hiddenlink" target="rightframe">DatabaseUtils.InsertHelper</A><br>
+<A HREF="android.text.format.DateFormat.html" class="hiddenlink" target="rightframe">DateFormat</A><br>
+<A HREF="android.text.format.DateUtils.html" class="hiddenlink" target="rightframe">DateUtils</A><br>
+<A HREF="android.app.admin.DeviceAdminInfo.html" class="hiddenlink" target="rightframe">DeviceAdminInfo</A><br>
+<A HREF="android.app.admin.DevicePolicyManager.html" class="hiddenlink" target="rightframe">DevicePolicyManager</A><br>
+<A HREF="android.widget.DigitalClock.html" class="hiddenlink" target="rightframe">DigitalClock</A><br>
+<A HREF="android.view.Display.html" class="hiddenlink" target="rightframe">Display</A><br>
+<A HREF="android.util.DisplayMetrics.html" class="hiddenlink" target="rightframe">DisplayMetrics</A><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.opengl.html#EGL14" class="hiddenlink" target="rightframe"><b>EGL14</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLConfig" class="hiddenlink" target="rightframe"><b>EGLConfig</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLContext" class="hiddenlink" target="rightframe"><b>EGLContext</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLDisplay" class="hiddenlink" target="rightframe"><b>EGLDisplay</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLObjectHandle" class="hiddenlink" target="rightframe"><b>EGLObjectHandle</b></A><br>
+<A HREF="pkg_android.opengl.html#EGLSurface" class="hiddenlink" target="rightframe"><b>EGLSurface</b></A><br>
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.util.FloatMath.html" class="hiddenlink" target="rightframe">FloatMath</A><br>
+<A HREF="android.app.Fragment.html" class="hiddenlink" target="rightframe">Fragment</A><br>
+<A HREF="android.app.FragmentManager.html" class="hiddenlink" target="rightframe">FragmentManager</A><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.opengl.GLES20.html" class="hiddenlink" target="rightframe">GLES20</A><br>
+<A HREF="android.view.Gravity.html" class="hiddenlink" target="rightframe">Gravity</A><br>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.inputmethodservice.InputMethodService.html" class="hiddenlink" target="rightframe">InputMethodService</A><br>
+<A HREF="android.view.inputmethod.InputMethodSession.html" class="hiddenlink" target="rightframe"><i>InputMethodSession</i></A><br>
+<A HREF="android.view.inputmethod.InputMethodSubtype.html" class="hiddenlink" target="rightframe">InputMethodSubtype</A><br>
+<A HREF="android.content.Intent.html" class="hiddenlink" target="rightframe">Intent</A><br>
+<A HREF="android.content.IntentSender.html" class="hiddenlink" target="rightframe">IntentSender</A><br>
+<A NAME="J"></A>
+<br><font size="+2">J</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#JavascriptInterface" class="hiddenlink" target="rightframe"><b>JavascriptInterface</b></A><br>
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.text.style.html#LocaleSpan" class="hiddenlink" target="rightframe"><b>LocaleSpan</b></A><br>
+<A HREF="android.net.LocalSocket.html" class="hiddenlink" target="rightframe">LocalSocket</A><br>
+<A HREF="android.location.Location.html" class="hiddenlink" target="rightframe">Location</A><br>
+<A HREF="android.location.LocationProvider.html" class="hiddenlink" target="rightframe">LocationProvider</A><br>
+<A HREF="android.util.LruCache.html" class="hiddenlink" target="rightframe">LruCache</A><br>
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.Manifest.permission_group.html" class="hiddenlink" target="rightframe">Manifest.permission_group</A><br>
+<A HREF="android.media.MediaMetadataRetriever.html" class="hiddenlink" target="rightframe">MediaMetadataRetriever</A><br>
+<A HREF="android.media.MediaPlayer.html" class="hiddenlink" target="rightframe">MediaPlayer</A><br>
+<A HREF="android.media.MediaRecorder.html" class="hiddenlink" target="rightframe">MediaRecorder</A><br>
+<A HREF="android.media.MediaRouter.html" class="hiddenlink" target="rightframe">MediaRouter</A><br>
+<A HREF="android.media.MediaRouter.Callback.html" class="hiddenlink" target="rightframe">MediaRouter.Callback</A><br>
+<A HREF="android.media.MediaRouter.RouteInfo.html" class="hiddenlink" target="rightframe">MediaRouter.RouteInfo</A><br>
+<A HREF="android.provider.MediaStore.html" class="hiddenlink" target="rightframe">MediaStore</A><br>
+<A HREF="android.test.mock.MockContext.html" class="hiddenlink" target="rightframe">MockContext</A><br>
+<A HREF="android.test.mock.MockPackageManager.html" class="hiddenlink" target="rightframe">MockPackageManager</A><br>
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.nfc.tech.html#NfcBarcode" class="hiddenlink" target="rightframe"><b>NfcBarcode</b></A><br>
+<A HREF="android.app.Notification.Builder.html" class="hiddenlink" target="rightframe">Notification.Builder</A><br>
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.content.pm.PackageManager.html" class="hiddenlink" target="rightframe">PackageManager</A><br>
+<A HREF="android.graphics.Paint.html" class="hiddenlink" target="rightframe">Paint</A><br>
+<A HREF="android.app.PendingIntent.html" class="hiddenlink" target="rightframe">PendingIntent</A><br>
+<A HREF="android.content.pm.PermissionGroupInfo.html" class="hiddenlink" target="rightframe">PermissionGroupInfo</A><br>
+<A HREF="android.content.pm.PermissionInfo.html" class="hiddenlink" target="rightframe">PermissionInfo</A><br>
+<A HREF="android.telephony.PhoneStateListener.html" class="hiddenlink" target="rightframe">PhoneStateListener</A><br>
+<A HREF="android.os.PowerManager.html" class="hiddenlink" target="rightframe">PowerManager</A><br>
+<A HREF="android.os.PowerManager.WakeLock.html" class="hiddenlink" target="rightframe">PowerManager.WakeLock</A><br>
+<A HREF="pkg_android.app.html#Presentation" class="hiddenlink" target="rightframe"><b>Presentation</b></A><br>
+<A HREF="android.os.Process.html" class="hiddenlink" target="rightframe">Process</A><br>
+<A HREF="android.content.pm.ProviderInfo.html" class="hiddenlink" target="rightframe">ProviderInfo</A><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
+<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
+<A HREF="android.widget.RelativeLayout.html" class="hiddenlink" target="rightframe">RelativeLayout</A><br>
+<A HREF="android.widget.RelativeLayout.LayoutParams.html" class="hiddenlink" target="rightframe">RelativeLayout.LayoutParams</A><br>
+<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
+<A HREF="android.widget.RemoteViews.html" class="hiddenlink" target="rightframe">RemoteViews</A><br>
+<A HREF="android.content.pm.ResolveInfo.html" class="hiddenlink" target="rightframe">ResolveInfo</A><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.net.wifi.ScanResult.html" class="hiddenlink" target="rightframe">ScanResult</A><br>
+<A HREF="android.renderscript.Script.html" class="hiddenlink" target="rightframe">Script</A><br>
+<A HREF="pkg_android.renderscript.html#Script.FieldID" class="hiddenlink" target="rightframe"><b>Script.FieldID</b></A><br>
+<A HREF="pkg_android.renderscript.html#Script.KernelID" class="hiddenlink" target="rightframe"><b>Script.KernelID</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptGroup" class="hiddenlink" target="rightframe"><b>ScriptGroup</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptGroup.Builder" class="hiddenlink" target="rightframe"><b>ScriptGroup.Builder</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsic" class="hiddenlink" target="rightframe"><b>ScriptIntrinsic</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlend" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlend</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicBlur" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicBlur</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicColorMatrix" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicColorMatrix</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve3x3" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve3x3</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicConvolve5x5" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicConvolve5x5</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicLUT" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicLUT</b></A><br>
+<A HREF="pkg_android.renderscript.html#ScriptIntrinsicYuvToRGB" class="hiddenlink" target="rightframe"><b>ScriptIntrinsicYuvToRGB</b></A><br>
+<A HREF="android.hardware.Sensor.html" class="hiddenlink" target="rightframe">Sensor</A><br>
+<A HREF="android.content.pm.ServiceInfo.html" class="hiddenlink" target="rightframe">ServiceInfo</A><br>
+<A HREF="pkg_android.provider.html#Settings.Global" class="hiddenlink" target="rightframe"><b>Settings.Global</b></A><br>
+<A HREF="android.provider.Settings.Secure.html" class="hiddenlink" target="rightframe">Settings.Secure</A><br>
+<A HREF="android.provider.Settings.System.html" class="hiddenlink" target="rightframe">Settings.System</A><br>
+<A HREF="android.widget.SlidingDrawer.html" class="hiddenlink" target="rightframe">SlidingDrawer</A><br>
+<A HREF="android.net.SSLCertificateSocketFactory.html" class="hiddenlink" target="rightframe">SSLCertificateSocketFactory</A><br>
+<A HREF="android.view.Surface.html" class="hiddenlink" target="rightframe">Surface</A><br>
+<A HREF="android.view.SurfaceView.html" class="hiddenlink" target="rightframe">SurfaceView</A><br>
+<A HREF="android.os.SystemClock.html" class="hiddenlink" target="rightframe">SystemClock</A><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.telephony.TelephonyManager.html" class="hiddenlink" target="rightframe">TelephonyManager</A><br>
+<A HREF="pkg_android.widget.html#TextClock" class="hiddenlink" target="rightframe"><b>TextClock</b></A><br>
+<A HREF="android.text.TextUtils.html" class="hiddenlink" target="rightframe">TextUtils</A><br>
+<A HREF="android.widget.TextView.html" class="hiddenlink" target="rightframe">TextView</A><br>
+<A HREF="android.widget.TwoLineListItem.html" class="hiddenlink" target="rightframe">TwoLineListItem</A><br>
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.os.html#UserHandle" class="hiddenlink" target="rightframe"><b>UserHandle</b></A><br>
+<A HREF="pkg_android.os.html#UserManager" class="hiddenlink" target="rightframe"><b>UserManager</b></A><br>
+<A NAME="V"></A>
+<br><font size="+2">V</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.widget.VideoView.html" class="hiddenlink" target="rightframe">VideoView</A><br>
+<A HREF="android.view.View.html" class="hiddenlink" target="rightframe">View</A><br>
+<A HREF="android.widget.ViewAnimator.html" class="hiddenlink" target="rightframe">ViewAnimator</A><br>
+<A HREF="android.view.ViewGroup.LayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.LayoutParams</A><br>
+<A HREF="android.view.ViewGroup.MarginLayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.MarginLayoutParams</A><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#X"><font size="-2">X</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.app.WallpaperManager.html" class="hiddenlink" target="rightframe">WallpaperManager</A><br>
+<A HREF="android.webkit.WebChromeClient.html" class="hiddenlink" target="rightframe">WebChromeClient</A><br>
+<A HREF="android.webkit.WebHistoryItem.html" class="hiddenlink" target="rightframe">WebHistoryItem</A><br>
+<A HREF="android.webkit.WebSettings.html" class="hiddenlink" target="rightframe">WebSettings</A><br>
+<A HREF="android.webkit.WebView.html" class="hiddenlink" target="rightframe">WebView</A><br>
+<A HREF="android.webkit.WebViewDatabase.html" class="hiddenlink" target="rightframe">WebViewDatabase</A><br>
+<A HREF="pkg_android.view.html#WindowManager.InvalidDisplayException" class="hiddenlink" target="rightframe"><b>WindowManager.InvalidDisplayException</b></A><br>
+<A HREF="android.view.WindowManager.LayoutParams.html" class="hiddenlink" target="rightframe">WindowManager.LayoutParams</A><br>
+<A NAME="X"></A>
+<br><font size="+2">X</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.net.http.html#X509TrustManagerExtensions" class="hiddenlink" target="rightframe"><b>X509TrustManagerExtensions</b></A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/classes_index_changes.html b/docs/html/sdk/api_diff/17/changes/classes_index_changes.html
new file mode 100644
index 0000000..9d44a7e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/classes_index_changes.html
@@ -0,0 +1,476 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Class Changes Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Classes" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="classes_index_all.html" class="staysblack">All Classes</a>
+ <br>
+<A HREF="classes_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="classes_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<b>Changes</b>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.inputmethodservice.AbstractInputMethodService.html" class="hiddenlink" target="rightframe">AbstractInputMethodService</A><br>
+<A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html" class="hiddenlink" target="rightframe">AbstractInputMethodService.AbstractInputMethodSessionImpl</A><br>
+<A HREF="android.view.accessibility.AccessibilityEvent.html" class="hiddenlink" target="rightframe">AccessibilityEvent</A><br>
+<A HREF="android.view.accessibility.AccessibilityNodeInfo.html" class="hiddenlink" target="rightframe">AccessibilityNodeInfo</A><br>
+<A HREF="android.accessibilityservice.AccessibilityService.html" class="hiddenlink" target="rightframe">AccessibilityService</A><br>
+<A HREF="android.accessibilityservice.AccessibilityServiceInfo.html" class="hiddenlink" target="rightframe">AccessibilityServiceInfo</A><br>
+<A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
+<A HREF="android.content.pm.ActivityInfo.html" class="hiddenlink" target="rightframe">ActivityInfo</A><br>
+<A HREF="android.app.AlertDialog.Builder.html" class="hiddenlink" target="rightframe">AlertDialog.Builder</A><br>
+<A HREF="android.content.pm.ApplicationInfo.html" class="hiddenlink" target="rightframe">ApplicationInfo</A><br>
+<A HREF="android.appwidget.AppWidgetHost.html" class="hiddenlink" target="rightframe">AppWidgetHost</A><br>
+<A HREF="android.appwidget.AppWidgetManager.html" class="hiddenlink" target="rightframe">AppWidgetManager</A><br>
+<A HREF="android.appwidget.AppWidgetProviderInfo.html" class="hiddenlink" target="rightframe">AppWidgetProviderInfo</A><br>
+<A HREF="android.media.AudioManager.html" class="hiddenlink" target="rightframe">AudioManager</A><br>
+<A HREF="android.widget.AutoCompleteTextView.html" class="hiddenlink" target="rightframe">AutoCompleteTextView</A><br>
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.os.BatteryManager.html" class="hiddenlink" target="rightframe">BatteryManager</A><br>
+<A HREF="android.os.Binder.html" class="hiddenlink" target="rightframe">Binder</A><br>
+<A HREF="android.graphics.Bitmap.html" class="hiddenlink" target="rightframe">Bitmap</A><br>
+<A HREF="android.bluetooth.BluetoothA2dp.html" class="hiddenlink" target="rightframe">BluetoothA2dp</A><br>
+<A HREF="android.os.Build.VERSION_CODES.html" class="hiddenlink" target="rightframe">Build.VERSION_CODES</A><br>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.provider.CalendarContract.CalendarColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.CalendarColumns</i></A><br>
+<A HREF="android.provider.CalendarContract.EventsColumns.html" class="hiddenlink" target="rightframe"><i>CalendarContract.EventsColumns</i></A><br>
+<A HREF="android.provider.CallLog.Calls.html" class="hiddenlink" target="rightframe">CallLog.Calls</A><br>
+<A HREF="android.hardware.Camera.html" class="hiddenlink" target="rightframe">Camera</A><br>
+<A HREF="android.hardware.Camera.CameraInfo.html" class="hiddenlink" target="rightframe">Camera.CameraInfo</A><br>
+<A HREF="android.hardware.Camera.Parameters.html" class="hiddenlink" target="rightframe">Camera.Parameters</A><br>
+<A HREF="android.telephony.cdma.CdmaCellLocation.html" class="hiddenlink" target="rightframe">CdmaCellLocation</A><br>
+<A HREF="android.widget.CheckedTextView.html" class="hiddenlink" target="rightframe">CheckedTextView</A><br>
+<A HREF="android.content.res.Configuration.html" class="hiddenlink" target="rightframe">Configuration</A><br>
+<A HREF="android.net.ConnectivityManager.html" class="hiddenlink" target="rightframe">ConnectivityManager</A><br>
+<A HREF="android.content.ContentProviderClient.html" class="hiddenlink" target="rightframe">ContentProviderClient</A><br>
+<A HREF="android.content.Context.html" class="hiddenlink" target="rightframe">Context</A><br>
+<A HREF="android.view.ContextThemeWrapper.html" class="hiddenlink" target="rightframe">ContextThemeWrapper</A><br>
+<A HREF="android.content.ContextWrapper.html" class="hiddenlink" target="rightframe">ContextWrapper</A><br>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.database.DatabaseUtils.InsertHelper.html" class="hiddenlink" target="rightframe">DatabaseUtils.InsertHelper</A><br>
+<A HREF="android.text.format.DateFormat.html" class="hiddenlink" target="rightframe">DateFormat</A><br>
+<A HREF="android.text.format.DateUtils.html" class="hiddenlink" target="rightframe">DateUtils</A><br>
+<A HREF="android.app.admin.DeviceAdminInfo.html" class="hiddenlink" target="rightframe">DeviceAdminInfo</A><br>
+<A HREF="android.app.admin.DevicePolicyManager.html" class="hiddenlink" target="rightframe">DevicePolicyManager</A><br>
+<A HREF="android.widget.DigitalClock.html" class="hiddenlink" target="rightframe">DigitalClock</A><br>
+<A HREF="android.view.Display.html" class="hiddenlink" target="rightframe">Display</A><br>
+<A HREF="android.util.DisplayMetrics.html" class="hiddenlink" target="rightframe">DisplayMetrics</A><br>
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.util.FloatMath.html" class="hiddenlink" target="rightframe">FloatMath</A><br>
+<A HREF="android.app.Fragment.html" class="hiddenlink" target="rightframe">Fragment</A><br>
+<A HREF="android.app.FragmentManager.html" class="hiddenlink" target="rightframe">FragmentManager</A><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.opengl.GLES20.html" class="hiddenlink" target="rightframe">GLES20</A><br>
+<A HREF="android.view.Gravity.html" class="hiddenlink" target="rightframe">Gravity</A><br>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.inputmethodservice.InputMethodService.html" class="hiddenlink" target="rightframe">InputMethodService</A><br>
+<A HREF="android.view.inputmethod.InputMethodSession.html" class="hiddenlink" target="rightframe"><i>InputMethodSession</i></A><br>
+<A HREF="android.view.inputmethod.InputMethodSubtype.html" class="hiddenlink" target="rightframe">InputMethodSubtype</A><br>
+<A HREF="android.content.Intent.html" class="hiddenlink" target="rightframe">Intent</A><br>
+<A HREF="android.content.IntentSender.html" class="hiddenlink" target="rightframe">IntentSender</A><br>
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.net.LocalSocket.html" class="hiddenlink" target="rightframe">LocalSocket</A><br>
+<A HREF="android.location.Location.html" class="hiddenlink" target="rightframe">Location</A><br>
+<A HREF="android.location.LocationProvider.html" class="hiddenlink" target="rightframe">LocationProvider</A><br>
+<A HREF="android.util.LruCache.html" class="hiddenlink" target="rightframe">LruCache</A><br>
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.Manifest.permission_group.html" class="hiddenlink" target="rightframe">Manifest.permission_group</A><br>
+<A HREF="android.media.MediaMetadataRetriever.html" class="hiddenlink" target="rightframe">MediaMetadataRetriever</A><br>
+<A HREF="android.media.MediaPlayer.html" class="hiddenlink" target="rightframe">MediaPlayer</A><br>
+<A HREF="android.media.MediaRecorder.html" class="hiddenlink" target="rightframe">MediaRecorder</A><br>
+<A HREF="android.media.MediaRouter.html" class="hiddenlink" target="rightframe">MediaRouter</A><br>
+<A HREF="android.media.MediaRouter.Callback.html" class="hiddenlink" target="rightframe">MediaRouter.Callback</A><br>
+<A HREF="android.media.MediaRouter.RouteInfo.html" class="hiddenlink" target="rightframe">MediaRouter.RouteInfo</A><br>
+<A HREF="android.provider.MediaStore.html" class="hiddenlink" target="rightframe">MediaStore</A><br>
+<A HREF="android.test.mock.MockContext.html" class="hiddenlink" target="rightframe">MockContext</A><br>
+<A HREF="android.test.mock.MockPackageManager.html" class="hiddenlink" target="rightframe">MockPackageManager</A><br>
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.app.Notification.Builder.html" class="hiddenlink" target="rightframe">Notification.Builder</A><br>
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.content.pm.PackageManager.html" class="hiddenlink" target="rightframe">PackageManager</A><br>
+<A HREF="android.graphics.Paint.html" class="hiddenlink" target="rightframe">Paint</A><br>
+<A HREF="android.app.PendingIntent.html" class="hiddenlink" target="rightframe">PendingIntent</A><br>
+<A HREF="android.content.pm.PermissionGroupInfo.html" class="hiddenlink" target="rightframe">PermissionGroupInfo</A><br>
+<A HREF="android.content.pm.PermissionInfo.html" class="hiddenlink" target="rightframe">PermissionInfo</A><br>
+<A HREF="android.telephony.PhoneStateListener.html" class="hiddenlink" target="rightframe">PhoneStateListener</A><br>
+<A HREF="android.os.PowerManager.html" class="hiddenlink" target="rightframe">PowerManager</A><br>
+<A HREF="android.os.PowerManager.WakeLock.html" class="hiddenlink" target="rightframe">PowerManager.WakeLock</A><br>
+<A HREF="android.os.Process.html" class="hiddenlink" target="rightframe">Process</A><br>
+<A HREF="android.content.pm.ProviderInfo.html" class="hiddenlink" target="rightframe">ProviderInfo</A><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
+<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
+<A HREF="android.widget.RelativeLayout.html" class="hiddenlink" target="rightframe">RelativeLayout</A><br>
+<A HREF="android.widget.RelativeLayout.LayoutParams.html" class="hiddenlink" target="rightframe">RelativeLayout.LayoutParams</A><br>
+<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
+<A HREF="android.widget.RemoteViews.html" class="hiddenlink" target="rightframe">RemoteViews</A><br>
+<A HREF="android.content.pm.ResolveInfo.html" class="hiddenlink" target="rightframe">ResolveInfo</A><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.net.wifi.ScanResult.html" class="hiddenlink" target="rightframe">ScanResult</A><br>
+<A HREF="android.renderscript.Script.html" class="hiddenlink" target="rightframe">Script</A><br>
+<A HREF="android.hardware.Sensor.html" class="hiddenlink" target="rightframe">Sensor</A><br>
+<A HREF="android.content.pm.ServiceInfo.html" class="hiddenlink" target="rightframe">ServiceInfo</A><br>
+<A HREF="android.provider.Settings.Secure.html" class="hiddenlink" target="rightframe">Settings.Secure</A><br>
+<A HREF="android.provider.Settings.System.html" class="hiddenlink" target="rightframe">Settings.System</A><br>
+<A HREF="android.widget.SlidingDrawer.html" class="hiddenlink" target="rightframe">SlidingDrawer</A><br>
+<A HREF="android.net.SSLCertificateSocketFactory.html" class="hiddenlink" target="rightframe">SSLCertificateSocketFactory</A><br>
+<A HREF="android.view.Surface.html" class="hiddenlink" target="rightframe">Surface</A><br>
+<A HREF="android.view.SurfaceView.html" class="hiddenlink" target="rightframe">SurfaceView</A><br>
+<A HREF="android.os.SystemClock.html" class="hiddenlink" target="rightframe">SystemClock</A><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.telephony.TelephonyManager.html" class="hiddenlink" target="rightframe">TelephonyManager</A><br>
+<A HREF="android.text.TextUtils.html" class="hiddenlink" target="rightframe">TextUtils</A><br>
+<A HREF="android.widget.TextView.html" class="hiddenlink" target="rightframe">TextView</A><br>
+<A HREF="android.widget.TwoLineListItem.html" class="hiddenlink" target="rightframe">TwoLineListItem</A><br>
+<A NAME="V"></A>
+<br><font size="+2">V</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.widget.VideoView.html" class="hiddenlink" target="rightframe">VideoView</A><br>
+<A HREF="android.view.View.html" class="hiddenlink" target="rightframe">View</A><br>
+<A HREF="android.widget.ViewAnimator.html" class="hiddenlink" target="rightframe">ViewAnimator</A><br>
+<A HREF="android.view.ViewGroup.LayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.LayoutParams</A><br>
+<A HREF="android.view.ViewGroup.MarginLayoutParams.html" class="hiddenlink" target="rightframe">ViewGroup.MarginLayoutParams</A><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="android.app.WallpaperManager.html" class="hiddenlink" target="rightframe">WallpaperManager</A><br>
+<A HREF="android.webkit.WebChromeClient.html" class="hiddenlink" target="rightframe">WebChromeClient</A><br>
+<A HREF="android.webkit.WebHistoryItem.html" class="hiddenlink" target="rightframe">WebHistoryItem</A><br>
+<A HREF="android.webkit.WebSettings.html" class="hiddenlink" target="rightframe">WebSettings</A><br>
+<A HREF="android.webkit.WebView.html" class="hiddenlink" target="rightframe">WebView</A><br>
+<A HREF="android.webkit.WebViewDatabase.html" class="hiddenlink" target="rightframe">WebViewDatabase</A><br>
+<A HREF="android.view.WindowManager.LayoutParams.html" class="hiddenlink" target="rightframe">WindowManager.LayoutParams</A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/classes_index_removals.html b/docs/html/sdk/api_diff/17/changes/classes_index_removals.html
new file mode 100644
index 0000000..7e5bdcd
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/classes_index_removals.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Class Removals Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Classes" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="classes_index_all.html" class="staysblack">All Classes</a>
+ <br>
+<b>Removals</b>
+ <br>
+<A HREF="classes_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="classes_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<A HREF="pkg_android.webkit.html#CacheManager" class="hiddenlink" target="rightframe"><strike>CacheManager</strike></A><br>
+<A HREF="pkg_android.webkit.html#CacheManager.CacheResult" class="hiddenlink" target="rightframe"><strike>CacheManager.CacheResult</strike></A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/constructors_index_additions.html b/docs/html/sdk/api_diff/17/changes/constructors_index_additions.html
new file mode 100644
index 0000000..6395619
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/constructors_index_additions.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Constructor Additions Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Constructors" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="constructors_index_all.html" class="staysblack">All Constructors</a>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<b>Additions</b>
+ <br>
+<A HREF="constructors_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#R"><font size="-2">R</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.inputmethod.InputMethodSubtype.html#android.view.inputmethod.InputMethodSubtype.ctor_added(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)" class="hiddenlink" target="rightframe"><b>InputMethodSubtype</b>
+(<code>int, int, String, String, String, boolean, boolean, int</code>)</A></nobr> constructor<br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#I"><font size="-2">I</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.ResolveInfo.html#android.content.pm.ResolveInfo.ctor_added(android.content.pm.ResolveInfo)" class="hiddenlink" target="rightframe"><b>ResolveInfo</b>
+(<code>ResolveInfo</code>)</A></nobr> constructor<br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/constructors_index_all.html b/docs/html/sdk/api_diff/17/changes/constructors_index_all.html
new file mode 100644
index 0000000..f4471ee
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/constructors_index_all.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Constructor Differences Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Constructors" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<b>Constructors</b>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<A HREF="constructors_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="constructors_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.inputmethod.InputMethodSubtype.html#android.view.inputmethod.InputMethodSubtype.ctor_added(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)" class="hiddenlink" target="rightframe"><b>InputMethodSubtype</b>
+(<code>int, int, String, String, String, boolean, boolean, int</code>)</A></nobr> constructor<br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.ResolveInfo.html#android.content.pm.ResolveInfo.ctor_added(android.content.pm.ResolveInfo)" class="hiddenlink" target="rightframe"><b>ResolveInfo</b>
+(<code>ResolveInfo</code>)</A></nobr> constructor<br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#R"><font size="-2">R</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.ctor_changed(android.content.Context, android.util.AttributeSet, int, boolean)" class="hiddenlink" target="rightframe">WebView
+(<code>Context, AttributeSet, int, boolean</code>)</A></nobr> constructor<br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/constructors_index_changes.html b/docs/html/sdk/api_diff/17/changes/constructors_index_changes.html
new file mode 100644
index 0000000..ecac5b1
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/constructors_index_changes.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Constructor Changes Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Constructors" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="constructors_index_all.html" class="staysblack">All Constructors</a>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<A HREF="constructors_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<b>Changes</b>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.ctor_changed(android.content.Context, android.util.AttributeSet, int, boolean)" class="hiddenlink" target="rightframe">WebView
+(<code>Context, AttributeSet, int, boolean</code>)</A></nobr> constructor<br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/constructors_index_removals.html b/docs/html/sdk/api_diff/17/changes/constructors_index_removals.html
new file mode 100644
index 0000000..f1a9952
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/constructors_index_removals.html
@@ -0,0 +1,61 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Constructor Removals Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Constructors" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="constructors_index_all.html" class="staysblack">All Constructors</a>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<A HREF="constructors_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="constructors_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/fields_index_additions.html b/docs/html/sdk/api_diff/17/changes/fields_index_additions.html
new file mode 100644
index 0000000..15224bc
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/fields_index_additions.html
@@ -0,0 +1,845 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Field Additions Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Fields" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="fields_index_all.html" class="staysblack">All Fields</a>
+ <br>
+<A HREF="fields_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<b>Additions</b>
+ <br>
+<A HREF="fields_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STARTED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STARTED</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STOPPED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STOPPED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.ACTION_IMAGE_CAPTURE_SECURE" class="hiddenlink" target="rightframe">ACTION_IMAGE_CAPTURE_SECURE</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_PACKAGE_VERIFIED" class="hiddenlink" target="rightframe">ACTION_PACKAGE_VERIFIED</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_QUICK_CLOCK" class="hiddenlink" target="rightframe">ACTION_QUICK_CLOCK</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_BACKGROUND" class="hiddenlink" target="rightframe">ACTION_USER_BACKGROUND</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_FOREGROUND" class="hiddenlink" target="rightframe">ACTION_USER_FOREGROUND</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_INITIALIZE" class="hiddenlink" target="rightframe">ACTION_USER_INITIALIZE</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AFFECTS_BATTERY" class="hiddenlink" target="rightframe">AFFECTS_BATTERY</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_END" class="hiddenlink" target="rightframe">ALIGN_END</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_END" class="hiddenlink" target="rightframe">ALIGN_PARENT_END</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_START" class="hiddenlink" target="rightframe">ALIGN_PARENT_START</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_START" class="hiddenlink" target="rightframe">ALIGN_START</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.APP_INFO" class="hiddenlink" target="rightframe">APP_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AUDIO_SETTINGS" class="hiddenlink" target="rightframe">AUDIO_SETTINGS</A>
+</nobr><br>
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.BatteryManager.html#android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS" class="hiddenlink" target="rightframe">BATTERY_PLUGGED_WIRELESS</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BLUETOOTH_NETWORK" class="hiddenlink" target="rightframe">BLUETOOTH_NETWORK</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BOOKMARKS" class="hiddenlink" target="rightframe">BOOKMARKS</A>
+</nobr><br>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CALENDAR" class="hiddenlink" target="rightframe">CALENDAR</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CAMERA" class="hiddenlink" target="rightframe">CAMERA</A>
+</nobr><br>
+<nobr><A HREF="android.hardware.Camera.CameraInfo.html#android.hardware.Camera.CameraInfo.canDisableShutterSound" class="hiddenlink" target="rightframe">canDisableShutterSound</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.checkedTextViewStyle" class="hiddenlink" target="rightframe">checkedTextViewStyle</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_DENSITY" class="hiddenlink" target="rightframe">CONFIG_DENSITY</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_LAYOUT_DIRECTION" class="hiddenlink" target="rightframe">CONFIG_LAYOUT_DIRECTION</A>
+</nobr><br>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.DENSITY_DPI_UNDEFINED" class="hiddenlink" target="rightframe">DENSITY_DPI_UNDEFINED</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DEVICE_ALARMS" class="hiddenlink" target="rightframe">DEVICE_ALARMS</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DISPLAY" class="hiddenlink" target="rightframe">DISPLAY</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.DISPLAY_SERVICE" class="hiddenlink" target="rightframe">DISPLAY_SERVICE</A>
+</nobr><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.END_OF" class="hiddenlink" target="rightframe">END_OF</A>
+</nobr><br>
+<nobr><A HREF="android.net.ConnectivityManager.html#android.net.ConnectivityManager.EXTRA_NETWORK_TYPE" class="hiddenlink" target="rightframe">EXTRA_NETWORK_TYPE</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_ORIGINATING_URI" class="hiddenlink" target="rightframe">EXTRA_ORIGINATING_URI</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_REFERRER" class="hiddenlink" target="rightframe">EXTRA_REFERRER</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.EXTRA_VERIFICATION_RESULT" class="hiddenlink" target="rightframe">EXTRA_VERIFICATION_RESULT</A>
+</nobr><br>
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.FEATURE_CAMERA_ANY" class="hiddenlink" target="rightframe">FEATURE_CAMERA_ANY</A>
+</nobr><br>
+<nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html#android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_BRAILLE" class="hiddenlink" target="rightframe">FEEDBACK_BRAILLE</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.FLAG_COSTS_MONEY" class="hiddenlink" target="rightframe">FLAG_COSTS_MONEY</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_INSTALLED" class="hiddenlink" target="rightframe">FLAG_INSTALLED</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_IS_DATA_ONLY" class="hiddenlink" target="rightframe">FLAG_IS_DATA_ONLY</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.FLAG_PERSONAL_INFO" class="hiddenlink" target="rightframe">FLAG_PERSONAL_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SECURE" class="hiddenlink" target="rightframe">FLAG_SECURE</A>
+</nobr><br>
+<i>FLAG_SINGLE_USER</i><br>
+<nobr> in
+<A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.ServiceInfo.html#android.content.pm.ServiceInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ServiceInfo</A>
+</nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SUPPORTS_PROTECTED_BUFFERS" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_PROTECTED_BUFFERS</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_SUPPORTS_RTL" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_RTL</A>
+</nobr><br>
+<i>flags</i><br>
+<nobr> in
+<A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionGroupInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.format12Hour" class="hiddenlink" target="rightframe">format12Hour</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.format24Hour" class="hiddenlink" target="rightframe">format24Hour</A>
+</nobr><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.accessibilityservice.AccessibilityService.html#android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_QUICK_SETTINGS" class="hiddenlink" target="rightframe">GLOBAL_ACTION_QUICK_SETTINGS</A>
+</nobr><br>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>initialKeyguardLayout</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE" class="hiddenlink" target="rightframe">INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_TEXT_OPEN_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_TEXT_OPEN_FROM_SEARCH</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH</A>
+</nobr><br>
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.IS_ORGANIZER" class="hiddenlink" target="rightframe">IS_ORGANIZER</A>
+</nobr><br>
+<nobr><A HREF="android.provider.CalendarContract.CalendarColumns.html#android.provider.CalendarContract.CalendarColumns.IS_PRIMARY" class="hiddenlink" target="rightframe">IS_PRIMARY</A>
+</nobr><br>
+<A NAME="J"></A>
+<br><font size="+2">J</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.Build.VERSION_CODES.html#android.os.Build.VERSION_CODES.JELLY_BEAN_MR1" class="hiddenlink" target="rightframe">JELLY_BEAN_MR1</A>
+</nobr><br>
+<A NAME="K"></A>
+<br><font size="+2">K</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_ALL</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_NONE</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_SECURE_CAMERA</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_WIDGETS_ALL</A>
+</nobr><br>
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.R.attr.html#android.R.attr.labelFor" class="hiddenlink" target="rightframe">labelFor</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignEnd" class="hiddenlink" target="rightframe">layout_alignEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentEnd" class="hiddenlink" target="rightframe">layout_alignParentEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentStart" class="hiddenlink" target="rightframe">layout_alignParentStart</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignStart" class="hiddenlink" target="rightframe">layout_alignStart</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_INHERIT</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LOCALE</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LTR" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LTR</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_RTL" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginEnd" class="hiddenlink" target="rightframe">layout_marginEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginStart" class="hiddenlink" target="rightframe">layout_marginStart</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toEndOf" class="hiddenlink" target="rightframe">layout_toEndOf</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toStartOf" class="hiddenlink" target="rightframe">layout_toStartOf</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layoutDirection" class="hiddenlink" target="rightframe">layoutDirection</A>
+</nobr><br>
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.LIMIT_PARAM_KEY" class="hiddenlink" target="rightframe">LIMIT_PARAM_KEY</A>
+</nobr><br>
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.LISTEN_CELL_INFO" class="hiddenlink" target="rightframe">LISTEN_CELL_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingEnd" class="hiddenlink" target="rightframe">listPreferredItemPaddingEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingStart" class="hiddenlink" target="rightframe">listPreferredItemPaddingStart</A>
+</nobr><br>
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.MAXIMUM_VERIFICATION_TIMEOUT" class="hiddenlink" target="rightframe">MAXIMUM_VERIFICATION_TIMEOUT</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_IO" class="hiddenlink" target="rightframe">MEDIA_ERROR_IO</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_MALFORMED" class="hiddenlink" target="rightframe">MEDIA_ERROR_MALFORMED</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaRecorder.html#android.media.MediaRecorder.MEDIA_ERROR_SERVER_DIED" class="hiddenlink" target="rightframe">MEDIA_ERROR_SERVER_DIED</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_TIMED_OUT" class="hiddenlink" target="rightframe">MEDIA_ERROR_TIMED_OUT</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_UNSUPPORTED" class="hiddenlink" target="rightframe">MEDIA_ERROR_UNSUPPORTED</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START" class="hiddenlink" target="rightframe">MEDIA_INFO_VIDEO_RENDERING_START</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaMetadataRetriever.html#android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION" class="hiddenlink" target="rightframe">METADATA_KEY_VIDEO_ROTATION</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.MICROPHONE" class="hiddenlink" target="rightframe">MICROPHONE</A>
+</nobr><br>
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.OFFSET_PARAM_KEY" class="hiddenlink" target="rightframe">OFFSET_PARAM_KEY</A>
+</nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY" class="hiddenlink" target="rightframe">OPTION_APPWIDGET_HOST_CATEGORY</A>
+</nobr><br>
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingEnd" class="hiddenlink" target="rightframe">paddingEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingStart" class="hiddenlink" target="rightframe">paddingStart</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionFlags" class="hiddenlink" target="rightframe">permissionFlags</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionGroupFlags" class="hiddenlink" target="rightframe">permissionGroupFlags</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.presentationTheme" class="hiddenlink" target="rightframe">presentationTheme</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.priority" class="hiddenlink" target="rightframe">priority</A>
+</nobr><br>
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_FRAMES_PER_BUFFER</A>
+</nobr><br>
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_SAMPLE_RATE</A>
+</nobr><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.media.MediaRouter.html#android.media.MediaRouter.ROUTE_TYPE_LIVE_VIDEO" class="hiddenlink" target="rightframe">ROUTE_TYPE_LIVE_VIDEO</A>
+</nobr><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.hardware.Camera.Parameters.html#android.hardware.Camera.Parameters.SCENE_MODE_HDR" class="hiddenlink" target="rightframe">SCENE_MODE_HDR</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_LTR" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_LTR</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_MASK" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_MASK</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_RTL" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_SHIFT" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_SHIFT</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_UNDEFINED</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_UNDEFINED</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SCREENLOCK" class="hiddenlink" target="rightframe">SCREENLOCK</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.showOnLockScreen" class="hiddenlink" target="rightframe">showOnLockScreen</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.singleUser" class="hiddenlink" target="rightframe">singleUser</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SOCIAL_INFO" class="hiddenlink" target="rightframe">SOCIAL_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.STANDALONE_MONTH" class="hiddenlink" target="rightframe">STANDALONE_MONTH</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.START_OF" class="hiddenlink" target="rightframe">START_OF</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.STATUS_BAR" class="hiddenlink" target="rightframe">STATUS_BAR</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.subtypeId" class="hiddenlink" target="rightframe">subtypeId</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.supportsRtl" class="hiddenlink" target="rightframe">supportsRtl</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYNC_SETTINGS" class="hiddenlink" target="rightframe">SYNC_SETTINGS</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYSTEM_CLOCK" class="hiddenlink" target="rightframe">SYSTEM_CLOCK</A>
+</nobr><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_CENTER" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_CENTER</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_GRAVITY" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_GRAVITY</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_START</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_START</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_ANY_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_ANY_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_FIRST_STRONG" class="hiddenlink" target="rightframe">TEXT_DIRECTION_FIRST_STRONG</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">TEXT_DIRECTION_INHERIT</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LOCALE</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LTR" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LTR</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.textAlignment" class="hiddenlink" target="rightframe">textAlignment</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.textDirection" class="hiddenlink" target="rightframe">textDirection</A>
+</nobr><br>
+<nobr><A HREF="android.net.wifi.ScanResult.html#android.net.wifi.ScanResult.timestamp" class="hiddenlink" target="rightframe">timestamp</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.timeZone" class="hiddenlink" target="rightframe">timeZone</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_END" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_START" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_START</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_END" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_START" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_START</A>
+</nobr><br>
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.UID_2445" class="hiddenlink" target="rightframe">UID_2445</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.USER_DICTIONARY" class="hiddenlink" target="rightframe">USER_DICTIONARY</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.USER_SERVICE" class="hiddenlink" target="rightframe">USER_SERVICE</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DeviceAdminInfo.html#android.app.admin.DeviceAdminInfo.USES_POLICY_DISABLE_KEYGUARD_FEATURES" class="hiddenlink" target="rightframe">USES_POLICY_DISABLE_KEYGUARD_FEATURES</A>
+</nobr><br>
+<A NAME="V"></A>
+<br><font size="+2">V</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.VOICEMAIL" class="hiddenlink" target="rightframe">VOICEMAIL</A>
+</nobr><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WALLPAPER" class="hiddenlink" target="rightframe">WALLPAPER</A>
+</nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_HOME_SCREEN</A>
+</nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_KEYGUARD</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_CheckedTextView</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_Light_CheckedTextView</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_CheckedTextView</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_Light_CheckedTextView</A>
+</nobr><br>
+<i>widgetCategory</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.widgetCategory" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.widgetCategory" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WRITE_USER_DICTIONARY" class="hiddenlink" target="rightframe">WRITE_USER_DICTIONARY</A>
+</nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/fields_index_all.html b/docs/html/sdk/api_diff/17/changes/fields_index_all.html
new file mode 100644
index 0000000..7114247
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/fields_index_all.html
@@ -0,0 +1,1079 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Field Differences Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Fields" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<b>Fields</b>
+ <br>
+<A HREF="fields_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="fields_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="fields_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.ABBREV_MONTH_FORMAT" class="hiddenlink" target="rightframe">ABBREV_MONTH_FORMAT</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STARTED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STARTED</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_DREAMING_STOPPED" class="hiddenlink" target="rightframe">ACTION_DREAMING_STOPPED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.ACTION_IMAGE_CAPTURE_SECURE" class="hiddenlink" target="rightframe">ACTION_IMAGE_CAPTURE_SECURE</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_PACKAGE_VERIFIED" class="hiddenlink" target="rightframe">ACTION_PACKAGE_VERIFIED</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_QUICK_CLOCK" class="hiddenlink" target="rightframe">ACTION_QUICK_CLOCK</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_BACKGROUND" class="hiddenlink" target="rightframe">ACTION_USER_BACKGROUND</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_FOREGROUND" class="hiddenlink" target="rightframe">ACTION_USER_FOREGROUND</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.ACTION_USER_INITIALIZE" class="hiddenlink" target="rightframe">ACTION_USER_INITIALIZE</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ADB_ENABLED" class="hiddenlink" target="rightframe">ADB_ENABLED</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AFFECTS_BATTERY" class="hiddenlink" target="rightframe">AFFECTS_BATTERY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_ON" class="hiddenlink" target="rightframe">AIRPLANE_MODE_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_RADIOS" class="hiddenlink" target="rightframe">AIRPLANE_MODE_RADIOS</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_END" class="hiddenlink" target="rightframe">ALIGN_END</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_END" class="hiddenlink" target="rightframe">ALIGN_PARENT_END</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_PARENT_START" class="hiddenlink" target="rightframe">ALIGN_PARENT_START</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.ALIGN_START" class="hiddenlink" target="rightframe">ALIGN_START</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ALWAYS_FINISH_ACTIVITIES" class="hiddenlink" target="rightframe">ALWAYS_FINISH_ACTIVITIES</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ANIMATOR_DURATION_SCALE" class="hiddenlink" target="rightframe">ANIMATOR_DURATION_SCALE</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.APP_INFO" class="hiddenlink" target="rightframe">APP_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.AUDIO_SETTINGS" class="hiddenlink" target="rightframe">AUDIO_SETTINGS</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME" class="hiddenlink" target="rightframe">AUTO_TIME</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME_ZONE" class="hiddenlink" target="rightframe">AUTO_TIME_ZONE</A>
+</nobr><br>
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.BatteryManager.html#android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS" class="hiddenlink" target="rightframe">BATTERY_PLUGGED_WIRELESS</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BLUETOOTH_NETWORK" class="hiddenlink" target="rightframe">BLUETOOTH_NETWORK</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.BLUETOOTH_ON" class="hiddenlink" target="rightframe">BLUETOOTH_ON</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.BOOKMARKS" class="hiddenlink" target="rightframe">BOOKMARKS</A>
+</nobr><br>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CALENDAR" class="hiddenlink" target="rightframe">CALENDAR</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.CAMERA" class="hiddenlink" target="rightframe">CAMERA</A>
+</nobr><br>
+<nobr><A HREF="android.hardware.Camera.CameraInfo.html#android.hardware.Camera.CameraInfo.canDisableShutterSound" class="hiddenlink" target="rightframe">canDisableShutterSound</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.checkedTextViewStyle" class="hiddenlink" target="rightframe">checkedTextViewStyle</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_DENSITY" class="hiddenlink" target="rightframe">CONFIG_DENSITY</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.CONFIG_LAYOUT_DIRECTION" class="hiddenlink" target="rightframe">CONFIG_LAYOUT_DIRECTION</A>
+</nobr><br>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DATA_ROAMING" class="hiddenlink" target="rightframe">DATA_ROAMING</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DEBUG_APP" class="hiddenlink" target="rightframe">DEBUG_APP</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.DENSITY_DPI_UNDEFINED" class="hiddenlink" target="rightframe">DENSITY_DPI_UNDEFINED</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED" class="hiddenlink" target="rightframe">DEVELOPMENT_SETTINGS_ENABLED</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DEVICE_ALARMS" class="hiddenlink" target="rightframe">DEVICE_ALARMS</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVICE_PROVISIONED" class="hiddenlink" target="rightframe">DEVICE_PROVISIONED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DIM_SCREEN" class="hiddenlink" target="rightframe">DIM_SCREEN</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.DISPLAY" class="hiddenlink" target="rightframe">DISPLAY</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.DISPLAY_SERVICE" class="hiddenlink" target="rightframe">DISPLAY_SERVICE</A>
+</nobr><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.END_OF" class="hiddenlink" target="rightframe">END_OF</A>
+</nobr><br>
+<nobr><A HREF="android.net.ConnectivityManager.html#android.net.ConnectivityManager.EXTRA_NETWORK_TYPE" class="hiddenlink" target="rightframe">EXTRA_NETWORK_TYPE</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_ORIGINATING_URI" class="hiddenlink" target="rightframe">EXTRA_ORIGINATING_URI</A>
+</nobr><br>
+<nobr><A HREF="android.content.Intent.html#android.content.Intent.EXTRA_REFERRER" class="hiddenlink" target="rightframe">EXTRA_REFERRER</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.EXTRA_VERIFICATION_RESULT" class="hiddenlink" target="rightframe">EXTRA_VERIFICATION_RESULT</A>
+</nobr><br>
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.FEATURE_CAMERA_ANY" class="hiddenlink" target="rightframe">FEATURE_CAMERA_ANY</A>
+</nobr><br>
+<nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html#android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_BRAILLE" class="hiddenlink" target="rightframe">FEEDBACK_BRAILLE</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.FLAG_COSTS_MONEY" class="hiddenlink" target="rightframe">FLAG_COSTS_MONEY</A>
+</nobr><br>
+<nobr><A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.FLAG_DITHER" class="hiddenlink" target="rightframe">FLAG_DITHER</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_INSTALLED" class="hiddenlink" target="rightframe">FLAG_INSTALLED</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_IS_DATA_ONLY" class="hiddenlink" target="rightframe">FLAG_IS_DATA_ONLY</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.FLAG_PERSONAL_INFO" class="hiddenlink" target="rightframe">FLAG_PERSONAL_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SECURE" class="hiddenlink" target="rightframe">FLAG_SECURE</A>
+</nobr><br>
+<i>FLAG_SINGLE_USER</i><br>
+<nobr> in
+<A HREF="android.content.pm.ActivityInfo.html#android.content.pm.ActivityInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ActivityInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.ServiceInfo.html#android.content.pm.ServiceInfo.FLAG_SINGLE_USER" class="hiddenlink" target="rightframe">android.content.pm.ServiceInfo</A>
+</nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.FLAG_SUPPORTS_PROTECTED_BUFFERS" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_PROTECTED_BUFFERS</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.ApplicationInfo.html#android.content.pm.ApplicationInfo.FLAG_SUPPORTS_RTL" class="hiddenlink" target="rightframe">FLAG_SUPPORTS_RTL</A>
+</nobr><br>
+<i>flags</i><br>
+<nobr> in
+<A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionGroupInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.PermissionInfo.html#android.content.pm.PermissionInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.PermissionInfo</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.content.pm.ProviderInfo.html#android.content.pm.ProviderInfo.flags" class="hiddenlink" target="rightframe">android.content.pm.ProviderInfo</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.format12Hour" class="hiddenlink" target="rightframe">format12Hour</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.format24Hour" class="hiddenlink" target="rightframe">format24Hour</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_12HOUR" class="hiddenlink" target="rightframe">FORMAT_12HOUR</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_24HOUR" class="hiddenlink" target="rightframe">FORMAT_24HOUR</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_AMPM" class="hiddenlink" target="rightframe">FORMAT_CAP_AMPM</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_MIDNIGHT</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON_MIDNIGHT</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_NO_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_NO_NOON_MIDNIGHT</A>
+</nobr><br>
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.FULL_WAKE_LOCK" class="hiddenlink" target="rightframe">FULL_WAKE_LOCK</A>
+</nobr><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.accessibilityservice.AccessibilityService.html#android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_QUICK_SETTINGS" class="hiddenlink" target="rightframe">GLOBAL_ACTION_QUICK_SETTINGS</A>
+</nobr><br>
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.HOUR_MINUTE_24" class="hiddenlink" target="rightframe">HOUR_MINUTE_24</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.HTTP_PROXY" class="hiddenlink" target="rightframe">HTTP_PROXY</A>
+</nobr><br>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>initialKeyguardLayout</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.initialKeyguardLayout" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.INSTALL_NON_MARKET_APPS" class="hiddenlink" target="rightframe">INSTALL_NON_MARKET_APPS</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE" class="hiddenlink" target="rightframe">INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_TEXT_OPEN_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_TEXT_OPEN_FROM_SEARCH</A>
+</nobr><br>
+<nobr><A HREF="android.provider.MediaStore.html#android.provider.MediaStore.INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH" class="hiddenlink" target="rightframe">INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH</A>
+</nobr><br>
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.IS_ORGANIZER" class="hiddenlink" target="rightframe">IS_ORGANIZER</A>
+</nobr><br>
+<nobr><A HREF="android.provider.CalendarContract.CalendarColumns.html#android.provider.CalendarContract.CalendarColumns.IS_PRIMARY" class="hiddenlink" target="rightframe">IS_PRIMARY</A>
+</nobr><br>
+<A NAME="J"></A>
+<br><font size="+2">J</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.Build.VERSION_CODES.html#android.os.Build.VERSION_CODES.JELLY_BEAN_MR1" class="hiddenlink" target="rightframe">JELLY_BEAN_MR1</A>
+</nobr><br>
+<A NAME="K"></A>
+<br><font size="+2">K</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_ALL</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_FEATURES_NONE</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_SECURE_CAMERA</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL" class="hiddenlink" target="rightframe">KEYGUARD_DISABLE_WIDGETS_ALL</A>
+</nobr><br>
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.R.attr.html#android.R.attr.labelFor" class="hiddenlink" target="rightframe">labelFor</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignEnd" class="hiddenlink" target="rightframe">layout_alignEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentEnd" class="hiddenlink" target="rightframe">layout_alignParentEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignParentStart" class="hiddenlink" target="rightframe">layout_alignParentStart</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_alignStart" class="hiddenlink" target="rightframe">layout_alignStart</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_INHERIT</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LOCALE</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_LTR" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_LTR</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.LAYOUT_DIRECTION_RTL" class="hiddenlink" target="rightframe">LAYOUT_DIRECTION_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginEnd" class="hiddenlink" target="rightframe">layout_marginEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_marginStart" class="hiddenlink" target="rightframe">layout_marginStart</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toEndOf" class="hiddenlink" target="rightframe">layout_toEndOf</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layout_toStartOf" class="hiddenlink" target="rightframe">layout_toStartOf</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.layoutDirection" class="hiddenlink" target="rightframe">layoutDirection</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_LONG" class="hiddenlink" target="rightframe">LENGTH_LONG</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_MEDIUM" class="hiddenlink" target="rightframe">LENGTH_MEDIUM</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORT" class="hiddenlink" target="rightframe">LENGTH_SHORT</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTER" class="hiddenlink" target="rightframe">LENGTH_SHORTER</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTEST" class="hiddenlink" target="rightframe">LENGTH_SHORTEST</A>
+</nobr><br>
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.LIMIT_PARAM_KEY" class="hiddenlink" target="rightframe">LIMIT_PARAM_KEY</A>
+</nobr><br>
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.LISTEN_CELL_INFO" class="hiddenlink" target="rightframe">LISTEN_CELL_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingEnd" class="hiddenlink" target="rightframe">listPreferredItemPaddingEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.listPreferredItemPaddingStart" class="hiddenlink" target="rightframe">listPreferredItemPaddingStart</A>
+</nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.LOAD_NORMAL" class="hiddenlink" target="rightframe">LOAD_NORMAL</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED</A>
+</nobr><br>
+<nobr><A HREF="android.webkit.WebViewDatabase.html#android.webkit.WebViewDatabase.LOGTAG" class="hiddenlink" target="rightframe"><strike>LOGTAG</strike></A>
+</nobr><br>
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.MAXIMUM_VERIFICATION_TIMEOUT" class="hiddenlink" target="rightframe">MAXIMUM_VERIFICATION_TIMEOUT</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_IO" class="hiddenlink" target="rightframe">MEDIA_ERROR_IO</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_MALFORMED" class="hiddenlink" target="rightframe">MEDIA_ERROR_MALFORMED</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaRecorder.html#android.media.MediaRecorder.MEDIA_ERROR_SERVER_DIED" class="hiddenlink" target="rightframe">MEDIA_ERROR_SERVER_DIED</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_TIMED_OUT" class="hiddenlink" target="rightframe">MEDIA_ERROR_TIMED_OUT</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_ERROR_UNSUPPORTED" class="hiddenlink" target="rightframe">MEDIA_ERROR_UNSUPPORTED</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START" class="hiddenlink" target="rightframe">MEDIA_INFO_VIDEO_RENDERING_START</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaMetadataRetriever.html#android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION" class="hiddenlink" target="rightframe">METADATA_KEY_VIDEO_ROTATION</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.MICROPHONE" class="hiddenlink" target="rightframe">MICROPHONE</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.MODE_RINGER" class="hiddenlink" target="rightframe">MODE_RINGER</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_READABLE" class="hiddenlink" target="rightframe">MODE_WORLD_READABLE</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_WRITEABLE" class="hiddenlink" target="rightframe">MODE_WORLD_WRITEABLE</A>
+</nobr><br>
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.NETWORK_PREFERENCE" class="hiddenlink" target="rightframe">NETWORK_PREFERENCE</A>
+</nobr><br>
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CallLog.Calls.html#android.provider.CallLog.Calls.OFFSET_PARAM_KEY" class="hiddenlink" target="rightframe">OFFSET_PARAM_KEY</A>
+</nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY" class="hiddenlink" target="rightframe">OPTION_APPWIDGET_HOST_CATEGORY</A>
+</nobr><br>
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingEnd" class="hiddenlink" target="rightframe">paddingEnd</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.paddingStart" class="hiddenlink" target="rightframe">paddingStart</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionFlags" class="hiddenlink" target="rightframe">permissionFlags</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.permissionGroupFlags" class="hiddenlink" target="rightframe">permissionGroupFlags</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.presentationTheme" class="hiddenlink" target="rightframe">presentationTheme</A>
+</nobr><br>
+<nobr><A HREF="android.content.pm.PermissionGroupInfo.html#android.content.pm.PermissionGroupInfo.priority" class="hiddenlink" target="rightframe">priority</A>
+</nobr><br>
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_FRAMES_PER_BUFFER</A>
+</nobr><br>
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE" class="hiddenlink" target="rightframe">PROPERTY_OUTPUT_SAMPLE_RATE</A>
+</nobr><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_BLUETOOTH" class="hiddenlink" target="rightframe">RADIO_BLUETOOTH</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_CELL" class="hiddenlink" target="rightframe">RADIO_CELL</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_NFC" class="hiddenlink" target="rightframe">RADIO_NFC</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_WIFI" class="hiddenlink" target="rightframe">RADIO_WIFI</A>
+</nobr><br>
+<nobr><A HREF="android.media.MediaRouter.html#android.media.MediaRouter.ROUTE_TYPE_LIVE_VIDEO" class="hiddenlink" target="rightframe">ROUTE_TYPE_LIVE_VIDEO</A>
+</nobr><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameMonthTable" class="hiddenlink" target="rightframe">sameMonthTable</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameYearTable" class="hiddenlink" target="rightframe">sameYearTable</A>
+</nobr><br>
+<nobr><A HREF="android.hardware.Camera.Parameters.html#android.hardware.Camera.Parameters.SCENE_MODE_HDR" class="hiddenlink" target="rightframe">SCENE_MODE_HDR</A>
+</nobr><br>
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.SCREEN_DIM_WAKE_LOCK" class="hiddenlink" target="rightframe">SCREEN_DIM_WAKE_LOCK</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_LTR" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_LTR</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_MASK" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_MASK</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_RTL" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_SHIFT" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_SHIFT</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_LAYOUTDIR_UNDEFINED</A>
+</nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.SCREENLAYOUT_UNDEFINED" class="hiddenlink" target="rightframe">SCREENLAYOUT_UNDEFINED</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SCREENLOCK" class="hiddenlink" target="rightframe">SCREENLOCK</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.SHOW_PROCESSES" class="hiddenlink" target="rightframe">SHOW_PROCESSES</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.showOnLockScreen" class="hiddenlink" target="rightframe">showOnLockScreen</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.singleUser" class="hiddenlink" target="rightframe">singleUser</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SOCIAL_INFO" class="hiddenlink" target="rightframe">SOCIAL_INFO</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.STANDALONE_MONTH" class="hiddenlink" target="rightframe">STANDALONE_MONTH</A>
+</nobr><br>
+<nobr><A HREF="android.widget.RelativeLayout.html#android.widget.RelativeLayout.START_OF" class="hiddenlink" target="rightframe">START_OF</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.STATUS_BAR" class="hiddenlink" target="rightframe">STATUS_BAR</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.STAY_ON_WHILE_PLUGGED_IN" class="hiddenlink" target="rightframe">STAY_ON_WHILE_PLUGGED_IN</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.subtypeId" class="hiddenlink" target="rightframe">subtypeId</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.supportsRtl" class="hiddenlink" target="rightframe">supportsRtl</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYNC_SETTINGS" class="hiddenlink" target="rightframe">SYNC_SETTINGS</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.SYSTEM_CLOCK" class="hiddenlink" target="rightframe">SYSTEM_CLOCK</A>
+</nobr><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.database.DatabaseUtils.InsertHelper.html#android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_DEFAULT_INDEX" class="hiddenlink" target="rightframe"><strike>TABLE_INFO_PRAGMA_DEFAULT_INDEX</strike></A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_CENTER" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_CENTER</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_GRAVITY" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_GRAVITY</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_RESOLVED_DEFAULT" class="hiddenlink" target="rightframe"><strike>TEXT_ALIGNMENT_RESOLVED_DEFAULT</strike></A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_TEXT_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_TEXT_START</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_END" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_VIEW_START" class="hiddenlink" target="rightframe">TEXT_ALIGNMENT_VIEW_START</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_ANY_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_ANY_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_FIRST_STRONG" class="hiddenlink" target="rightframe">TEXT_DIRECTION_FIRST_STRONG</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_INHERIT" class="hiddenlink" target="rightframe">TEXT_DIRECTION_INHERIT</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LOCALE" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LOCALE</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_LTR" class="hiddenlink" target="rightframe">TEXT_DIRECTION_LTR</A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_DIRECTION_RTL" class="hiddenlink" target="rightframe">TEXT_DIRECTION_RTL</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.textAlignment" class="hiddenlink" target="rightframe">textAlignment</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.textDirection" class="hiddenlink" target="rightframe">textDirection</A>
+</nobr><br>
+<nobr><A HREF="android.net.wifi.ScanResult.html#android.net.wifi.ScanResult.timestamp" class="hiddenlink" target="rightframe">timestamp</A>
+</nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.timeZone" class="hiddenlink" target="rightframe">timeZone</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.TRANSITION_ANIMATION_SCALE" class="hiddenlink" target="rightframe">TRANSITION_ANIMATION_SCALE</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_END" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_START" class="hiddenlink" target="rightframe">TYPE_GESTURE_DETECTION_START</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_END" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_END</A>
+</nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityEvent.html#android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_START" class="hiddenlink" target="rightframe">TYPE_TOUCH_INTERACTION_START</A>
+</nobr><br>
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#V"><font size="-2">V</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.CalendarContract.EventsColumns.html#android.provider.CalendarContract.EventsColumns.UID_2445" class="hiddenlink" target="rightframe">UID_2445</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USB_MASS_STORAGE_ENABLED" class="hiddenlink" target="rightframe">USB_MASS_STORAGE_ENABLED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USE_GOOGLE_MAIL" class="hiddenlink" target="rightframe">USE_GOOGLE_MAIL</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.USER_DICTIONARY" class="hiddenlink" target="rightframe">USER_DICTIONARY</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.USER_SERVICE" class="hiddenlink" target="rightframe">USER_SERVICE</A>
+</nobr><br>
+<nobr><A HREF="android.app.admin.DeviceAdminInfo.html#android.app.admin.DeviceAdminInfo.USES_POLICY_DISABLE_KEYGUARD_FEATURES" class="hiddenlink" target="rightframe">USES_POLICY_DISABLE_KEYGUARD_FEATURES</A>
+</nobr><br>
+<A NAME="V"></A>
+<br><font size="+2">V</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.VOICEMAIL" class="hiddenlink" target="rightframe">VOICEMAIL</A>
+</nobr><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#J"><font size="-2">J</font></a>
+<a href="#K"><font size="-2">K</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#V"><font size="-2">V</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WAIT_FOR_DEBUGGER" class="hiddenlink" target="rightframe">WAIT_FOR_DEBUGGER</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WALLPAPER" class="hiddenlink" target="rightframe">WALLPAPER</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WALLPAPER_ACTIVITY" class="hiddenlink" target="rightframe">WALLPAPER_ACTIVITY</A>
+</nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_HOME_SCREEN</A>
+</nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD" class="hiddenlink" target="rightframe">WIDGET_CATEGORY_KEYGUARD</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_CheckedTextView</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_DeviceDefault_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_DeviceDefault_Light_CheckedTextView</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_CheckedTextView</A>
+</nobr><br>
+<nobr><A HREF="android.R.style.html#android.R.style.Widget_Holo_Light_CheckedTextView" class="hiddenlink" target="rightframe">Widget_Holo_Light_CheckedTextView</A>
+</nobr><br>
+<i>widgetCategory</i><br>
+<nobr> in
+<A HREF="android.R.attr.html#android.R.attr.widgetCategory" class="hiddenlink" target="rightframe">android.R.attr</A>
+</nobr><br>
+<nobr> in
+<A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.widgetCategory" class="hiddenlink" target="rightframe">android.appwidget.AppWidgetProviderInfo</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MAX_DHCP_RETRY_COUNT" class="hiddenlink" target="rightframe">WIFI_MAX_DHCP_RETRY_COUNT</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" class="hiddenlink" target="rightframe">WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT" class="hiddenlink" target="rightframe">WIFI_NUM_OPEN_NETWORKS_KEPT</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_ON" class="hiddenlink" target="rightframe">WIFI_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_DEFAULT" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_DEFAULT</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS1" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS1</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS2" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS2</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_GATEWAY" class="hiddenlink" target="rightframe">WIFI_STATIC_GATEWAY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_STATIC_IP</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_NETMASK" class="hiddenlink" target="rightframe">WIFI_STATIC_NETMASK</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_USE_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_USE_STATIC_IP</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_WATCHDOG_ON" class="hiddenlink" target="rightframe">WIFI_WATCHDOG_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WINDOW_ANIMATION_SCALE" class="hiddenlink" target="rightframe">WINDOW_ANIMATION_SCALE</A>
+</nobr><br>
+<nobr><A HREF="android.Manifest.permission_group.html#android.Manifest.permission_group.WRITE_USER_DICTIONARY" class="hiddenlink" target="rightframe">WRITE_USER_DICTIONARY</A>
+</nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/fields_index_changes.html b/docs/html/sdk/api_diff/17/changes/fields_index_changes.html
new file mode 100644
index 0000000..d2e1a68
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/fields_index_changes.html
@@ -0,0 +1,437 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Field Changes Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Fields" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="fields_index_all.html" class="staysblack">All Fields</a>
+ <br>
+<A HREF="fields_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="fields_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<b>Changes</b>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.ABBREV_MONTH_FORMAT" class="hiddenlink" target="rightframe">ABBREV_MONTH_FORMAT</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.ADB_ENABLED" class="hiddenlink" target="rightframe">ADB_ENABLED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_ON" class="hiddenlink" target="rightframe">AIRPLANE_MODE_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AIRPLANE_MODE_RADIOS" class="hiddenlink" target="rightframe">AIRPLANE_MODE_RADIOS</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ALWAYS_FINISH_ACTIVITIES" class="hiddenlink" target="rightframe">ALWAYS_FINISH_ACTIVITIES</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.ANIMATOR_DURATION_SCALE" class="hiddenlink" target="rightframe">ANIMATOR_DURATION_SCALE</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME" class="hiddenlink" target="rightframe">AUTO_TIME</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.AUTO_TIME_ZONE" class="hiddenlink" target="rightframe">AUTO_TIME_ZONE</A>
+</nobr><br>
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.BLUETOOTH_ON" class="hiddenlink" target="rightframe">BLUETOOTH_ON</A>
+</nobr><br>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DATA_ROAMING" class="hiddenlink" target="rightframe">DATA_ROAMING</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DEBUG_APP" class="hiddenlink" target="rightframe">DEBUG_APP</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED" class="hiddenlink" target="rightframe">DEVELOPMENT_SETTINGS_ENABLED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.DEVICE_PROVISIONED" class="hiddenlink" target="rightframe">DEVICE_PROVISIONED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.DIM_SCREEN" class="hiddenlink" target="rightframe">DIM_SCREEN</A>
+</nobr><br>
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.WindowManager.LayoutParams.html#android.view.WindowManager.LayoutParams.FLAG_DITHER" class="hiddenlink" target="rightframe">FLAG_DITHER</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_12HOUR" class="hiddenlink" target="rightframe">FORMAT_12HOUR</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_24HOUR" class="hiddenlink" target="rightframe">FORMAT_24HOUR</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_AMPM" class="hiddenlink" target="rightframe">FORMAT_CAP_AMPM</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_MIDNIGHT</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_CAP_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_CAP_NOON_MIDNIGHT</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.FORMAT_NO_NOON_MIDNIGHT" class="hiddenlink" target="rightframe">FORMAT_NO_NOON_MIDNIGHT</A>
+</nobr><br>
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.FULL_WAKE_LOCK" class="hiddenlink" target="rightframe">FULL_WAKE_LOCK</A>
+</nobr><br>
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.HOUR_MINUTE_24" class="hiddenlink" target="rightframe">HOUR_MINUTE_24</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.HTTP_PROXY" class="hiddenlink" target="rightframe">HTTP_PROXY</A>
+</nobr><br>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.INSTALL_NON_MARKET_APPS" class="hiddenlink" target="rightframe">INSTALL_NON_MARKET_APPS</A>
+</nobr><br>
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_LONG" class="hiddenlink" target="rightframe">LENGTH_LONG</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_MEDIUM" class="hiddenlink" target="rightframe">LENGTH_MEDIUM</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORT" class="hiddenlink" target="rightframe">LENGTH_SHORT</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTER" class="hiddenlink" target="rightframe">LENGTH_SHORTER</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.LENGTH_SHORTEST" class="hiddenlink" target="rightframe">LENGTH_SHORTEST</A>
+</nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.LOAD_NORMAL" class="hiddenlink" target="rightframe">LOAD_NORMAL</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" class="hiddenlink" target="rightframe">LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED</A>
+</nobr><br>
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.MODE_RINGER" class="hiddenlink" target="rightframe">MODE_RINGER</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_READABLE" class="hiddenlink" target="rightframe">MODE_WORLD_READABLE</A>
+</nobr><br>
+<nobr><A HREF="android.content.Context.html#android.content.Context.MODE_WORLD_WRITEABLE" class="hiddenlink" target="rightframe">MODE_WORLD_WRITEABLE</A>
+</nobr><br>
+<A NAME="N"></A>
+<br><font size="+2">N</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.NETWORK_PREFERENCE" class="hiddenlink" target="rightframe">NETWORK_PREFERENCE</A>
+</nobr><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_BLUETOOTH" class="hiddenlink" target="rightframe">RADIO_BLUETOOTH</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_CELL" class="hiddenlink" target="rightframe">RADIO_CELL</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_NFC" class="hiddenlink" target="rightframe">RADIO_NFC</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.RADIO_WIFI" class="hiddenlink" target="rightframe">RADIO_WIFI</A>
+</nobr><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameMonthTable" class="hiddenlink" target="rightframe">sameMonthTable</A>
+</nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.sameYearTable" class="hiddenlink" target="rightframe">sameYearTable</A>
+</nobr><br>
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.SCREEN_DIM_WAKE_LOCK" class="hiddenlink" target="rightframe">SCREEN_DIM_WAKE_LOCK</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.SHOW_PROCESSES" class="hiddenlink" target="rightframe">SHOW_PROCESSES</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.STAY_ON_WHILE_PLUGGED_IN" class="hiddenlink" target="rightframe">STAY_ON_WHILE_PLUGGED_IN</A>
+</nobr><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.TRANSITION_ANIMATION_SCALE" class="hiddenlink" target="rightframe">TRANSITION_ANIMATION_SCALE</A>
+</nobr><br>
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USB_MASS_STORAGE_ENABLED" class="hiddenlink" target="rightframe">USB_MASS_STORAGE_ENABLED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.USE_GOOGLE_MAIL" class="hiddenlink" target="rightframe">USE_GOOGLE_MAIL</A>
+</nobr><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#L"><font size="-2">L</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#N"><font size="-2">N</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WAIT_FOR_DEBUGGER" class="hiddenlink" target="rightframe">WAIT_FOR_DEBUGGER</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WALLPAPER_ACTIVITY" class="hiddenlink" target="rightframe">WALLPAPER_ACTIVITY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MAX_DHCP_RETRY_COUNT" class="hiddenlink" target="rightframe">WIFI_MAX_DHCP_RETRY_COUNT</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" class="hiddenlink" target="rightframe">WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" class="hiddenlink" target="rightframe">WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT" class="hiddenlink" target="rightframe">WIFI_NUM_OPEN_NETWORKS_KEPT</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_ON" class="hiddenlink" target="rightframe">WIFI_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_DEFAULT" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_DEFAULT</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" class="hiddenlink" target="rightframe">WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS1" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS1</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_DNS2" class="hiddenlink" target="rightframe">WIFI_STATIC_DNS2</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_GATEWAY" class="hiddenlink" target="rightframe">WIFI_STATIC_GATEWAY</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_STATIC_IP</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_STATIC_NETMASK" class="hiddenlink" target="rightframe">WIFI_STATIC_NETMASK</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WIFI_USE_STATIC_IP" class="hiddenlink" target="rightframe">WIFI_USE_STATIC_IP</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.Secure.html#android.provider.Settings.Secure.WIFI_WATCHDOG_ON" class="hiddenlink" target="rightframe">WIFI_WATCHDOG_ON</A>
+</nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.WINDOW_ANIMATION_SCALE" class="hiddenlink" target="rightframe">WINDOW_ANIMATION_SCALE</A>
+</nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/fields_index_removals.html b/docs/html/sdk/api_diff/17/changes/fields_index_removals.html
new file mode 100644
index 0000000..ce3253f
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/fields_index_removals.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Field Removals Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Fields" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="fields_index_all.html" class="staysblack">All Fields</a>
+ <br>
+<b>Removals</b>
+ <br>
+<A HREF="fields_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="fields_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="L"></A>
+<br><font size="+2">L</font>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebViewDatabase.html#android.webkit.WebViewDatabase.LOGTAG" class="hiddenlink" target="rightframe"><strike>LOGTAG</strike></A>
+</nobr><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#L"><font size="-2">L</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.database.DatabaseUtils.InsertHelper.html#android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_DEFAULT_INDEX" class="hiddenlink" target="rightframe"><strike>TABLE_INFO_PRAGMA_DEFAULT_INDEX</strike></A>
+</nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.TEXT_ALIGNMENT_RESOLVED_DEFAULT" class="hiddenlink" target="rightframe"><strike>TEXT_ALIGNMENT_RESOLVED_DEFAULT</strike></A>
+</nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/jdiff_help.html b/docs/html/sdk/api_diff/17/changes/jdiff_help.html
new file mode 100644
index 0000000..8a5fa27
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/jdiff_help.html
@@ -0,0 +1,134 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+JDiff Help
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<TABLE summary="Navigation bar" BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+ <TABLE summary="Navigation bar" BORDER="0" CELLPADDING="0" CELLSPACING="3">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../reference/index.html" target="_top"><FONT CLASS="NavBarFont1"><B><code>17</code></B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="changes-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="jdiff_statistics.html"><FONT CLASS="NavBarFont1"><B>Statistics</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
+ </TR>
+ </TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Generated by<br><a href="http://www.jdiff.org" class="staysblack" target="_top">JDiff</a></b></EM></TD>
+</TR>
+<TR>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell2"><FONT SIZE="-2"></FONT>
+</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../changes.html" TARGET="_top"><B>FRAMES</B></A>
+ <A HREF="jdiff_help.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
+</TR>
+</TABLE>
+<HR>
+<!-- End of nav bar -->
+<center>
+<H1>JDiff Documentation</H1>
+</center>
+<BLOCKQUOTE>
+JDiff is a <a href="http://java.sun.com/j2se/javadoc/" target="_top">Javadoc</a> doclet which generates a report of the API differences between two versions of a product. It does not report changes in Javadoc comments, or changes in what a class or method does.
+This help page describes the different parts of the output from JDiff.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+ See the reference page in the <a href="http://www.jdiff.org">source for JDiff</a> for information about how to generate a report like this one.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+The indexes shown in the top-left frame help show each type of change in more detail. The index "All Differences" contains all the differences between the APIs, in alphabetical order.
+These indexes all use the same format:
+<ul>
+<li>Removed packages, classes, constructors, methods and fields are <strike>struck through</strike>.</li>
+<li>Added packages, classes, constructors, methods and fields appear in <b>bold</b>.</li>
+<li>Changed packages, classes, constructors, methods and fields appear in normal text.</li>
+</ul>
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+You can always tell when you are reading a JDiff page, rather than a Javadoc page, by the color of the index bar and the color of the background.
+Links which take you to a Javadoc page are always in a <code>typewriter</code> font.
+Just like Javadoc, all interface names are in <i>italic</i>, and class names are not italicized. Where there are multiple entries in an index with the same name, the heading for them is also in italics, but is not a link.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3><b><code>Javadoc</code></b></H3>
+This is a link to the <a href="../../../../reference/index.html" target="_top">top-level</a> Javadoc page for the new version of the product.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Overview</H3>
+The <a href="changes-summary.html">overview</a> is the top-level summary of what was removed, added and changed between versions.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Package</H3>
+This is a link to the package containing the current changed class or interface.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Class</H3>
+This is highlighted when you are looking at the changed class or interface.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Text Changes</H3>
+This is a link to the top-level index of all documentation changes for the current package or class.
+If it is not present, then there are no documentation changes for the current package or class.
+This link can be removed entirely by not using the <code>-docchanges</code> option.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Statistics</H3>
+This is a link to a page which shows statistics about the changes between the two APIs.
+This link can be removed entirely by not using the <code>-stats</code> option.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Help</H3>
+A link to this Help page for JDiff.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Prev/Next</H3>
+These links take you to the previous and next changed package or class.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H3>Frames/No Frames</H3>
+These links show and hide the HTML frames. All pages are available with or without frames.
+</BLOCKQUOTE>
+<BLOCKQUOTE>
+<H2>Complex Changes</H2>
+There are some complex changes which can occur between versions, for example, when two or more methods with the same name change simultaneously, or when a method or field is moved into or from a superclass.
+In these cases, the change will be seen as a removal and an addition, rather than as a change. Unexpected removals or additions are often part of one of these type of changes.
+</BLOCKQUOTE>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/17/changes/jdiff_statistics.html
new file mode 100644
index 0000000..00c3c81
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/jdiff_statistics.html
@@ -0,0 +1,888 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+API Change Statistics
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<body class="gc-documentation">
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;xborder-bottom:none;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="../changes.html" target="_top">Top of Report</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<h1>API Change Statistics</h1>
+<p>The overall difference between API Levels 16 and 17 is approximately <span style="color:222;font-weight:bold;">1.26%</span>.
+</p>
+<br>
+<a name="numbers"></a>
+<h2>Total of Differences, by Number and Type</h2>
+<p>
+The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were added, changed, or removed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class.
+</p>
+<TABLE summary="Number of differences" WIDTH="100%">
+<TR>
+ <th>Type</th>
+ <TH ALIGN="center"><b>Additions</b></TH>
+ <TH ALIGN="center"><b>Changes</b></TH>
+ <TH ALIGN="center">Removals</TH>
+ <TH ALIGN="center"><b>Total</b></TH>
+</TR>
+<TR>
+ <TD>Packages</TD>
+ <TD ALIGN="right">2</TD>
+ <TD ALIGN="right">35</TD>
+ <TD ALIGN="right">0</TD>
+ <TD ALIGN="right">37</TD>
+</TR>
+<TR>
+ <TD>Classes and <i>Interfaces</i></TD>
+ <TD ALIGN="right">41</TD>
+ <TD ALIGN="right">111</TD>
+ <TD ALIGN="right">2</TD>
+ <TD ALIGN="right">154</TD>
+</TR>
+<TR>
+ <TD>Constructors</TD>
+ <TD ALIGN="right">2</TD>
+ <TD ALIGN="right">1</TD>
+ <TD ALIGN="right">0</TD>
+ <TD ALIGN="right">3</TD>
+</TR>
+<TR>
+ <TD>Methods</TD>
+ <TD ALIGN="right">150</TD>
+ <TD ALIGN="right">37</TD>
+ <TD ALIGN="right">19</TD>
+ <TD ALIGN="right">206</TD>
+</TR>
+<TR>
+ <TD>Fields</TD>
+ <TD ALIGN="right">155</TD>
+ <TD ALIGN="right">69</TD>
+ <TD ALIGN="right">3</TD>
+ <TD ALIGN="right">227</TD>
+</TR>
+<TR>
+ <TD style="background-color:#FAFAFA"><b>Total</b></TD>
+ <TD style="background-color:#FAFAFA" ALIGN="right"><strong>350</strong></TD>
+ <TD style="background-color:#FAFAFA" ALIGN="right"><strong>253</strong></TD>
+ <TD style="background-color:#FAFAFA" ALIGN="right"><strong>24</strong></TD>
+ <TD style="background-color:#FAFAFA" ALIGN="right"><strong>627</strong></TD>
+</TR>
+</TABLE>
+<br>
+<a name="packages"></a>
+<h2>Changed Packages, Sorted by Percentage Difference</h2>
+<TABLE summary="Packages sorted by percentage difference" WIDTH="100%">
+<TR>
+ <TH WIDTH="10%">Percentage Difference*</TH>
+ <TH>Package</TH>
+</TR>
+<TR>
+ <TD ALIGN="center">31</TD>
+ <TD><A HREF="pkg_android.telephony.html">android.telephony</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">13</TD>
+ <TD><A HREF="pkg_android.opengl.html">android.opengl</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">10</TD>
+ <TD><A HREF="pkg_android.text.format.html">android.text.format</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">9</TD>
+ <TD><A HREF="pkg_android.net.http.html">android.net.http</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="pkg_android.renderscript.html">android.renderscript</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="pkg_android.nfc.tech.html">android.nfc.tech</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="pkg_android.telephony.cdma.html">android.telephony.cdma</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="pkg_android.webkit.html">android.webkit</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="pkg_android.appwidget.html">android.appwidget</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="pkg_android.location.html">android.location</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="pkg_android.app.admin.html">android.app.admin</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="pkg_android.os.html">android.os</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="pkg_android.content.pm.html">android.content.pm</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.html">android</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.util.html">android.util</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.accessibilityservice.html">android.accessibilityservice</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.view.html">android.view</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.text.style.html">android.text.style</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.inputmethodservice.html">android.inputmethodservice</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.view.accessibility.html">android.view.accessibility</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="pkg_android.widget.html">android.widget</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.app.html">android.app</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.test.mock.html">android.test.mock</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.hardware.html">android.hardware</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.provider.html">android.provider</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.content.html">android.content</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.view.inputmethod.html">android.view.inputmethod</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.net.wifi.html">android.net.wifi</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.content.res.html">android.content.res</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.net.html">android.net</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.bluetooth.html">android.bluetooth</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.media.html">android.media</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.database.html">android.database</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.graphics.html">android.graphics</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="pkg_android.text.html">android.text</A></TD>
+</TR>
+</TABLE>
+<p style="font-size:10px">* See <a href="#calculation">Calculation of Change Percentages</a>, below.</p>
+<br>
+<a name="classes"></a>
+<h2>Changed Classes and <i>Interfaces</i>, Sorted by Percentage Difference</h2>
+<TABLE summary="Classes sorted by percentage difference" WIDTH="100%">
+<TR WIDTH="20%">
+ <TH WIDTH="10%">Percentage<br>Difference*</TH>
+ <TH><b>Class or <i>Interface</i></b></TH>
+</TR>
+<TR>
+ <TD ALIGN="center">44</TD>
+ <TD><A HREF="android.Manifest.permission_group.html">
+android.Manifest.permission_group</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">32</TD>
+ <TD><A HREF="android.location.LocationProvider.html">
+android.location.LocationProvider</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">28</TD>
+ <TD><A HREF="android.view.ViewGroup.MarginLayoutParams.html">
+android.view.ViewGroup.MarginLayoutParams</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">26</TD>
+ <TD><A HREF="android.text.format.DateFormat.html">
+android.text.format.DateFormat</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">25</TD>
+ <TD><A HREF="android.view.Display.html">
+android.view.Display</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">25</TD>
+ <TD><A HREF="android.widget.DigitalClock.html">
+android.widget.DigitalClock</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">23</TD>
+ <TD><A HREF="android.util.FloatMath.html">
+android.util.FloatMath</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">21</TD>
+ <TD><A HREF="android.content.IntentSender.html">
+android.content.IntentSender</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">17</TD>
+ <TD><A HREF="android.content.pm.PermissionGroupInfo.html">
+android.content.pm.PermissionGroupInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">15</TD>
+ <TD><A HREF="android.text.format.DateUtils.html">
+android.text.format.DateUtils</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">14</TD>
+ <TD><A HREF="android.view.ContextThemeWrapper.html">
+android.view.ContextThemeWrapper</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">13</TD>
+ <TD><A HREF="android.os.PowerManager.html">
+android.os.PowerManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">12</TD>
+ <TD><A HREF="android.provider.Settings.System.html">
+android.provider.Settings.System</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">12</TD>
+ <TD><A HREF="android.provider.Settings.Secure.html">
+android.provider.Settings.Secure</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">11</TD>
+ <TD><A HREF="android.webkit.WebHistoryItem.html">
+android.webkit.WebHistoryItem</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">10</TD>
+ <TD><A HREF="android.widget.RelativeLayout.html">
+android.widget.RelativeLayout</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">10</TD>
+ <TD><A HREF="android.appwidget.AppWidgetProviderInfo.html">
+android.appwidget.AppWidgetProviderInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">10</TD>
+ <TD><A HREF="android.widget.TwoLineListItem.html">
+android.widget.TwoLineListItem</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">9</TD>
+ <TD><A HREF="android.hardware.Camera.CameraInfo.html">
+android.hardware.Camera.CameraInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">9</TD>
+ <TD><A HREF="android.os.SystemClock.html">
+android.os.SystemClock</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">8</TD>
+ <TD><A HREF="android.os.PowerManager.WakeLock.html">
+android.os.PowerManager.WakeLock</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">7</TD>
+ <TD><A HREF="android.app.PendingIntent.html">
+android.app.PendingIntent</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">7</TD>
+ <TD><A HREF="android.webkit.WebView.html">
+android.webkit.WebView</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">7</TD>
+ <TD><A HREF="android.inputmethodservice.AbstractInputMethodService.html">
+android.inputmethodservice.AbstractInputMethodService</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">7</TD>
+ <TD><A HREF="android.content.pm.ProviderInfo.html">
+android.content.pm.ProviderInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">7</TD>
+ <TD><A HREF="android.provider.MediaStore.html">
+android.provider.MediaStore</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">7</TD>
+ <TD><A HREF="android.renderscript.Script.html">
+android.renderscript.Script</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="android.webkit.WebSettings.html">
+android.webkit.WebSettings</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html">
+android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="android.net.wifi.ScanResult.html">
+android.net.wifi.ScanResult</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="android.view.SurfaceView.html">
+android.view.SurfaceView</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="android.webkit.WebViewDatabase.html">
+android.webkit.WebViewDatabase</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="android.content.res.Configuration.html">
+android.content.res.Configuration</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">6</TD>
+ <TD><A HREF="android.graphics.Bitmap.html">
+android.graphics.Bitmap</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.bluetooth.BluetoothA2dp.html">
+android.bluetooth.BluetoothA2dp</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.net.SSLCertificateSocketFactory.html">
+android.net.SSLCertificateSocketFactory</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.view.Gravity.html">
+android.view.Gravity</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.content.pm.PermissionInfo.html">
+android.content.pm.PermissionInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.content.pm.ServiceInfo.html">
+android.content.pm.ServiceInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.media.MediaRouter.Callback.html">
+android.media.MediaRouter.Callback</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.widget.CheckedTextView.html">
+android.widget.CheckedTextView</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.widget.RelativeLayout.LayoutParams.html">
+android.widget.RelativeLayout.LayoutParams</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">5</TD>
+ <TD><A HREF="android.provider.CallLog.Calls.html">
+android.provider.CallLog.Calls</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.test.mock.MockContext.html">
+android.test.mock.MockContext</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.app.admin.DevicePolicyManager.html">
+android.app.admin.DevicePolicyManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.content.ContextWrapper.html">
+android.content.ContextWrapper</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.media.MediaRouter.RouteInfo.html">
+android.media.MediaRouter.RouteInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.view.ViewGroup.LayoutParams.html">
+android.view.ViewGroup.LayoutParams</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.view.inputmethod.InputMethodSession.html">
+<i>android.view.inputmethod.InputMethodSession</i></A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.telephony.PhoneStateListener.html">
+android.telephony.PhoneStateListener</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.view.accessibility.AccessibilityEvent.html">
+android.view.accessibility.AccessibilityEvent</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.appwidget.AppWidgetHost.html">
+android.appwidget.AppWidgetHost</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.os.RemoteCallbackList.html">
+android.os.RemoteCallbackList</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.telephony.cdma.CdmaCellLocation.html">
+android.telephony.cdma.CdmaCellLocation</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">4</TD>
+ <TD><A HREF="android.content.Context.html">
+android.content.Context</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.media.MediaPlayer.html">
+android.media.MediaPlayer</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.view.Surface.html">
+android.view.Surface</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.widget.TextView.html">
+android.widget.TextView</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.content.ContentProviderClient.html">
+android.content.ContentProviderClient</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.view.inputmethod.InputMethodSubtype.html">
+android.view.inputmethod.InputMethodSubtype</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.widget.ViewAnimator.html">
+android.widget.ViewAnimator</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.view.accessibility.AccessibilityNodeInfo.html">
+android.view.accessibility.AccessibilityNodeInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.view.View.html">
+android.view.View</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.database.DatabaseUtils.InsertHelper.html">
+android.database.DatabaseUtils.InsertHelper</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">3</TD>
+ <TD><A HREF="android.media.MediaRouter.html">
+android.media.MediaRouter</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.content.pm.ApplicationInfo.html">
+android.content.pm.ApplicationInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.appwidget.AppWidgetManager.html">
+android.appwidget.AppWidgetManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.util.DisplayMetrics.html">
+android.util.DisplayMetrics</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.util.LruCache.html">
+android.util.LruCache</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.os.Build.VERSION_CODES.html">
+android.os.Build.VERSION_CODES</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.content.pm.ActivityInfo.html">
+android.content.pm.ActivityInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.os.Binder.html">
+android.os.Binder</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.widget.SlidingDrawer.html">
+android.widget.SlidingDrawer</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.content.pm.ResolveInfo.html">
+android.content.pm.ResolveInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.location.Location.html">
+android.location.Location</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.hardware.Sensor.html">
+android.hardware.Sensor</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.app.FragmentManager.html">
+android.app.FragmentManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.widget.AutoCompleteTextView.html">
+android.widget.AutoCompleteTextView</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.app.Fragment.html">
+android.app.Fragment</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.app.admin.DeviceAdminInfo.html">
+android.app.admin.DeviceAdminInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.provider.CalendarContract.CalendarColumns.html">
+<i>android.provider.CalendarContract.CalendarColumns</i></A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.widget.VideoView.html">
+android.widget.VideoView</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
+ <TD><A HREF="android.webkit.WebChromeClient.html">
+android.webkit.WebChromeClient</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.app.WallpaperManager.html">
+android.app.WallpaperManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.os.BatteryManager.html">
+android.os.BatteryManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.net.LocalSocket.html">
+android.net.LocalSocket</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html">
+android.accessibilityservice.AccessibilityServiceInfo</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.provider.CalendarContract.EventsColumns.html">
+<i>android.provider.CalendarContract.EventsColumns</i></A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.net.ConnectivityManager.html">
+android.net.ConnectivityManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.app.Notification.Builder.html">
+android.app.Notification.Builder</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.os.Process.html">
+android.os.Process</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.accessibilityservice.AccessibilityService.html">
+android.accessibilityservice.AccessibilityService</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.R.attr.html">
+android.R.attr</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.content.pm.PackageManager.html">
+android.content.pm.PackageManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.hardware.Camera.html">
+android.hardware.Camera</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.media.MediaRecorder.html">
+android.media.MediaRecorder</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.app.AlertDialog.Builder.html">
+android.app.AlertDialog.Builder</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.content.Intent.html">
+android.content.Intent</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.media.AudioManager.html">
+android.media.AudioManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.media.MediaMetadataRetriever.html">
+android.media.MediaMetadataRetriever</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.text.TextUtils.html">
+android.text.TextUtils</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">1</TD>
+ <TD><A HREF="android.graphics.Paint.html">
+android.graphics.Paint</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.widget.RemoteViews.html">
+android.widget.RemoteViews</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.telephony.TelephonyManager.html">
+android.telephony.TelephonyManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.test.mock.MockPackageManager.html">
+android.test.mock.MockPackageManager</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.inputmethodservice.InputMethodService.html">
+android.inputmethodservice.InputMethodService</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.opengl.GLES20.html">
+android.opengl.GLES20</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.R.style.html">
+android.R.style</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.view.WindowManager.LayoutParams.html">
+android.view.WindowManager.LayoutParams</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.hardware.Camera.Parameters.html">
+android.hardware.Camera.Parameters</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.app.Activity.html">
+android.app.Activity</A></TD>
+</TR>
+</TABLE>
+<p style="font-size:10px">* See <a href="#calculation">Calculation of Change Percentages</a>, below.</p>
+<br>
+<h2 id="calculation">Calculation of Change Percentages</h2>
+<p>
+The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:</p>
+<pre>
+Percentage difference = 100 * (added + removed + 2*changed)
+ -----------------------------------
+ sum of public elements in BOTH APIs
+</pre>
+<p>where <code>added</code> is the number of packages added, <code>removed</code> is the number of packages removed, and <code>changed</code> is the number of packages changed.
+This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed.
+The definition ensures that if all packages are removed and all new packages are
+added, the change will be 100%.</p>
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY></HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/jdiff_topleftframe.html b/docs/html/sdk/api_diff/17/changes/jdiff_topleftframe.html
new file mode 100644
index 0000000..36f9836
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/jdiff_topleftframe.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Android API Version Differences
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<table class="jdiffIndex" summary="Links to diff index files" BORDER="0" WIDTH="100%" cellspacing="0" cellpadding="0" style="margin:0">
+<TR>
+ <th class="indexHeader" nowrap>
+ Select a Diffs Index:</th>
+</TR>
+<TR>
+ <TD><FONT CLASS="indexText" size="-2"><A HREF="alldiffs_index_all.html" TARGET="bottomleftframe">All Differences</A></FONT><br></TD>
+</TR>
+<TR>
+ <TD NOWRAP><FONT CLASS="indexText" size="-2"><A HREF="packages_index_all.html" TARGET="bottomleftframe">By Package</A></FONT><br></TD>
+</TR>
+<TR>
+ <TD NOWRAP><FONT CLASS="indexText" size="-2"><A HREF="classes_index_all.html" TARGET="bottomleftframe">By Class</A></FONT><br></TD>
+</TR>
+<TR>
+ <TD NOWRAP><FONT CLASS="indexText" size="-2"><A HREF="constructors_index_all.html" TARGET="bottomleftframe">By Constructor</A></FONT><br></TD>
+</TR>
+<TR>
+ <TD NOWRAP><FONT CLASS="indexText" size="-2"><A HREF="methods_index_all.html" TARGET="bottomleftframe">By Method</A></FONT><br></TD>
+</TR>
+<TR>
+ <TD NOWRAP><FONT CLASS="indexText" size="-2"><A HREF="fields_index_all.html" TARGET="bottomleftframe">By Field</A></FONT><br></TD>
+</TR>
+</TABLE>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/methods_index_additions.html b/docs/html/sdk/api_diff/17/changes/methods_index_additions.html
new file mode 100644
index 0000000..4b61d63
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/methods_index_additions.html
@@ -0,0 +1,724 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Method Additions Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Methods" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="methods_index_all.html" class="staysblack">All Methods</a>
+ <br>
+<A HREF="methods_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<b>Additions</b>
+ <br>
+<A HREF="methods_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>apply</i><br>
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, int, int, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.applyDisplay_added(int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe"><b>applyDisplay</b>
+(<code>int, Rect, Rect, int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ContextThemeWrapper.html#android.view.ContextThemeWrapper.applyOverrideConfiguration_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe"><b>applyOverrideConfiguration</b>
+(<code>Configuration</code>)</A></nobr><br>
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.bindAppWidgetIdIfAllowed_added(int, android.content.ComponentName, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>bindAppWidgetIdIfAllowed</b>
+(<code>int, ComponentName, Bundle</code>)</A></nobr><br>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.ContentProviderClient.html#android.content.ContentProviderClient.call_added(java.lang.String, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>call</b>
+(<code>String, String, Bundle</code>)</A></nobr><br>
+<nobr><A HREF="android.telephony.cdma.CdmaCellLocation.html#android.telephony.cdma.CdmaCellLocation.convertQuartSecToDecDegrees_added(int)" class="hiddenlink" target="rightframe"><b>convertQuartSecToDecDegrees</b>
+(<code>int</code>)</A></nobr><br>
+<i>createBitmap</i><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<i>createConfigurationContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>createDisplayContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createFieldID_added(int, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createFieldID</b>
+(<code>int, Element</code>)</A></nobr><br>
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createKernelID_added(int, int, android.renderscript.Element, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createKernelID</b>
+(<code>int, int, Element, Element</code>)</A></nobr><br>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>dispatchGenericMotionEvent</i><br>
+ <nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html#android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl
+</A></nobr><br>
+ <nobr><A HREF="android.view.inputmethod.InputMethodSession.html#android.view.inputmethod.InputMethodSession.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.view.inputmethod.InputMethodSession
+</A></nobr><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.SystemClock.html#android.os.SystemClock.elapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>elapsedRealtimeNanos</b>
+()</A></nobr><br>
+<nobr><A HREF="android.inputmethodservice.InputMethodService.html#android.inputmethodservice.InputMethodService.enableHardwareAcceleration_added()" class="hiddenlink" target="rightframe"><b>enableHardwareAcceleration</b>
+()</A></nobr><br>
+<nobr><A HREF="android.hardware.Camera.html#android.hardware.Camera.enableShutterSound_added(boolean)" class="hiddenlink" target="rightframe"><b>enableShutterSound</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.equals_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>equals</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.exp_added(float)" class="hiddenlink" target="rightframe"><b>exp</b>
+(<code>float</code>)</A></nobr><br>
+<i>extendVerificationTimeout</i><br>
+ <nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.content.pm.PackageManager
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockPackageManager.html#android.test.mock.MockPackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.test.mock.MockPackageManager
+</A></nobr><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.View.html#android.view.View.generateViewId_added()" class="hiddenlink" target="rightframe"><b>generateViewId</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.getAbsoluteGravity_added(int, int)" class="hiddenlink" target="rightframe"><b>getAbsoluteGravity</b>
+(<code>int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.telephony.TelephonyManager.html#android.telephony.TelephonyManager.getAllCellInfo_added()" class="hiddenlink" target="rightframe"><b>getAllCellInfo</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.ViewAnimator.html#android.widget.ViewAnimator.getAnimateFirstView_added()" class="hiddenlink" target="rightframe"><b>getAnimateFirstView</b>
+()</A></nobr><br>
+<nobr><A HREF="android.os.Binder.html#android.os.Binder.getCallingUserHandle_added()" class="hiddenlink" target="rightframe"><b>getCallingUserHandle</b>
+()</A></nobr><br>
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getChildFragmentManager_added()" class="hiddenlink" target="rightframe"><b>getChildFragmentManager</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundDrawablesRelative_added()" class="hiddenlink" target="rightframe"><b>getCompoundDrawablesRelative</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingStart</b>
+()</A></nobr><br>
+<i>getCreatorPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<i>getCreatorUid</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<i>getCreatorUserHandle</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getDefaultUserAgent_added(android.content.Context)" class="hiddenlink" target="rightframe"><b>getDefaultUserAgent</b>
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getDisplay_added()" class="hiddenlink" target="rightframe"><b>getDisplay</b>
+()</A></nobr><br>
+<nobr><A HREF="android.location.Location.html#android.location.Location.getElapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>getElapsedRealtimeNanos</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getFlags_added()" class="hiddenlink" target="rightframe"><b>getFlags</b>
+()</A></nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.getKeyguardDisabledFeatures_added(android.content.ComponentName)" class="hiddenlink" target="rightframe"><b>getKeyguardDisabledFeatures</b>
+(<code>ComponentName</code>)</A></nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabeledBy_added()" class="hiddenlink" target="rightframe"><b>getLabeledBy</b>
+()</A></nobr><br>
+<i>getLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<i>getLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.res.Configuration
+</A></nobr><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<nobr><A HREF="android.text.TextUtils.html#android.text.TextUtils.getLayoutDirectionFromLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>getLayoutDirectionFromLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginEnd_added()" class="hiddenlink" target="rightframe"><b>getMarginEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginStart_added()" class="hiddenlink" target="rightframe"><b>getMarginStart</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getMediaPlaybackRequiresUserGesture_added()" class="hiddenlink" target="rightframe"><b>getMediaPlaybackRequiresUserGesture</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getName_added()" class="hiddenlink" target="rightframe"><b>getName</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getPaddingEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getPaddingStart</b>
+()</A></nobr><br>
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getParentFragment_added()" class="hiddenlink" target="rightframe"><b>getParentFragment</b>
+()</A></nobr><br>
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.getPresentationDisplay_added()" class="hiddenlink" target="rightframe"><b>getPresentationDisplay</b>
+()</A></nobr><br>
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.getProperty_added(java.lang.String)" class="hiddenlink" target="rightframe"><b>getProperty</b>
+(<code>String</code>)</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealMetrics_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>getRealMetrics</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealSize_added(android.graphics.Point)" class="hiddenlink" target="rightframe"><b>getRealSize</b>
+(<code>Point</code>)</A></nobr><br>
+<nobr><A HREF="android.os.RemoteCallbackList.html#android.os.RemoteCallbackList.getRegisteredCallbackCount_added()" class="hiddenlink" target="rightframe"><b>getRegisteredCallbackCount</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getTextAlignment_added()" class="hiddenlink" target="rightframe"><b>getTextAlignment</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getTextDirection_added()" class="hiddenlink" target="rightframe"><b>getTextDirection</b>
+()</A></nobr><br>
+<i>getTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.graphics.Paint
+</A></nobr><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.widget.TextView
+</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingStart</b>
+()</A></nobr><br>
+<i>glGetActiveAttrib</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<i>glGetActiveUniform</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetShaderSource_added(int)" class="hiddenlink" target="rightframe"><b>glGetShaderSource</b>
+(<code>int</code>)</A></nobr><br>
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.hasMipMap_added()" class="hiddenlink" target="rightframe"><b>hasMipMap</b>
+()</A></nobr><br>
+<nobr><A HREF="android.app.WallpaperManager.html#android.app.WallpaperManager.hasResourceWallpaper_added(int)" class="hiddenlink" target="rightframe"><b>hasResourceWallpaper</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.hypot_added(float, float)" class="hiddenlink" target="rightframe"><b>hypot</b>
+(<code>float, float</code>)</A></nobr><br>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>isDestroyed</i><br>
+ <nobr><A HREF="android.app.Activity.html#android.app.Activity.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.Activity
+</A></nobr><br>
+ <nobr><A HREF="android.app.FragmentManager.html#android.app.FragmentManager.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.FragmentManager
+</A></nobr><br>
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.isEnabled_added()" class="hiddenlink" target="rightframe"><b>isEnabled</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.isMarginRelative_added()" class="hiddenlink" target="rightframe"><b>isMarginRelative</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.isPaddingRelative_added()" class="hiddenlink" target="rightframe"><b>isPaddingRelative</b>
+()</A></nobr><br>
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.isPremultiplied_added()" class="hiddenlink" target="rightframe"><b>isPremultiplied</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.isValid_added()" class="hiddenlink" target="rightframe"><b>isValid</b>
+()</A></nobr><br>
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.Process.html#android.os.Process.myUserHandle_added()" class="hiddenlink" target="rightframe"><b>myUserHandle</b>
+()</A></nobr><br>
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.onCellInfoChanged_added(java.util.List<android.telephony.CellInfo>)" class="hiddenlink" target="rightframe"><b>onCellInfoChanged</b>
+(<code>List<CellInfo></code>)</A></nobr><br>
+<nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.html#android.inputmethodservice.AbstractInputMethodService.onGenericMotionEvent_added(android.view.MotionEvent)" class="hiddenlink" target="rightframe"><b>onGenericMotionEvent</b>
+(<code>MotionEvent</code>)</A></nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetHost.html#android.appwidget.AppWidgetHost.onProvidersChanged_added()" class="hiddenlink" target="rightframe"><b>onProvidersChanged</b>
+()</A></nobr><br>
+<nobr><A HREF="android.media.MediaRouter.Callback.html#android.media.MediaRouter.Callback.onRoutePresentationDisplayChanged_added(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)" class="hiddenlink" target="rightframe"><b>onRoutePresentationDisplayChanged</b>
+(<code>MediaRouter, RouteInfo</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.onRtlPropertiesChanged_added(int)" class="hiddenlink" target="rightframe"><b>onRtlPropertiesChanged</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.onViewStateRestored_added(android.os.Bundle)" class="hiddenlink" target="rightframe"><b>onViewStateRestored</b>
+(<code>Bundle</code>)</A></nobr><br>
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.pow_added(float, float)" class="hiddenlink" target="rightframe"><b>pow</b>
+(<code>float, float</code>)</A></nobr><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.RelativeLayout.LayoutParams.html#android.widget.RelativeLayout.LayoutParams.removeRule_added(int)" class="hiddenlink" target="rightframe"><b>removeRule</b>
+(<code>int</code>)</A></nobr><br>
+<i>removeStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.LayoutParams.html#android.view.ViewGroup.LayoutParams.resolveLayoutDirection_added(int)" class="hiddenlink" target="rightframe"><b>resolveLayoutDirection</b>
+(<code>int</code>)</A></nobr><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>sendBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>sendOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>sendStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>sendStickyOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelative_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setCompoundDrawablesRelative</b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</A></nobr><br>
+<i>setCompoundDrawablesRelativeWithIntrinsicBounds</i><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe">type <b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</b> in android.widget.TextView
+</A></nobr><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(int, int, int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, int</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<nobr><A HREF="android.location.Location.html#android.location.Location.setElapsedRealtimeNanos_added(long)" class="hiddenlink" target="rightframe"><b>setElapsedRealtimeNanos</b>
+(<code>long</code>)</A></nobr><br>
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.setHasMipMap_added(boolean)" class="hiddenlink" target="rightframe"><b>setHasMipMap</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setHostname_added(java.net.Socket, java.lang.String)" class="hiddenlink" target="rightframe"><b>setHostname</b>
+(<code>Socket, String</code>)</A></nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.setKeyguardDisabledFeatures_added(android.content.ComponentName, int)" class="hiddenlink" target="rightframe"><b>setKeyguardDisabledFeatures</b>
+(<code>ComponentName, int</code>)</A></nobr><br>
+<i>setLabeledBy</i><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<i>setLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setLabelFor_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+ <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setLabelFor_added(int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int</code>)</b> in android.widget.RemoteViews
+</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.setLayerPaint_added(android.graphics.Paint)" class="hiddenlink" target="rightframe"><b>setLayerPaint</b>
+(<code>Paint</code>)</A></nobr><br>
+<i>setLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLayoutDirection_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.content.res.Configuration
+</A></nobr><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>setLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginEnd_added(int)" class="hiddenlink" target="rightframe"><b>setMarginEnd</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginStart_added(int)" class="hiddenlink" target="rightframe"><b>setMarginStart</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setMediaPlaybackRequiresUserGesture_added(boolean)" class="hiddenlink" target="rightframe"><b>setMediaPlaybackRequiresUserGesture</b>
+(<code>boolean</code>)</A></nobr><br>
+<i>setOnDismissListener</i><br>
+ <nobr><A HREF="android.app.AlertDialog.Builder.html#android.app.AlertDialog.Builder.setOnDismissListener_added(android.content.DialogInterface.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.app.AlertDialog.Builder
+</A></nobr><br>
+ <nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setOnDismissListener_added(android.widget.AutoCompleteTextView.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.widget.AutoCompleteTextView
+</A></nobr><br>
+<nobr><A HREF="android.widget.VideoView.html#android.widget.VideoView.setOnInfoListener_added(android.media.MediaPlayer.OnInfoListener)" class="hiddenlink" target="rightframe"><b>setOnInfoListener</b>
+(<code>OnInfoListener</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.setPaddingRelative_added(int, int, int, int)" class="hiddenlink" target="rightframe"><b>setPaddingRelative</b>
+(<code>int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.SurfaceView.html#android.view.SurfaceView.setSecure_added(boolean)" class="hiddenlink" target="rightframe"><b>setSecure</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.app.Notification.Builder.html#android.app.Notification.Builder.setShowWhen_added(boolean)" class="hiddenlink" target="rightframe"><b>setShowWhen</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setText_added(java.lang.CharSequence, boolean)" class="hiddenlink" target="rightframe"><b>setText</b>
+(<code>CharSequence, boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.setTextAlignment_added(int)" class="hiddenlink" target="rightframe"><b>setTextAlignment</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.setTextDirection_added(int)" class="hiddenlink" target="rightframe"><b>setTextDirection</b>
+(<code>int</code>)</A></nobr><br>
+<i>setTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.graphics.Paint
+</A></nobr><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setUseSessionTickets_added(java.net.Socket, boolean)" class="hiddenlink" target="rightframe"><b>setUseSessionTickets</b>
+(<code>Socket, boolean</code>)</A></nobr><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.util.LruCache.html#android.util.LruCache.trimToSize_added(int)" class="hiddenlink" target="rightframe"><b>trimToSize</b>
+(<code>int</code>)</A></nobr><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.wakeUp_added(long)" class="hiddenlink" target="rightframe"><b>wakeUp</b>
+(<code>long</code>)</A></nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/methods_index_all.html b/docs/html/sdk/api_diff/17/changes/methods_index_all.html
new file mode 100644
index 0000000..4b1d8a8
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/methods_index_all.html
@@ -0,0 +1,916 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Method Differences Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Methods" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<b>Methods</b>
+ <br>
+<A HREF="methods_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="methods_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="methods_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="A"></A>
+<br><font size="+2">A</font>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>apply</i><br>
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+ <nobr><A HREF="android.view.Gravity.html#android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, Rect, int, int, Rect, int</code>)</b> in android.view.Gravity
+</A></nobr><br>
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.applyDisplay_added(int, android.graphics.Rect, android.graphics.Rect, int)" class="hiddenlink" target="rightframe"><b>applyDisplay</b>
+(<code>int, Rect, Rect, int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ContextThemeWrapper.html#android.view.ContextThemeWrapper.applyOverrideConfiguration_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe"><b>applyOverrideConfiguration</b>
+(<code>Configuration</code>)</A></nobr><br>
+<A NAME="B"></A>
+<br><font size="+2">B</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.bindAppWidgetIdIfAllowed_added(int, android.content.ComponentName, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>bindAppWidgetIdIfAllowed</b>
+(<code>int, ComponentName, Bundle</code>)</A></nobr><br>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.content.ContentProviderClient.html#android.content.ContentProviderClient.call_added(java.lang.String, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe"><b>call</b>
+(<code>String, String, Bundle</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomIn_changed()" class="hiddenlink" target="rightframe">canZoomIn
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomOut_changed()" class="hiddenlink" target="rightframe">canZoomOut
+()</A></nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.clone_changed()" class="hiddenlink" target="rightframe">clone
+()</A></nobr><br>
+<nobr><A HREF="android.telephony.cdma.CdmaCellLocation.html#android.telephony.cdma.CdmaCellLocation.convertQuartSecToDecDegrees_added(int)" class="hiddenlink" target="rightframe"><b>convertQuartSecToDecDegrees</b>
+(<code>int</code>)</A></nobr><br>
+<i>createBitmap</i><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+ <nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)" class="hiddenlink" target="rightframe">type <b>
+(<code>DisplayMetrics, int[], int, int, int, int, Config</code>)</b> in android.graphics.Bitmap
+</A></nobr><br>
+<i>createConfigurationContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createConfigurationContext_added(android.content.res.Configuration)" class="hiddenlink" target="rightframe">type <b>
+(<code>Configuration</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>createDisplayContext</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.createDisplayContext_added(android.view.Display)" class="hiddenlink" target="rightframe">type <b>
+(<code>Display</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createFieldID_added(int, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createFieldID</b>
+(<code>int, Element</code>)</A></nobr><br>
+<nobr><A HREF="android.renderscript.Script.html#android.renderscript.Script.createKernelID_added(int, int, android.renderscript.Element, android.renderscript.Element)" class="hiddenlink" target="rightframe"><b>createKernelID</b>
+(<code>int, int, Element, Element</code>)</A></nobr><br>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.debugDump_removed()" class="hiddenlink" target="rightframe"><strike>debugDump</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.disablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>disablePlatformNotifications</strike>
+()</A></nobr><br>
+<i>dispatchGenericMotionEvent</i><br>
+ <nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html#android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl
+</A></nobr><br>
+ <nobr><A HREF="android.view.inputmethod.InputMethodSession.html#android.view.inputmethod.InputMethodSession.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, MotionEvent, EventCallback</code>)</b> in android.view.inputmethod.InputMethodSession
+</A></nobr><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.SystemClock.html#android.os.SystemClock.elapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>elapsedRealtimeNanos</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.emulateShiftHeld_removed()" class="hiddenlink" target="rightframe"><strike>emulateShiftHeld</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.inputmethodservice.InputMethodService.html#android.inputmethodservice.InputMethodService.enableHardwareAcceleration_added()" class="hiddenlink" target="rightframe"><b>enableHardwareAcceleration</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.enablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>enablePlatformNotifications</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.hardware.Camera.html#android.hardware.Camera.enableShutterSound_added(boolean)" class="hiddenlink" target="rightframe"><b>enableShutterSound</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.enableSmoothTransition_changed()" class="hiddenlink" target="rightframe">enableSmoothTransition
+()</A></nobr><br>
+<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.equals_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>equals</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.exp_added(float)" class="hiddenlink" target="rightframe"><b>exp</b>
+(<code>float</code>)</A></nobr><br>
+<i>extendVerificationTimeout</i><br>
+ <nobr><A HREF="android.content.pm.PackageManager.html#android.content.pm.PackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.content.pm.PackageManager
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockPackageManager.html#android.test.mock.MockPackageManager.extendVerificationTimeout_added(int, int, long)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, long</code>)</b> in android.test.mock.MockPackageManager
+</A></nobr><br>
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.bluetooth.BluetoothA2dp.html#android.bluetooth.BluetoothA2dp.finalize_changed()" class="hiddenlink" target="rightframe">finalize
+()</A></nobr><br>
+<i>format</i><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Calendar)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Calendar</code>) in android.text.format.DateFormat
+</A></nobr><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Date)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Date</code>) in android.text.format.DateFormat
+</A></nobr><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, long)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, long</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.View.html#android.view.View.generateViewId_added()" class="hiddenlink" target="rightframe"><b>generateViewId</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Gravity.html#android.view.Gravity.getAbsoluteGravity_added(int, int)" class="hiddenlink" target="rightframe"><b>getAbsoluteGravity</b>
+(<code>int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getAccuracy_changed()" class="hiddenlink" target="rightframe">getAccuracy
+()</A></nobr><br>
+<nobr><A HREF="android.telephony.TelephonyManager.html#android.telephony.TelephonyManager.getAllCellInfo_added()" class="hiddenlink" target="rightframe"><b>getAllCellInfo</b>
+()</A></nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getAMPMString_changed(int)" class="hiddenlink" target="rightframe">getAMPMString
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.ViewAnimator.html#android.widget.ViewAnimator.getAnimateFirstView_added()" class="hiddenlink" target="rightframe"><b>getAnimateFirstView</b>
+()</A></nobr><br>
+<nobr><A HREF="android.os.Binder.html#android.os.Binder.getCallingUserHandle_added()" class="hiddenlink" target="rightframe"><b>getCallingUserHandle</b>
+()</A></nobr><br>
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getChildFragmentManager_added()" class="hiddenlink" target="rightframe"><b>getChildFragmentManager</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundDrawablesRelative_added()" class="hiddenlink" target="rightframe"><b>getCompoundDrawablesRelative</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getCompoundPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getCompoundPaddingStart</b>
+()</A></nobr><br>
+<i>getCreatorPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorPackage_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<i>getCreatorUid</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUid_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<i>getCreatorUserHandle</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getCreatorUserHandle_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.IntentSender
+</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormat
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormatOrder_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormatOrder
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getDayOfWeekString_changed(int, int)" class="hiddenlink" target="rightframe">getDayOfWeekString
+(<code>int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getDefaultUserAgent_added(android.content.Context)" class="hiddenlink" target="rightframe"><b>getDefaultUserAgent</b>
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getDisplay_added()" class="hiddenlink" target="rightframe"><b>getDisplay</b>
+()</A></nobr><br>
+<nobr><A HREF="android.location.Location.html#android.location.Location.getElapsedRealtimeNanos_added()" class="hiddenlink" target="rightframe"><b>getElapsedRealtimeNanos</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getFlags_added()" class="hiddenlink" target="rightframe"><b>getFlags</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebHistoryItem.html#android.webkit.WebHistoryItem.getId_removed()" class="hiddenlink" target="rightframe"><strike>getId</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.getKeyguardDisabledFeatures_added(android.content.ComponentName)" class="hiddenlink" target="rightframe"><b>getKeyguardDisabledFeatures</b>
+(<code>ComponentName</code>)</A></nobr><br>
+<nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabeledBy_added()" class="hiddenlink" target="rightframe"><b>getLabeledBy</b>
+()</A></nobr><br>
+<i>getLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.getLabelFor_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<i>getLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.content.res.Configuration
+</A></nobr><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getLayoutDirection_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<nobr><A HREF="android.text.TextUtils.html#android.text.TextUtils.getLayoutDirectionFromLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>getLayoutDirectionFromLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getLongDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getLongDateFormat
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginEnd_added()" class="hiddenlink" target="rightframe"><b>getMarginEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.getMarginStart_added()" class="hiddenlink" target="rightframe"><b>getMarginStart</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getMediaPlaybackRequiresUserGesture_added()" class="hiddenlink" target="rightframe"><b>getMediaPlaybackRequiresUserGesture</b>
+()</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getMediumDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getMediumDateFormat
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getMonthString_changed(int, int)" class="hiddenlink" target="rightframe">getMonthString
+(<code>int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getName_added()" class="hiddenlink" target="rightframe"><b>getName</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getNavDump_removed()" class="hiddenlink" target="rightframe"><strike>getNavDump</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getPaddingEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getPaddingStart</b>
+()</A></nobr><br>
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.getParentFragment_added()" class="hiddenlink" target="rightframe"><b>getParentFragment</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getPixelFormat_changed()" class="hiddenlink" target="rightframe">getPixelFormat
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getPowerRequirement_changed()" class="hiddenlink" target="rightframe">getPowerRequirement
+()</A></nobr><br>
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.getPresentationDisplay_added()" class="hiddenlink" target="rightframe"><b>getPresentationDisplay</b>
+()</A></nobr><br>
+<nobr><A HREF="android.media.AudioManager.html#android.media.AudioManager.getProperty_added(java.lang.String)" class="hiddenlink" target="rightframe"><b>getProperty</b>
+(<code>String</code>)</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealMetrics_added(android.util.DisplayMetrics)" class="hiddenlink" target="rightframe"><b>getRealMetrics</b>
+(<code>DisplayMetrics</code>)</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getRealSize_added(android.graphics.Point)" class="hiddenlink" target="rightframe"><b>getRealSize</b>
+(<code>Point</code>)</A></nobr><br>
+<nobr><A HREF="android.os.RemoteCallbackList.html#android.os.RemoteCallbackList.getRegisteredCallbackCount_added()" class="hiddenlink" target="rightframe"><b>getRegisteredCallbackCount</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getScale_changed()" class="hiddenlink" target="rightframe">getScale
+()</A></nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.getShowGTalkServiceStatus_changed(android.content.ContentResolver)" class="hiddenlink" target="rightframe">getShowGTalkServiceStatus
+(<code>ContentResolver</code>)</A></nobr><br>
+<i>getTargetPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.content.IntentSender
+</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getTextAlignment_added()" class="hiddenlink" target="rightframe"><b>getTextAlignment</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.getTextDirection_added()" class="hiddenlink" target="rightframe"><b>getTextDirection</b>
+()</A></nobr><br>
+<i>getTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.graphics.Paint
+</A></nobr><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTextLocale_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.widget.TextView
+</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getTimeFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getTimeFormat
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingEnd_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingEnd</b>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.getTotalPaddingStart_added()" class="hiddenlink" target="rightframe"><b>getTotalPaddingStart</b>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseDoubleTree_removed()" class="hiddenlink" target="rightframe"><strike>getUseDoubleTree</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUserAgent_removed()" class="hiddenlink" target="rightframe"><strike>getUserAgent</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseWebViewBackgroundForOverscrollBackground_removed()" class="hiddenlink" target="rightframe"><strike>getUseWebViewBackgroundForOverscrollBackground</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getVisibleTitleHeight_removed()" class="hiddenlink" target="rightframe"><strike>getVisibleTitleHeight</strike>
+()</A></nobr><br>
+<i>glGetActiveAttrib</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveAttrib_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<i>glGetActiveUniform</i><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, int[], int, int[], int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int[], int, int[], int</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+ <nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetActiveUniform_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, IntBuffer, IntBuffer</code>)</b> in android.opengl.GLES20
+</A></nobr><br>
+<nobr><A HREF="android.opengl.GLES20.html#android.opengl.GLES20.glGetShaderSource_added(int)" class="hiddenlink" target="rightframe"><b>glGetShaderSource</b>
+(<code>int</code>)</A></nobr><br>
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.hasMipMap_added()" class="hiddenlink" target="rightframe"><b>hasMipMap</b>
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.hasMonetaryCost_changed()" class="hiddenlink" target="rightframe">hasMonetaryCost
+()</A></nobr><br>
+<nobr><A HREF="android.app.WallpaperManager.html#android.app.WallpaperManager.hasResourceWallpaper_added(int)" class="hiddenlink" target="rightframe"><b>hasResourceWallpaper</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.hypot_added(float, float)" class="hiddenlink" target="rightframe"><b>hypot</b>
+(<code>float, float</code>)</A></nobr><br>
+<A NAME="I"></A>
+<br><font size="+2">I</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<i>isDestroyed</i><br>
+ <nobr><A HREF="android.app.Activity.html#android.app.Activity.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.Activity
+</A></nobr><br>
+ <nobr><A HREF="android.app.FragmentManager.html#android.app.FragmentManager.isDestroyed_added()" class="hiddenlink" target="rightframe">type <b>
+()</b> in android.app.FragmentManager
+</A></nobr><br>
+<nobr><A HREF="android.media.MediaRouter.RouteInfo.html#android.media.MediaRouter.RouteInfo.isEnabled_added()" class="hiddenlink" target="rightframe"><b>isEnabled</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.isMarginRelative_added()" class="hiddenlink" target="rightframe"><b>isMarginRelative</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.isPaddingRelative_added()" class="hiddenlink" target="rightframe"><b>isPaddingRelative</b>
+()</A></nobr><br>
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.isPremultiplied_added()" class="hiddenlink" target="rightframe"><b>isPremultiplied</b>
+()</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.isValid_added()" class="hiddenlink" target="rightframe"><b>isValid</b>
+()</A></nobr><br>
+<A NAME="M"></A>
+<br><font size="+2">M</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.Process.html#android.os.Process.myUserHandle_added()" class="hiddenlink" target="rightframe"><b>myUserHandle</b>
+()</A></nobr><br>
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.telephony.PhoneStateListener.html#android.telephony.PhoneStateListener.onCellInfoChanged_added(java.util.List<android.telephony.CellInfo>)" class="hiddenlink" target="rightframe"><b>onCellInfoChanged</b>
+(<code>List<CellInfo></code>)</A></nobr><br>
+<nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.html#android.inputmethodservice.AbstractInputMethodService.onGenericMotionEvent_added(android.view.MotionEvent)" class="hiddenlink" target="rightframe"><b>onGenericMotionEvent</b>
+(<code>MotionEvent</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebChromeClient.html#android.webkit.WebChromeClient.onJsTimeout_changed()" class="hiddenlink" target="rightframe">onJsTimeout
+()</A></nobr><br>
+<nobr><A HREF="android.widget.CheckedTextView.html#android.widget.CheckedTextView.onPaddingChanged_removed(int)" class="hiddenlink" target="rightframe"><strike>onPaddingChanged</strike>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetHost.html#android.appwidget.AppWidgetHost.onProvidersChanged_added()" class="hiddenlink" target="rightframe"><b>onProvidersChanged</b>
+()</A></nobr><br>
+<nobr><A HREF="android.media.MediaRouter.Callback.html#android.media.MediaRouter.Callback.onRoutePresentationDisplayChanged_added(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)" class="hiddenlink" target="rightframe"><b>onRoutePresentationDisplayChanged</b>
+(<code>MediaRouter, RouteInfo</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.onRtlPropertiesChanged_added(int)" class="hiddenlink" target="rightframe"><b>onRtlPropertiesChanged</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.app.Fragment.html#android.app.Fragment.onViewStateRestored_added(android.os.Bundle)" class="hiddenlink" target="rightframe"><b>onViewStateRestored</b>
+(<code>Bundle</code>)</A></nobr><br>
+<A NAME="P"></A>
+<br><font size="+2">P</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.util.FloatMath.html#android.util.FloatMath.pow_added(float, float)" class="hiddenlink" target="rightframe"><b>pow</b>
+(<code>float, float</code>)</A></nobr><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.RelativeLayout.LayoutParams.html#android.widget.RelativeLayout.LayoutParams.removeRule_added(int)" class="hiddenlink" target="rightframe"><b>removeRule</b>
+(<code>int</code>)</A></nobr><br>
+<i>removeStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresCell_changed()" class="hiddenlink" target="rightframe">requiresCell
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresNetwork_changed()" class="hiddenlink" target="rightframe">requiresNetwork
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresSatellite_changed()" class="hiddenlink" target="rightframe">requiresSatellite
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resetResolvedDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resetResolvedDrawables</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resolveDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resolveDrawables</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.LayoutParams.html#android.view.ViewGroup.LayoutParams.resolveLayoutDirection_added(int)" class="hiddenlink" target="rightframe"><b>resolveLayoutDirection</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.restorePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>restorePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.savePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>savePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<i>sendBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>sendOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, String, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>sendStickyBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<i>sendStickyOrderedBroadcastAsUser</i><br>
+ <nobr><A HREF="android.content.Context.html#android.content.Context.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.Context
+</A></nobr><br>
+ <nobr><A HREF="android.content.ContextWrapper.html#android.content.ContextWrapper.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.content.ContextWrapper
+</A></nobr><br>
+ <nobr><A HREF="android.test.mock.MockContext.html#android.test.mock.MockContext.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)" class="hiddenlink" target="rightframe">type <b>
+(<code>Intent, UserHandle, BroadcastReceiver, Handler, int, String, Bundle</code>)</b> in android.test.mock.MockContext
+</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setCertificate_changed(android.net.http.SslCertificate)" class="hiddenlink" target="rightframe">setCertificate
+(<code>SslCertificate</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelative_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setCompoundDrawablesRelative</b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</A></nobr><br>
+<i>setCompoundDrawablesRelativeWithIntrinsicBounds</i><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe">type <b>
+(<code>Drawable, Drawable, Drawable, Drawable</code>)</b> in android.widget.TextView
+</A></nobr><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(int, int, int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, int</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<nobr><A HREF="android.location.Location.html#android.location.Location.setElapsedRealtimeNanos_added(long)" class="hiddenlink" target="rightframe"><b>setElapsedRealtimeNanos</b>
+(<code>long</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setEnableSmoothTransition_changed(boolean)" class="hiddenlink" target="rightframe">setEnableSmoothTransition
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.graphics.Bitmap.html#android.graphics.Bitmap.setHasMipMap_added(boolean)" class="hiddenlink" target="rightframe"><b>setHasMipMap</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setHostname_added(java.net.Socket, java.lang.String)" class="hiddenlink" target="rightframe"><b>setHostname</b>
+(<code>Socket, String</code>)</A></nobr><br>
+<nobr><A HREF="android.app.admin.DevicePolicyManager.html#android.app.admin.DevicePolicyManager.setKeyguardDisabledFeatures_added(android.content.ComponentName, int)" class="hiddenlink" target="rightframe"><b>setKeyguardDisabledFeatures</b>
+(<code>ComponentName, int</code>)</A></nobr><br>
+<i>setLabeledBy</i><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+<i>setLabelFor</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setLabelFor_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View)" class="hiddenlink" target="rightframe">type <b>
+(<code>View</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>View, int</code>)</b> in android.view.accessibility.AccessibilityNodeInfo
+</A></nobr><br>
+ <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setLabelFor_added(int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int</code>)</b> in android.widget.RemoteViews
+</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.setLayerPaint_added(android.graphics.Paint)" class="hiddenlink" target="rightframe"><b>setLayerPaint</b>
+(<code>Paint</code>)</A></nobr><br>
+<i>setLayoutDirection</i><br>
+ <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLayoutDirection_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.content.res.Configuration
+</A></nobr><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setLayoutDirection_added(int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int</code>)</b> in android.view.ViewGroup.MarginLayoutParams
+</A></nobr><br>
+<nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.setLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe"><b>setLocale</b>
+(<code>Locale</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setMapTrackballToArrowKeys_changed(boolean)" class="hiddenlink" target="rightframe">setMapTrackballToArrowKeys
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginEnd_added(int)" class="hiddenlink" target="rightframe"><b>setMarginEnd</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html#android.view.ViewGroup.MarginLayoutParams.setMarginStart_added(int)" class="hiddenlink" target="rightframe"><b>setMarginStart</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setMediaPlaybackRequiresUserGesture_added(boolean)" class="hiddenlink" target="rightframe"><b>setMediaPlaybackRequiresUserGesture</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setNavDump_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setNavDump</strike>
+(<code>boolean</code>)</A></nobr><br>
+<i>setOnDismissListener</i><br>
+ <nobr><A HREF="android.app.AlertDialog.Builder.html#android.app.AlertDialog.Builder.setOnDismissListener_added(android.content.DialogInterface.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.app.AlertDialog.Builder
+</A></nobr><br>
+ <nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setOnDismissListener_added(android.widget.AutoCompleteTextView.OnDismissListener)" class="hiddenlink" target="rightframe">type <b>
+(<code>OnDismissListener</code>)</b> in android.widget.AutoCompleteTextView
+</A></nobr><br>
+<nobr><A HREF="android.widget.VideoView.html#android.widget.VideoView.setOnInfoListener_added(android.media.MediaPlayer.OnInfoListener)" class="hiddenlink" target="rightframe"><b>setOnInfoListener</b>
+(<code>OnInfoListener</code>)</A></nobr><br>
+<i>setPaddingRelative</i><br>
+ <nobr><A HREF="android.view.View.html#android.view.View.setPaddingRelative_added(int, int, int, int)" class="hiddenlink" target="rightframe">type <b>
+(<code>int, int, int, int</code>)</b> in android.view.View
+</A></nobr><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setPaddingRelative_changed(int, int, int, int)" class="hiddenlink" target="rightframe">type
+(<code>int, int, int, int</code>) in android.widget.TextView
+</A></nobr><br>
+<nobr><A HREF="android.view.SurfaceView.html#android.view.SurfaceView.setSecure_added(boolean)" class="hiddenlink" target="rightframe"><b>setSecure</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.setShowGTalkServiceStatus_changed(android.content.ContentResolver, boolean)" class="hiddenlink" target="rightframe">setShowGTalkServiceStatus
+(<code>ContentResolver, boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.app.Notification.Builder.html#android.app.Notification.Builder.setShowWhen_added(boolean)" class="hiddenlink" target="rightframe"><b>setShowWhen</b>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.AutoCompleteTextView.html#android.widget.AutoCompleteTextView.setText_added(java.lang.CharSequence, boolean)" class="hiddenlink" target="rightframe"><b>setText</b>
+(<code>CharSequence, boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.setTextAlignment_added(int)" class="hiddenlink" target="rightframe"><b>setTextAlignment</b>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.View.html#android.view.View.setTextDirection_added(int)" class="hiddenlink" target="rightframe"><b>setTextDirection</b>
+(<code>int</code>)</A></nobr><br>
+<i>setTextLocale</i><br>
+ <nobr><A HREF="android.graphics.Paint.html#android.graphics.Paint.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.graphics.Paint
+</A></nobr><br>
+ <nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setTextLocale_added(java.util.Locale)" class="hiddenlink" target="rightframe">type <b>
+(<code>Locale</code>)</b> in android.widget.TextView
+</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseDoubleTree_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseDoubleTree</strike>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUserAgent_removed(int)" class="hiddenlink" target="rightframe"><strike>setUserAgent</strike>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.net.SSLCertificateSocketFactory.html#android.net.SSLCertificateSocketFactory.setUseSessionTickets_added(java.net.Socket, boolean)" class="hiddenlink" target="rightframe"><b>setUseSessionTickets</b>
+(<code>Socket, boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseWebViewBackgroundForOverscrollBackground_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseWebViewBackgroundForOverscrollBackground</strike>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsAltitude_changed()" class="hiddenlink" target="rightframe">supportsAltitude
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsBearing_changed()" class="hiddenlink" target="rightframe">supportsBearing
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsSpeed_changed()" class="hiddenlink" target="rightframe">supportsSpeed
+()</A></nobr><br>
+<A NAME="T"></A>
+<br><font size="+2">T</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.util.LruCache.html#android.util.LruCache.trimToSize_added(int)" class="hiddenlink" target="rightframe"><b>trimToSize</b>
+(<code>int</code>)</A></nobr><br>
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#W"><font size="-2">W</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.Surface.html#android.view.Surface.unlockCanvas_changed(android.graphics.Canvas)" class="hiddenlink" target="rightframe">unlockCanvas
+(<code>Canvas</code>)</A></nobr><br>
+<A NAME="W"></A>
+<br><font size="+2">W</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#I"><font size="-2">I</font></a>
+<a href="#M"><font size="-2">M</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#P"><font size="-2">P</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#T"><font size="-2">T</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.os.PowerManager.html#android.os.PowerManager.wakeUp_added(long)" class="hiddenlink" target="rightframe"><b>wakeUp</b>
+(<code>long</code>)</A></nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/methods_index_changes.html b/docs/html/sdk/api_diff/17/changes/methods_index_changes.html
new file mode 100644
index 0000000..073c422
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/methods_index_changes.html
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Method Changes Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Methods" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="methods_index_all.html" class="staysblack">All Methods</a>
+ <br>
+<A HREF="methods_index_removals.html" xclass="hiddenlink">Removals</A>
+ <br>
+<A HREF="methods_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<b>Changes</b>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="C"></A>
+<br><font size="+2">C</font>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomIn_changed()" class="hiddenlink" target="rightframe">canZoomIn
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.canZoomOut_changed()" class="hiddenlink" target="rightframe">canZoomOut
+()</A></nobr><br>
+<nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html#android.appwidget.AppWidgetProviderInfo.clone_changed()" class="hiddenlink" target="rightframe">clone
+()</A></nobr><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.enableSmoothTransition_changed()" class="hiddenlink" target="rightframe">enableSmoothTransition
+()</A></nobr><br>
+<A NAME="F"></A>
+<br><font size="+2">F</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.bluetooth.BluetoothA2dp.html#android.bluetooth.BluetoothA2dp.finalize_changed()" class="hiddenlink" target="rightframe">finalize
+()</A></nobr><br>
+<i>format</i><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Calendar)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Calendar</code>) in android.text.format.DateFormat
+</A></nobr><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Date)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, Date</code>) in android.text.format.DateFormat
+</A></nobr><br>
+ <nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.format_changed(java.lang.CharSequence, long)" class="hiddenlink" target="rightframe">type
+(<code>CharSequence, long</code>) in android.text.format.DateFormat
+</A></nobr><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getAccuracy_changed()" class="hiddenlink" target="rightframe">getAccuracy
+()</A></nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getAMPMString_changed(int)" class="hiddenlink" target="rightframe">getAMPMString
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormat
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getDateFormatOrder_changed(android.content.Context)" class="hiddenlink" target="rightframe">getDateFormatOrder
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getDayOfWeekString_changed(int, int)" class="hiddenlink" target="rightframe">getDayOfWeekString
+(<code>int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getLongDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getLongDateFormat
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getMediumDateFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getMediumDateFormat
+(<code>Context</code>)</A></nobr><br>
+<nobr><A HREF="android.text.format.DateUtils.html#android.text.format.DateUtils.getMonthString_changed(int, int)" class="hiddenlink" target="rightframe">getMonthString
+(<code>int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.Display.html#android.view.Display.getPixelFormat_changed()" class="hiddenlink" target="rightframe">getPixelFormat
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.getPowerRequirement_changed()" class="hiddenlink" target="rightframe">getPowerRequirement
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getScale_changed()" class="hiddenlink" target="rightframe">getScale
+()</A></nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.getShowGTalkServiceStatus_changed(android.content.ContentResolver)" class="hiddenlink" target="rightframe">getShowGTalkServiceStatus
+(<code>ContentResolver</code>)</A></nobr><br>
+<i>getTargetPackage</i><br>
+ <nobr><A HREF="android.app.PendingIntent.html#android.app.PendingIntent.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.app.PendingIntent
+</A></nobr><br>
+ <nobr><A HREF="android.content.IntentSender.html#android.content.IntentSender.getTargetPackage_changed()" class="hiddenlink" target="rightframe">type
+() in android.content.IntentSender
+</A></nobr><br>
+<nobr><A HREF="android.text.format.DateFormat.html#android.text.format.DateFormat.getTimeFormat_changed(android.content.Context)" class="hiddenlink" target="rightframe">getTimeFormat
+(<code>Context</code>)</A></nobr><br>
+<A NAME="H"></A>
+<br><font size="+2">H</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.hasMonetaryCost_changed()" class="hiddenlink" target="rightframe">hasMonetaryCost
+()</A></nobr><br>
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebChromeClient.html#android.webkit.WebChromeClient.onJsTimeout_changed()" class="hiddenlink" target="rightframe">onJsTimeout
+()</A></nobr><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#S"><font size="-2">S</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresCell_changed()" class="hiddenlink" target="rightframe">requiresCell
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresNetwork_changed()" class="hiddenlink" target="rightframe">requiresNetwork
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.requiresSatellite_changed()" class="hiddenlink" target="rightframe">requiresSatellite
+()</A></nobr><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#U"><font size="-2">U</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setCertificate_changed(android.net.http.SslCertificate)" class="hiddenlink" target="rightframe">setCertificate
+(<code>SslCertificate</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setEnableSmoothTransition_changed(boolean)" class="hiddenlink" target="rightframe">setEnableSmoothTransition
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.setMapTrackballToArrowKeys_changed(boolean)" class="hiddenlink" target="rightframe">setMapTrackballToArrowKeys
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.setPaddingRelative_changed(int, int, int, int)" class="hiddenlink" target="rightframe">setPaddingRelative
+(<code>int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.provider.Settings.System.html#android.provider.Settings.System.setShowGTalkServiceStatus_changed(android.content.ContentResolver, boolean)" class="hiddenlink" target="rightframe">setShowGTalkServiceStatus
+(<code>ContentResolver, boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsAltitude_changed()" class="hiddenlink" target="rightframe">supportsAltitude
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsBearing_changed()" class="hiddenlink" target="rightframe">supportsBearing
+()</A></nobr><br>
+<nobr><A HREF="android.location.LocationProvider.html#android.location.LocationProvider.supportsSpeed_changed()" class="hiddenlink" target="rightframe">supportsSpeed
+()</A></nobr><br>
+<A NAME="U"></A>
+<br><font size="+2">U</font>
+<a href="#C"><font size="-2">C</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#F"><font size="-2">F</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#H"><font size="-2">H</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.view.Surface.html#android.view.Surface.unlockCanvas_changed(android.graphics.Canvas)" class="hiddenlink" target="rightframe">unlockCanvas
+(<code>Canvas</code>)</A></nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/methods_index_removals.html b/docs/html/sdk/api_diff/17/changes/methods_index_removals.html
new file mode 100644
index 0000000..f421947
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/methods_index_removals.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Method Removals Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Methods" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="methods_index_all.html" class="staysblack">All Methods</a>
+ <br>
+<b>Removals</b>
+ <br>
+<A HREF="methods_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="methods_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<A NAME="D"></A>
+<br><font size="+2">D</font>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.debugDump_removed()" class="hiddenlink" target="rightframe"><strike>debugDump</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.disablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>disablePlatformNotifications</strike>
+()</A></nobr><br>
+<A NAME="E"></A>
+<br><font size="+2">E</font>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.emulateShiftHeld_removed()" class="hiddenlink" target="rightframe"><strike>emulateShiftHeld</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.enablePlatformNotifications_removed()" class="hiddenlink" target="rightframe"><strike>enablePlatformNotifications</strike>
+()</A></nobr><br>
+<A NAME="G"></A>
+<br><font size="+2">G</font>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebHistoryItem.html#android.webkit.WebHistoryItem.getId_removed()" class="hiddenlink" target="rightframe"><strike>getId</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getNavDump_removed()" class="hiddenlink" target="rightframe"><strike>getNavDump</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseDoubleTree_removed()" class="hiddenlink" target="rightframe"><strike>getUseDoubleTree</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUserAgent_removed()" class="hiddenlink" target="rightframe"><strike>getUserAgent</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.getUseWebViewBackgroundForOverscrollBackground_removed()" class="hiddenlink" target="rightframe"><strike>getUseWebViewBackgroundForOverscrollBackground</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.getVisibleTitleHeight_removed()" class="hiddenlink" target="rightframe"><strike>getVisibleTitleHeight</strike>
+()</A></nobr><br>
+<A NAME="O"></A>
+<br><font size="+2">O</font>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#R"><font size="-2">R</font></a>
+<a href="#S"><font size="-2">S</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.CheckedTextView.html#android.widget.CheckedTextView.onPaddingChanged_removed(int)" class="hiddenlink" target="rightframe"><strike>onPaddingChanged</strike>
+(<code>int</code>)</A></nobr><br>
+<A NAME="R"></A>
+<br><font size="+2">R</font>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#S"><font size="-2">S</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resetResolvedDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resetResolvedDrawables</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.widget.TextView.html#android.widget.TextView.resolveDrawables_removed()" class="hiddenlink" target="rightframe"><strike>resolveDrawables</strike>
+()</A></nobr><br>
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.restorePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>restorePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<A NAME="S"></A>
+<br><font size="+2">S</font>
+<a href="#D"><font size="-2">D</font></a>
+<a href="#E"><font size="-2">E</font></a>
+<a href="#G"><font size="-2">G</font></a>
+<a href="#O"><font size="-2">O</font></a>
+<a href="#R"><font size="-2">R</font></a>
+ <a href="#topheader"><font size="-2">TOP</font></a>
+<p><div style="line-height:1.5em;color:black">
+<nobr><A HREF="android.webkit.WebView.html#android.webkit.WebView.savePicture_removed(android.os.Bundle, java.io.File)" class="hiddenlink" target="rightframe"><strike>savePicture</strike>
+(<code>Bundle, File</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setNavDump_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setNavDump</strike>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseDoubleTree_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseDoubleTree</strike>
+(<code>boolean</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUserAgent_removed(int)" class="hiddenlink" target="rightframe"><strike>setUserAgent</strike>
+(<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.webkit.WebSettings.html#android.webkit.WebSettings.setUseWebViewBackgroundForOverscrollBackground_removed(boolean)" class="hiddenlink" target="rightframe"><strike>setUseWebViewBackgroundForOverscrollBackground</strike>
+(<code>boolean</code>)</A></nobr><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/packages_index_additions.html b/docs/html/sdk/api_diff/17/changes/packages_index_additions.html
new file mode 100644
index 0000000..992d1561
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/packages_index_additions.html
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Package Additions Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Packages" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="packages_index_all.html" class="staysblack">All Packages</a>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<b>Additions</b>
+ <br>
+<A HREF="packages_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<br>
+<div id="indexTableEntries">
+<A NAME="A"></A>
+<A HREF="changes-summary.html#android.hardware.display" class="hiddenlink" target="rightframe"><b>android.hardware.display</b></A><br>
+<A HREF="changes-summary.html#android.service.dreams" class="hiddenlink" target="rightframe"><b>android.service.dreams</b></A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/packages_index_all.html b/docs/html/sdk/api_diff/17/changes/packages_index_all.html
new file mode 100644
index 0000000..1162372
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/packages_index_all.html
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Package Differences Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Packages" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<b>Packages</b>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<A HREF="packages_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="packages_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<br>
+<div id="indexTableEntries">
+<A NAME="A"></A>
+<A HREF="pkg_android.html" class="hiddenlink" target="rightframe">android</A><br>
+<A HREF="pkg_android.accessibilityservice.html" class="hiddenlink" target="rightframe">android.accessibilityservice</A><br>
+<A HREF="pkg_android.app.html" class="hiddenlink" target="rightframe">android.app</A><br>
+<A HREF="pkg_android.app.admin.html" class="hiddenlink" target="rightframe">android.app.admin</A><br>
+<A HREF="pkg_android.appwidget.html" class="hiddenlink" target="rightframe">android.appwidget</A><br>
+<A HREF="pkg_android.bluetooth.html" class="hiddenlink" target="rightframe">android.bluetooth</A><br>
+<A HREF="pkg_android.content.html" class="hiddenlink" target="rightframe">android.content</A><br>
+<A HREF="pkg_android.content.pm.html" class="hiddenlink" target="rightframe">android.content.pm</A><br>
+<A HREF="pkg_android.content.res.html" class="hiddenlink" target="rightframe">android.content.res</A><br>
+<A HREF="pkg_android.database.html" class="hiddenlink" target="rightframe">android.database</A><br>
+<A HREF="pkg_android.graphics.html" class="hiddenlink" target="rightframe">android.graphics</A><br>
+<A HREF="pkg_android.hardware.html" class="hiddenlink" target="rightframe">android.hardware</A><br>
+<A HREF="changes-summary.html#android.hardware.display" class="hiddenlink" target="rightframe"><b>android.hardware.display</b></A><br>
+<A HREF="pkg_android.inputmethodservice.html" class="hiddenlink" target="rightframe">android.inputmethodservice</A><br>
+<A HREF="pkg_android.location.html" class="hiddenlink" target="rightframe">android.location</A><br>
+<A HREF="pkg_android.media.html" class="hiddenlink" target="rightframe">android.media</A><br>
+<A HREF="pkg_android.net.html" class="hiddenlink" target="rightframe">android.net</A><br>
+<A HREF="pkg_android.net.http.html" class="hiddenlink" target="rightframe">android.net.http</A><br>
+<A HREF="pkg_android.net.wifi.html" class="hiddenlink" target="rightframe">android.net.wifi</A><br>
+<A HREF="pkg_android.nfc.tech.html" class="hiddenlink" target="rightframe">android.nfc.tech</A><br>
+<A HREF="pkg_android.opengl.html" class="hiddenlink" target="rightframe">android.opengl</A><br>
+<A HREF="pkg_android.os.html" class="hiddenlink" target="rightframe">android.os</A><br>
+<A HREF="pkg_android.provider.html" class="hiddenlink" target="rightframe">android.provider</A><br>
+<A HREF="pkg_android.renderscript.html" class="hiddenlink" target="rightframe">android.renderscript</A><br>
+<A HREF="changes-summary.html#android.service.dreams" class="hiddenlink" target="rightframe"><b>android.service.dreams</b></A><br>
+<A HREF="pkg_android.telephony.html" class="hiddenlink" target="rightframe">android.telephony</A><br>
+<A HREF="pkg_android.telephony.cdma.html" class="hiddenlink" target="rightframe">android.telephony.cdma</A><br>
+<A HREF="pkg_android.test.mock.html" class="hiddenlink" target="rightframe">android.test.mock</A><br>
+<A HREF="pkg_android.text.html" class="hiddenlink" target="rightframe">android.text</A><br>
+<A HREF="pkg_android.text.format.html" class="hiddenlink" target="rightframe">android.text.format</A><br>
+<A HREF="pkg_android.text.style.html" class="hiddenlink" target="rightframe">android.text.style</A><br>
+<A HREF="pkg_android.util.html" class="hiddenlink" target="rightframe">android.util</A><br>
+<A HREF="pkg_android.view.html" class="hiddenlink" target="rightframe">android.view</A><br>
+<A HREF="pkg_android.view.accessibility.html" class="hiddenlink" target="rightframe">android.view.accessibility</A><br>
+<A HREF="pkg_android.view.inputmethod.html" class="hiddenlink" target="rightframe">android.view.inputmethod</A><br>
+<A HREF="pkg_android.webkit.html" class="hiddenlink" target="rightframe">android.webkit</A><br>
+<A HREF="pkg_android.widget.html" class="hiddenlink" target="rightframe">android.widget</A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/packages_index_changes.html b/docs/html/sdk/api_diff/17/changes/packages_index_changes.html
new file mode 100644
index 0000000..95f3eaa
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/packages_index_changes.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Package Changes Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Packages" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="packages_index_all.html" class="staysblack">All Packages</a>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<A HREF="packages_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<b>Changes</b>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<br>
+<div id="indexTableEntries">
+<A NAME="A"></A>
+<A HREF="pkg_android.html" class="hiddenlink" target="rightframe">android</A><br>
+<A HREF="pkg_android.accessibilityservice.html" class="hiddenlink" target="rightframe">android.accessibilityservice</A><br>
+<A HREF="pkg_android.app.html" class="hiddenlink" target="rightframe">android.app</A><br>
+<A HREF="pkg_android.app.admin.html" class="hiddenlink" target="rightframe">android.app.admin</A><br>
+<A HREF="pkg_android.appwidget.html" class="hiddenlink" target="rightframe">android.appwidget</A><br>
+<A HREF="pkg_android.bluetooth.html" class="hiddenlink" target="rightframe">android.bluetooth</A><br>
+<A HREF="pkg_android.content.html" class="hiddenlink" target="rightframe">android.content</A><br>
+<A HREF="pkg_android.content.pm.html" class="hiddenlink" target="rightframe">android.content.pm</A><br>
+<A HREF="pkg_android.content.res.html" class="hiddenlink" target="rightframe">android.content.res</A><br>
+<A HREF="pkg_android.database.html" class="hiddenlink" target="rightframe">android.database</A><br>
+<A HREF="pkg_android.graphics.html" class="hiddenlink" target="rightframe">android.graphics</A><br>
+<A HREF="pkg_android.hardware.html" class="hiddenlink" target="rightframe">android.hardware</A><br>
+<A HREF="pkg_android.inputmethodservice.html" class="hiddenlink" target="rightframe">android.inputmethodservice</A><br>
+<A HREF="pkg_android.location.html" class="hiddenlink" target="rightframe">android.location</A><br>
+<A HREF="pkg_android.media.html" class="hiddenlink" target="rightframe">android.media</A><br>
+<A HREF="pkg_android.net.html" class="hiddenlink" target="rightframe">android.net</A><br>
+<A HREF="pkg_android.net.http.html" class="hiddenlink" target="rightframe">android.net.http</A><br>
+<A HREF="pkg_android.net.wifi.html" class="hiddenlink" target="rightframe">android.net.wifi</A><br>
+<A HREF="pkg_android.nfc.tech.html" class="hiddenlink" target="rightframe">android.nfc.tech</A><br>
+<A HREF="pkg_android.opengl.html" class="hiddenlink" target="rightframe">android.opengl</A><br>
+<A HREF="pkg_android.os.html" class="hiddenlink" target="rightframe">android.os</A><br>
+<A HREF="pkg_android.provider.html" class="hiddenlink" target="rightframe">android.provider</A><br>
+<A HREF="pkg_android.renderscript.html" class="hiddenlink" target="rightframe">android.renderscript</A><br>
+<A HREF="pkg_android.telephony.html" class="hiddenlink" target="rightframe">android.telephony</A><br>
+<A HREF="pkg_android.telephony.cdma.html" class="hiddenlink" target="rightframe">android.telephony.cdma</A><br>
+<A HREF="pkg_android.test.mock.html" class="hiddenlink" target="rightframe">android.test.mock</A><br>
+<A HREF="pkg_android.text.html" class="hiddenlink" target="rightframe">android.text</A><br>
+<A HREF="pkg_android.text.format.html" class="hiddenlink" target="rightframe">android.text.format</A><br>
+<A HREF="pkg_android.text.style.html" class="hiddenlink" target="rightframe">android.text.style</A><br>
+<A HREF="pkg_android.util.html" class="hiddenlink" target="rightframe">android.util</A><br>
+<A HREF="pkg_android.view.html" class="hiddenlink" target="rightframe">android.view</A><br>
+<A HREF="pkg_android.view.accessibility.html" class="hiddenlink" target="rightframe">android.view.accessibility</A><br>
+<A HREF="pkg_android.view.inputmethod.html" class="hiddenlink" target="rightframe">android.view.inputmethod</A><br>
+<A HREF="pkg_android.webkit.html" class="hiddenlink" target="rightframe">android.webkit</A><br>
+<A HREF="pkg_android.widget.html" class="hiddenlink" target="rightframe">android.widget</A><br>
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/packages_index_removals.html b/docs/html/sdk/api_diff/17/changes/packages_index_removals.html
new file mode 100644
index 0000000..d0ffabc
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/packages_index_removals.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+Package Removals Index
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY class="gc-documentation" style="padding:12px;">
+<a NAME="topheader"></a>
+<table summary="Index for Packages" width="100%" class="jdiffIndex" border="0" cellspacing="0" cellpadding="0" style="padding-bottom:0;margin-bottom:0;">
+ <tr>
+ <th class="indexHeader">
+ Filter the Index:
+ </th>
+ </tr>
+ <tr>
+ <td class="indexText" style="line-height:1.3em;padding-left:2em;">
+<a href="packages_index_all.html" class="staysblack">All Packages</a>
+ <br>
+<font color="#999999">Removals</font>
+ <br>
+<A HREF="packages_index_additions.html"xclass="hiddenlink">Additions</A>
+ <br>
+<A HREF="packages_index_changes.html"xclass="hiddenlink">Changes</A>
+ </td>
+ </tr>
+</table>
+<div id="indexTableCaption" style="background-color:#eee;padding:0 4px 0 4px;font-size:11px;margin-bottom:1em;">
+Listed as: <span style="color:#069"><strong>Added</strong></span>, <span style="color:#069"><strike>Removed</strike></span>, <span style="color:#069">Changed</span></font>
+</div>
+<br>
+<div id="indexTableEntries">
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.accessibilityservice.html b/docs/html/sdk/api_diff/17/changes/pkg_android.accessibilityservice.html
new file mode 100644
index 0000000..a6444ec
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.accessibilityservice.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.accessibilityservice
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/accessibilityservice/package-summary.html" target="_top"><font size="+1"><code>android.accessibilityservice</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AccessibilityService"></A>
+ <nobr><A HREF="android.accessibilityservice.AccessibilityService.html">AccessibilityService</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AccessibilityServiceInfo"></A>
+ <nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html">AccessibilityServiceInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.app.admin.html b/docs/html/sdk/api_diff/17/changes/pkg_android.app.admin.html
new file mode 100644
index 0000000..c376db3
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.app.admin.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app.admin
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/app/admin/package-summary.html" target="_top"><font size="+1"><code>android.app.admin</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="DeviceAdminInfo"></A>
+ <nobr><A HREF="android.app.admin.DeviceAdminInfo.html">DeviceAdminInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="DevicePolicyManager"></A>
+ <nobr><A HREF="android.app.admin.DevicePolicyManager.html">DevicePolicyManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.app.html b/docs/html/sdk/api_diff/17/changes/pkg_android.app.html
new file mode 100644
index 0000000..9254b2c
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.app.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.app
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/app/package-summary.html" target="_top"><font size="+1"><code>android.app</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Presentation"></A>
+ <nobr><A HREF="../../../../reference/android/app/Presentation.html" target="_top"><code>Presentation</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Activity"></A>
+ <nobr><A HREF="android.app.Activity.html">Activity</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AlertDialog.Builder"></A>
+ <nobr><A HREF="android.app.AlertDialog.Builder.html">AlertDialog.Builder</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Fragment"></A>
+ <nobr><A HREF="android.app.Fragment.html">Fragment</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="FragmentManager"></A>
+ <nobr><A HREF="android.app.FragmentManager.html">FragmentManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Notification.Builder"></A>
+ <nobr><A HREF="android.app.Notification.Builder.html">Notification.Builder</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="PendingIntent"></A>
+ <nobr><A HREF="android.app.PendingIntent.html">PendingIntent</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WallpaperManager"></A>
+ <nobr><A HREF="android.app.WallpaperManager.html">WallpaperManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.appwidget.html b/docs/html/sdk/api_diff/17/changes/pkg_android.appwidget.html
new file mode 100644
index 0000000..89464ec
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.appwidget.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.appwidget
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/appwidget/package-summary.html" target="_top"><font size="+1"><code>android.appwidget</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AppWidgetHost"></A>
+ <nobr><A HREF="android.appwidget.AppWidgetHost.html">AppWidgetHost</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AppWidgetManager"></A>
+ <nobr><A HREF="android.appwidget.AppWidgetManager.html">AppWidgetManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AppWidgetProviderInfo"></A>
+ <nobr><A HREF="android.appwidget.AppWidgetProviderInfo.html">AppWidgetProviderInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.bluetooth.html b/docs/html/sdk/api_diff/17/changes/pkg_android.bluetooth.html
new file mode 100644
index 0000000..62c8ca8
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.bluetooth.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.bluetooth
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/bluetooth/package-summary.html" target="_top"><font size="+1"><code>android.bluetooth</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="BluetoothA2dp"></A>
+ <nobr><A HREF="android.bluetooth.BluetoothA2dp.html">BluetoothA2dp</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.content.html b/docs/html/sdk/api_diff/17/changes/pkg_android.content.html
new file mode 100644
index 0000000..552695a
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.content.html
@@ -0,0 +1,147 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/content/package-summary.html" target="_top"><font size="+1"><code>android.content</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ContentProviderClient"></A>
+ <nobr><A HREF="android.content.ContentProviderClient.html">ContentProviderClient</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Context"></A>
+ <nobr><A HREF="android.content.Context.html">Context</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ContextWrapper"></A>
+ <nobr><A HREF="android.content.ContextWrapper.html">ContextWrapper</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Intent"></A>
+ <nobr><A HREF="android.content.Intent.html">Intent</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="IntentSender"></A>
+ <nobr><A HREF="android.content.IntentSender.html">IntentSender</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.content.pm.html b/docs/html/sdk/api_diff/17/changes/pkg_android.content.pm.html
new file mode 100644
index 0000000..f905418
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.content.pm.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.pm
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/content/pm/package-summary.html" target="_top"><font size="+1"><code>android.content.pm</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ActivityInfo"></A>
+ <nobr><A HREF="android.content.pm.ActivityInfo.html">ActivityInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ApplicationInfo"></A>
+ <nobr><A HREF="android.content.pm.ApplicationInfo.html">ApplicationInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="PackageManager"></A>
+ <nobr><A HREF="android.content.pm.PackageManager.html">PackageManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="PermissionGroupInfo"></A>
+ <nobr><A HREF="android.content.pm.PermissionGroupInfo.html">PermissionGroupInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="PermissionInfo"></A>
+ <nobr><A HREF="android.content.pm.PermissionInfo.html">PermissionInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ProviderInfo"></A>
+ <nobr><A HREF="android.content.pm.ProviderInfo.html">ProviderInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ResolveInfo"></A>
+ <nobr><A HREF="android.content.pm.ResolveInfo.html">ResolveInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ServiceInfo"></A>
+ <nobr><A HREF="android.content.pm.ServiceInfo.html">ServiceInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.content.res.html b/docs/html/sdk/api_diff/17/changes/pkg_android.content.res.html
new file mode 100644
index 0000000..34fce2d
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.content.res.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.content.res
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/content/res/package-summary.html" target="_top"><font size="+1"><code>android.content.res</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Configuration"></A>
+ <nobr><A HREF="android.content.res.Configuration.html">Configuration</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.database.html b/docs/html/sdk/api_diff/17/changes/pkg_android.database.html
new file mode 100644
index 0000000..ea1b1cd
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.database.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.database
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/database/package-summary.html" target="_top"><font size="+1"><code>android.database</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="DatabaseUtils.InsertHelper"></A>
+ <nobr><A HREF="android.database.DatabaseUtils.InsertHelper.html">DatabaseUtils.InsertHelper</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.graphics.html b/docs/html/sdk/api_diff/17/changes/pkg_android.graphics.html
new file mode 100644
index 0000000..e8cb4bd
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.graphics.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.graphics
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/graphics/package-summary.html" target="_top"><font size="+1"><code>android.graphics</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Bitmap"></A>
+ <nobr><A HREF="android.graphics.Bitmap.html">Bitmap</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Paint"></A>
+ <nobr><A HREF="android.graphics.Paint.html">Paint</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.hardware.html b/docs/html/sdk/api_diff/17/changes/pkg_android.hardware.html
new file mode 100644
index 0000000..3474e45
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.hardware.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.hardware
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/hardware/package-summary.html" target="_top"><font size="+1"><code>android.hardware</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Camera"></A>
+ <nobr><A HREF="android.hardware.Camera.html">Camera</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Camera.CameraInfo"></A>
+ <nobr><A HREF="android.hardware.Camera.CameraInfo.html">Camera.CameraInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Camera.Parameters"></A>
+ <nobr><A HREF="android.hardware.Camera.Parameters.html">Camera.Parameters</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Sensor"></A>
+ <nobr><A HREF="android.hardware.Sensor.html">Sensor</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.html b/docs/html/sdk/api_diff/17/changes/pkg_android.html
new file mode 100644
index 0000000..0d244c4
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/package-summary.html" target="_top"><font size="+1"><code>android</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Manifest.permission_group"></A>
+ <nobr><A HREF="android.Manifest.permission_group.html">Manifest.permission_group</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="R.attr"></A>
+ <nobr><A HREF="android.R.attr.html">R.attr</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="R.style"></A>
+ <nobr><A HREF="android.R.style.html">R.style</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.inputmethodservice.html b/docs/html/sdk/api_diff/17/changes/pkg_android.inputmethodservice.html
new file mode 100644
index 0000000..c4ece16
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.inputmethodservice.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.inputmethodservice
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/inputmethodservice/package-summary.html" target="_top"><font size="+1"><code>android.inputmethodservice</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AbstractInputMethodService"></A>
+ <nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.html">AbstractInputMethodService</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AbstractInputMethodService.AbstractInputMethodSessionImpl"></A>
+ <nobr><A HREF="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.html">AbstractInputMethodService.<br>AbstractInputMethodSessionImpl</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="InputMethodService"></A>
+ <nobr><A HREF="android.inputmethodservice.InputMethodService.html">InputMethodService</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.location.html b/docs/html/sdk/api_diff/17/changes/pkg_android.location.html
new file mode 100644
index 0000000..aa2b406
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.location.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.location
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/location/package-summary.html" target="_top"><font size="+1"><code>android.location</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Location"></A>
+ <nobr><A HREF="android.location.Location.html">Location</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="LocationProvider"></A>
+ <nobr><A HREF="android.location.LocationProvider.html">LocationProvider</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.media.html b/docs/html/sdk/api_diff/17/changes/pkg_android.media.html
new file mode 100644
index 0000000..e6f9142
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.media.html
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.media
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/media/package-summary.html" target="_top"><font size="+1"><code>android.media</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AudioManager"></A>
+ <nobr><A HREF="android.media.AudioManager.html">AudioManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MediaMetadataRetriever"></A>
+ <nobr><A HREF="android.media.MediaMetadataRetriever.html">MediaMetadataRetriever</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MediaPlayer"></A>
+ <nobr><A HREF="android.media.MediaPlayer.html">MediaPlayer</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MediaRecorder"></A>
+ <nobr><A HREF="android.media.MediaRecorder.html">MediaRecorder</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MediaRouter"></A>
+ <nobr><A HREF="android.media.MediaRouter.html">MediaRouter</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MediaRouter.Callback"></A>
+ <nobr><A HREF="android.media.MediaRouter.Callback.html">MediaRouter.Callback</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MediaRouter.RouteInfo"></A>
+ <nobr><A HREF="android.media.MediaRouter.RouteInfo.html">MediaRouter.RouteInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.net.html b/docs/html/sdk/api_diff/17/changes/pkg_android.net.html
new file mode 100644
index 0000000..7d5074a
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.net.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.net
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/net/package-summary.html" target="_top"><font size="+1"><code>android.net</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ConnectivityManager"></A>
+ <nobr><A HREF="android.net.ConnectivityManager.html">ConnectivityManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="LocalSocket"></A>
+ <nobr><A HREF="android.net.LocalSocket.html">LocalSocket</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="SSLCertificateSocketFactory"></A>
+ <nobr><A HREF="android.net.SSLCertificateSocketFactory.html">SSLCertificateSocketFactory</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.net.http.html b/docs/html/sdk/api_diff/17/changes/pkg_android.net.http.html
new file mode 100644
index 0000000..4c64be1
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.net.http.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.net.http
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/net/http/package-summary.html" target="_top"><font size="+1"><code>android.net.http</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="X509TrustManagerExtensions"></A>
+ <nobr><A HREF="../../../../reference/android/net/http/X509TrustManagerExtensions.html" target="_top"><code>X509TrustManagerExtensions</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.net.wifi.html b/docs/html/sdk/api_diff/17/changes/pkg_android.net.wifi.html
new file mode 100644
index 0000000..c87fc814
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.net.wifi.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.net.wifi
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/net/wifi/package-summary.html" target="_top"><font size="+1"><code>android.net.wifi</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScanResult"></A>
+ <nobr><A HREF="android.net.wifi.ScanResult.html">ScanResult</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.nfc.tech.html b/docs/html/sdk/api_diff/17/changes/pkg_android.nfc.tech.html
new file mode 100644
index 0000000..fbb6cf7
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.nfc.tech.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.nfc.tech
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/nfc/tech/package-summary.html" target="_top"><font size="+1"><code>android.nfc.tech</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="NfcBarcode"></A>
+ <nobr><A HREF="../../../../reference/android/nfc/tech/NfcBarcode.html" target="_top"><code>NfcBarcode</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.opengl.html b/docs/html/sdk/api_diff/17/changes/pkg_android.opengl.html
new file mode 100644
index 0000000..2591d26
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.opengl.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.opengl
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/opengl/package-summary.html" target="_top"><font size="+1"><code>android.opengl</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="EGL14"></A>
+ <nobr><A HREF="../../../../reference/android/opengl/EGL14.html" target="_top"><code>EGL14</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="EGLConfig"></A>
+ <nobr><A HREF="../../../../reference/android/opengl/EGLConfig.html" target="_top"><code>EGLConfig</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="EGLContext"></A>
+ <nobr><A HREF="../../../../reference/android/opengl/EGLContext.html" target="_top"><code>EGLContext</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="EGLDisplay"></A>
+ <nobr><A HREF="../../../../reference/android/opengl/EGLDisplay.html" target="_top"><code>EGLDisplay</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="EGLObjectHandle"></A>
+ <nobr><A HREF="../../../../reference/android/opengl/EGLObjectHandle.html" target="_top"><code>EGLObjectHandle</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="EGLSurface"></A>
+ <nobr><A HREF="../../../../reference/android/opengl/EGLSurface.html" target="_top"><code>EGLSurface</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="GLES20"></A>
+ <nobr><A HREF="android.opengl.GLES20.html">GLES20</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.os.html b/docs/html/sdk/api_diff/17/changes/pkg_android.os.html
new file mode 100644
index 0000000..deab1aa
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.os.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.os
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/os/package-summary.html" target="_top"><font size="+1"><code>android.os</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="UserHandle"></A>
+ <nobr><A HREF="../../../../reference/android/os/UserHandle.html" target="_top"><code>UserHandle</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="UserManager"></A>
+ <nobr><A HREF="../../../../reference/android/os/UserManager.html" target="_top"><code>UserManager</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="BatteryManager"></A>
+ <nobr><A HREF="android.os.BatteryManager.html">BatteryManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Binder"></A>
+ <nobr><A HREF="android.os.Binder.html">Binder</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Build.VERSION_CODES"></A>
+ <nobr><A HREF="android.os.Build.VERSION_CODES.html">Build.VERSION_CODES</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="PowerManager"></A>
+ <nobr><A HREF="android.os.PowerManager.html">PowerManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="PowerManager.WakeLock"></A>
+ <nobr><A HREF="android.os.PowerManager.WakeLock.html">PowerManager.WakeLock</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Process"></A>
+ <nobr><A HREF="android.os.Process.html">Process</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="RemoteCallbackList"></A>
+ <nobr><A HREF="android.os.RemoteCallbackList.html">RemoteCallbackList</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="SystemClock"></A>
+ <nobr><A HREF="android.os.SystemClock.html">SystemClock</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.provider.html b/docs/html/sdk/api_diff/17/changes/pkg_android.provider.html
new file mode 100644
index 0000000..5f3855e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.provider.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.provider
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/provider/package-summary.html" target="_top"><font size="+1"><code>android.provider</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Settings.Global"></A>
+ <nobr><A HREF="../../../../reference/android/provider/Settings.Global.html" target="_top"><code>Settings.Global</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes and Interfaces" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes and Interfaces</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CalendarContract.CalendarColumns"></A>
+ <nobr><A HREF="android.provider.CalendarContract.CalendarColumns.html"><I>CalendarContract.CalendarColumns</I></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CalendarContract.EventsColumns"></A>
+ <nobr><A HREF="android.provider.CalendarContract.EventsColumns.html"><I>CalendarContract.EventsColumns</I></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CallLog.Calls"></A>
+ <nobr><A HREF="android.provider.CallLog.Calls.html">CallLog.Calls</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MediaStore"></A>
+ <nobr><A HREF="android.provider.MediaStore.html">MediaStore</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Settings.Secure"></A>
+ <nobr><A HREF="android.provider.Settings.Secure.html">Settings.Secure</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Settings.System"></A>
+ <nobr><A HREF="android.provider.Settings.System.html">Settings.System</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.renderscript.html b/docs/html/sdk/api_diff/17/changes/pkg_android.renderscript.html
new file mode 100644
index 0000000..81ec16d
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.renderscript.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.renderscript
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/renderscript/package-summary.html" target="_top"><font size="+1"><code>android.renderscript</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Script.FieldID"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/Script.FieldID.html" target="_top"><code>Script.FieldID</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Script.KernelID"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/Script.KernelID.html" target="_top"><code>Script.KernelID</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptGroup"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptGroup.html" target="_top"><code>ScriptGroup</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptGroup.Builder"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptGroup.Builder.html" target="_top"><code>ScriptGroup.Builder</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsic"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsic.html" target="_top"><code>ScriptIntrinsic</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsicBlend"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsicBlend.html" target="_top"><code>ScriptIntrinsicBlend</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsicBlur"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsicBlur.html" target="_top"><code>ScriptIntrinsicBlur</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsicColorMatrix"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsicColorMatrix.html" target="_top"><code>ScriptIntrinsicColorMatrix</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsicConvolve3x3"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsicConvolve3x3.html" target="_top"><code>ScriptIntrinsicConvolve3x3</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsicConvolve5x5"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsicConvolve5x5.html" target="_top"><code>ScriptIntrinsicConvolve5x5</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsicLUT"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsicLUT.html" target="_top"><code>ScriptIntrinsicLUT</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ScriptIntrinsicYuvToRGB"></A>
+ <nobr><A HREF="../../../../reference/android/renderscript/ScriptIntrinsicYuvToRGB.html" target="_top"><code>ScriptIntrinsicYuvToRGB</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Script"></A>
+ <nobr><A HREF="android.renderscript.Script.html">Script</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.telephony.cdma.html b/docs/html/sdk/api_diff/17/changes/pkg_android.telephony.cdma.html
new file mode 100644
index 0000000..6d3a785
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.telephony.cdma.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.telephony.cdma
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/telephony/cdma/package-summary.html" target="_top"><font size="+1"><code>android.telephony.cdma</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CdmaCellLocation"></A>
+ <nobr><A HREF="android.telephony.cdma.CdmaCellLocation.html">CdmaCellLocation</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.telephony.html b/docs/html/sdk/api_diff/17/changes/pkg_android.telephony.html
new file mode 100644
index 0000000..01a1338
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.telephony.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.telephony
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/telephony/package-summary.html" target="_top"><font size="+1"><code>android.telephony</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellIdentityCdma"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellIdentityCdma.html" target="_top"><code>CellIdentityCdma</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellIdentityGsm"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellIdentityGsm.html" target="_top"><code>CellIdentityGsm</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellIdentityLte"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellIdentityLte.html" target="_top"><code>CellIdentityLte</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellInfo"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellInfo.html" target="_top"><code>CellInfo</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellInfoCdma"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellInfoCdma.html" target="_top"><code>CellInfoCdma</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellInfoGsm"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellInfoGsm.html" target="_top"><code>CellInfoGsm</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellInfoLte"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellInfoLte.html" target="_top"><code>CellInfoLte</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellSignalStrength"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellSignalStrength.html" target="_top"><code>CellSignalStrength</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellSignalStrengthCdma"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellSignalStrengthCdma.html" target="_top"><code>CellSignalStrengthCdma</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellSignalStrengthGsm"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellSignalStrengthGsm.html" target="_top"><code>CellSignalStrengthGsm</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CellSignalStrengthLte"></A>
+ <nobr><A HREF="../../../../reference/android/telephony/CellSignalStrengthLte.html" target="_top"><code>CellSignalStrengthLte</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="PhoneStateListener"></A>
+ <nobr><A HREF="android.telephony.PhoneStateListener.html">PhoneStateListener</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="TelephonyManager"></A>
+ <nobr><A HREF="android.telephony.TelephonyManager.html">TelephonyManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.test.mock.html b/docs/html/sdk/api_diff/17/changes/pkg_android.test.mock.html
new file mode 100644
index 0000000..7ca6b36
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.test.mock.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.test.mock
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/test/mock/package-summary.html" target="_top"><font size="+1"><code>android.test.mock</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MockContext"></A>
+ <nobr><A HREF="android.test.mock.MockContext.html">MockContext</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="MockPackageManager"></A>
+ <nobr><A HREF="android.test.mock.MockPackageManager.html">MockPackageManager</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.text.format.html b/docs/html/sdk/api_diff/17/changes/pkg_android.text.format.html
new file mode 100644
index 0000000..ad85eaf
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.text.format.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.text.format
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/text/format/package-summary.html" target="_top"><font size="+1"><code>android.text.format</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="DateFormat"></A>
+ <nobr><A HREF="android.text.format.DateFormat.html">DateFormat</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="DateUtils"></A>
+ <nobr><A HREF="android.text.format.DateUtils.html">DateUtils</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.text.html b/docs/html/sdk/api_diff/17/changes/pkg_android.text.html
new file mode 100644
index 0000000..e56697b
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.text.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.text
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/text/package-summary.html" target="_top"><font size="+1"><code>android.text</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="TextUtils"></A>
+ <nobr><A HREF="android.text.TextUtils.html">TextUtils</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.text.style.html b/docs/html/sdk/api_diff/17/changes/pkg_android.text.style.html
new file mode 100644
index 0000000..71a9243
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.text.style.html
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.text.style
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/text/style/package-summary.html" target="_top"><font size="+1"><code>android.text.style</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="LocaleSpan"></A>
+ <nobr><A HREF="../../../../reference/android/text/style/LocaleSpan.html" target="_top"><code>LocaleSpan</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.util.html b/docs/html/sdk/api_diff/17/changes/pkg_android.util.html
new file mode 100644
index 0000000..07cc2b4
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.util.html
@@ -0,0 +1,148 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.util
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/util/package-summary.html" target="_top"><font size="+1"><code>android.util</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AtomicFile"></A>
+ <nobr><A HREF="../../../../reference/android/util/AtomicFile.html" target="_top"><code>AtomicFile</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="DisplayMetrics"></A>
+ <nobr><A HREF="android.util.DisplayMetrics.html">DisplayMetrics</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="FloatMath"></A>
+ <nobr><A HREF="android.util.FloatMath.html">FloatMath</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="LruCache"></A>
+ <nobr><A HREF="android.util.LruCache.html">LruCache</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.view.accessibility.html b/docs/html/sdk/api_diff/17/changes/pkg_android.view.accessibility.html
new file mode 100644
index 0000000..94b7be6
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.view.accessibility.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.accessibility
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/view/accessibility/package-summary.html" target="_top"><font size="+1"><code>android.view.accessibility</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AccessibilityEvent"></A>
+ <nobr><A HREF="android.view.accessibility.AccessibilityEvent.html">AccessibilityEvent</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AccessibilityNodeInfo"></A>
+ <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html">AccessibilityNodeInfo</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.view.html b/docs/html/sdk/api_diff/17/changes/pkg_android.view.html
new file mode 100644
index 0000000..1656c33
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.view.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/view/package-summary.html" target="_top"><font size="+1"><code>android.view</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WindowManager.InvalidDisplayException"></A>
+ <nobr><A HREF="../../../../reference/android/view/WindowManager.InvalidDisplayException.html" target="_top"><code>WindowManager.InvalidDisplayException</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ContextThemeWrapper"></A>
+ <nobr><A HREF="android.view.ContextThemeWrapper.html">ContextThemeWrapper</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Display"></A>
+ <nobr><A HREF="android.view.Display.html">Display</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Gravity"></A>
+ <nobr><A HREF="android.view.Gravity.html">Gravity</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="Surface"></A>
+ <nobr><A HREF="android.view.Surface.html">Surface</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="SurfaceView"></A>
+ <nobr><A HREF="android.view.SurfaceView.html">SurfaceView</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="View"></A>
+ <nobr><A HREF="android.view.View.html">View</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ViewGroup.LayoutParams"></A>
+ <nobr><A HREF="android.view.ViewGroup.LayoutParams.html">ViewGroup.LayoutParams</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ViewGroup.MarginLayoutParams"></A>
+ <nobr><A HREF="android.view.ViewGroup.MarginLayoutParams.html">ViewGroup.MarginLayoutParams</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WindowManager.LayoutParams"></A>
+ <nobr><A HREF="android.view.WindowManager.LayoutParams.html">WindowManager.LayoutParams</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.view.inputmethod.html b/docs/html/sdk/api_diff/17/changes/pkg_android.view.inputmethod.html
new file mode 100644
index 0000000..9b00617
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.view.inputmethod.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.view.inputmethod
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/view/inputmethod/package-summary.html" target="_top"><font size="+1"><code>android.view.inputmethod</code></font></A>
+</H2>
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes and Interfaces" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes and Interfaces</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="InputMethodSession"></A>
+ <nobr><A HREF="android.view.inputmethod.InputMethodSession.html"><I>InputMethodSession</I></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="InputMethodSubtype"></A>
+ <nobr><A HREF="android.view.inputmethod.InputMethodSubtype.html">InputMethodSubtype</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.webkit.html b/docs/html/sdk/api_diff/17/changes/pkg_android.webkit.html
new file mode 100644
index 0000000..551d55e
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.webkit.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.webkit
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/webkit/package-summary.html" target="_top"><font size="+1"><code>android.webkit</code></font></A>
+</H2>
+<p>
+<a NAME="Removed"></a>
+<TABLE summary="Removed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Removed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CacheManager"></A>
+ CacheManager
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CacheManager.CacheResult"></A>
+ CacheManager.CacheResult
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="JavascriptInterface"></A>
+ <nobr><A HREF="../../../../reference/android/webkit/JavascriptInterface.html" target="_top"><code>JavascriptInterface</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WebChromeClient"></A>
+ <nobr><A HREF="android.webkit.WebChromeClient.html">WebChromeClient</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WebHistoryItem"></A>
+ <nobr><A HREF="android.webkit.WebHistoryItem.html">WebHistoryItem</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WebSettings"></A>
+ <nobr><A HREF="android.webkit.WebSettings.html">WebSettings</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WebView"></A>
+ <nobr><A HREF="android.webkit.WebView.html">WebView</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="WebViewDatabase"></A>
+ <nobr><A HREF="android.webkit.WebViewDatabase.html">WebViewDatabase</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/changes/pkg_android.widget.html b/docs/html/sdk/api_diff/17/changes/pkg_android.widget.html
new file mode 100644
index 0000000..0942a3f
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/changes/pkg_android.widget.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<HTML style="overflow:auto;">
+<HEAD>
+<meta name="generator" content="JDiff v1.1.0">
+<!-- Generated by the JDiff Javadoc doclet -->
+<!-- (http://www.jdiff.org) -->
+<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
+<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
+<TITLE>
+android.widget
+</TITLE>
+<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
+<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
+<noscript>
+<style type="text/css">
+body{overflow:auto;}
+#body-content{position:relative; top:0;}
+#doc-content{overflow:visible;border-left:3px solid #666;}
+#side-nav{padding:0;}
+#side-nav .toggle-list ul {display:block;}
+#resize-packages-nav{border-bottom:3px solid #666;}
+</style>
+</noscript>
+<style type="text/css">
+</style>
+</HEAD>
+<BODY>
+<!-- Start of nav bar -->
+<a name="top"></a>
+<div id="header" style="margin-bottom:0;padding-bottom:0;">
+<div id="headerLeft">
+<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
+</div>
+ <div id="headerRight">
+ <div id="headerLinks">
+<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
+<span class="text">
+<!-- <a href="#">English</a> | -->
+<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
+</span>
+</div>
+ <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td colspan="2" class="diffspechead">API Diff Specification</td>
+ </tr>
+ <tr>
+ <td class="diffspec" style="padding-top:.25em">To Level:</td>
+ <td class="diffvaluenew" style="padding-top:.25em">17</td>
+ </tr>
+ <tr>
+ <td class="diffspec">From Level:</td>
+ <td class="diffvalueold">16</td>
+ </tr>
+ <tr>
+ <td class="diffspec">Generated</td>
+ <td class="diffvalue">2012.11.12 19:50</td>
+ </tr>
+ </table>
+ </div><!-- End and-diff-id -->
+ <div class="and-diff-id" style="margin-right:8px;">
+ <table class="diffspectable">
+ <tr>
+ <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
+ </tr>
+ </table>
+ </div> <!-- End and-diff-id -->
+ </div> <!-- End headerRight -->
+ </div> <!-- End header -->
+<div id="body-content" xstyle="padding:12px;padding-right:18px;">
+<div id="doc-content" style="position:relative;">
+<div id="mainBodyFluid">
+<H2>
+Package <A HREF="../../../../reference/android/widget/package-summary.html" target="_top"><font size="+1"><code>android.widget</code></font></A>
+</H2>
+<p>
+<a NAME="Added"></a>
+<TABLE summary="Added Classes and Interfaces" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Added Classes and Interfaces</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AutoCompleteTextView.OnDismissListener"></A>
+ <nobr><A HREF="../../../../reference/android/widget/AutoCompleteTextView.OnDismissListener.html" target="_top"><code><I>AutoCompleteTextView.<br>OnDismissListener</I></code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="TextClock"></A>
+ <nobr><A HREF="../../../../reference/android/widget/TextClock.html" target="_top"><code>TextClock</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
+<a NAME="Changed"></a>
+<TABLE summary="Changed Classes" WIDTH="100%">
+<TR>
+ <TH VALIGN="TOP" COLSPAN=2>Changed Classes</FONT></TD>
+</TH>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="AutoCompleteTextView"></A>
+ <nobr><A HREF="android.widget.AutoCompleteTextView.html">AutoCompleteTextView</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="CheckedTextView"></A>
+ <nobr><A HREF="android.widget.CheckedTextView.html">CheckedTextView</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="DigitalClock"></A>
+ <nobr><A HREF="android.widget.DigitalClock.html">DigitalClock</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="RelativeLayout"></A>
+ <nobr><A HREF="android.widget.RelativeLayout.html">RelativeLayout</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="RelativeLayout.LayoutParams"></A>
+ <nobr><A HREF="android.widget.RelativeLayout.LayoutParams.html">RelativeLayout.LayoutParams</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="RemoteViews"></A>
+ <nobr><A HREF="android.widget.RemoteViews.html">RemoteViews</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="SlidingDrawer"></A>
+ <nobr><A HREF="android.widget.SlidingDrawer.html">SlidingDrawer</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="TextView"></A>
+ <nobr><A HREF="android.widget.TextView.html">TextView</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="TwoLineListItem"></A>
+ <nobr><A HREF="android.widget.TwoLineListItem.html">TwoLineListItem</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="VideoView"></A>
+ <nobr><A HREF="android.widget.VideoView.html">VideoView</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ViewAnimator"></A>
+ <nobr><A HREF="android.widget.ViewAnimator.html">ViewAnimator</A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+ </div>
+ <div id="footer">
+ <div id="copyright">
+ Except as noted, this content is licensed under
+ <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
+ For details and restrictions, see the <a href="/license.html">Content License</a>.
+ </div>
+ <div id="footerlinks">
+ <p>
+ <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+ <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+ <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+ </p>
+ </div>
+ </div> <!-- end footer -->
+ </div><!-- end doc-content -->
+ </div> <!-- end body-content -->
+<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("UA-5831155-1");
+ pageTracker._setAllowAnchor(true);
+ pageTracker._initData();
+ pageTracker._trackPageview();
+ } catch(e) {}
+</script>
+</BODY>
+</HTML>
diff --git a/docs/html/sdk/api_diff/17/missingSinces.txt b/docs/html/sdk/api_diff/17/missingSinces.txt
new file mode 100644
index 0000000..b160a74
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/missingSinces.txt
@@ -0,0 +1,348 @@
+NO DOC BLOCK: android.util.AtomicFile Class
+NO DOC BLOCK: android.widget.AutoCompleteTextView.OnDismissListener Interface
+NO DOC BLOCK: android.telephony.CellIdentityCdma Class
+NO DOC BLOCK: android.telephony.CellIdentityGsm Class
+NO DOC BLOCK: android.telephony.CellIdentityLte Class
+NO DOC BLOCK: android.telephony.CellInfo Class
+NO DOC BLOCK: android.telephony.CellInfoCdma Class
+NO DOC BLOCK: android.telephony.CellInfoGsm Class
+NO DOC BLOCK: android.telephony.CellInfoLte Class
+NO DOC BLOCK: android.telephony.CellSignalStrength Class
+NO DOC BLOCK: android.telephony.CellSignalStrengthCdma Class
+NO DOC BLOCK: android.telephony.CellSignalStrengthGsm Class
+NO DOC BLOCK: android.telephony.CellSignalStrengthLte Class
+NO DOC BLOCK: android.opengl.EGL14 Class
+NO DOC BLOCK: android.opengl.EGLConfig Class
+NO DOC BLOCK: android.opengl.EGLContext Class
+NO DOC BLOCK: android.opengl.EGLDisplay Class
+NO DOC BLOCK: android.opengl.EGLObjectHandle Class
+NO DOC BLOCK: android.opengl.EGLSurface Class
+NO DOC BLOCK: android.webkit.JavascriptInterface Class
+NO DOC BLOCK: android.text.style.LocaleSpan Class
+NO DOC BLOCK: android.nfc.tech.NfcBarcode Class
+NO DOC BLOCK: android.app.Presentation Class
+NO DOC BLOCK: android.renderscript.Script.FieldID Class
+NO DOC BLOCK: android.renderscript.Script.KernelID Class
+NO DOC BLOCK: android.renderscript.ScriptGroup Class
+NO DOC BLOCK: android.renderscript.ScriptGroup.Builder Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsic Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsicBlend Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsicBlur Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsicColorMatrix Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsicConvolve3x3 Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsicConvolve5x5 Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsicLUT Class
+NO DOC BLOCK: android.renderscript.ScriptIntrinsicYuvToRGB Class
+NO DOC BLOCK: android.provider.Settings.Global Class
+NO DOC BLOCK: android.widget.TextClock Class
+NO DOC BLOCK: android.os.UserHandle Class
+NO DOC BLOCK: android.os.UserManager Class
+NO DOC BLOCK: android.view.WindowManager.InvalidDisplayException Class
+NO DOC BLOCK: android.net.http.X509TrustManagerExtensions Class
+NO DOC BLOCK: android.view.inputmethod.InputMethodSubtype Constructor (int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)
+NO DOC BLOCK: android.content.pm.ResolveInfo Constructor (android.content.pm.ResolveInfo)
+NO DOC BLOCK: android.view.Gravity Method apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int)
+NO DOC BLOCK: android.view.Gravity Method apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)
+NO DOC BLOCK: android.view.Gravity Method applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int)
+NO DOC BLOCK: android.view.ContextThemeWrapper Method applyOverrideConfiguration(android.content.res.Configuration)
+NO DOC BLOCK: android.appwidget.AppWidgetManager Method bindAppWidgetIdIfAllowed(int, android.content.ComponentName, android.os.Bundle)
+NO DOC BLOCK: android.content.ContentProviderClient Method call(java.lang.String, java.lang.String, android.os.Bundle)
+NO DOC BLOCK: android.telephony.cdma.CdmaCellLocation Method convertQuartSecToDecDegrees(int)
+NO DOC BLOCK: android.graphics.Bitmap Method createBitmap(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)
+NO DOC BLOCK: android.graphics.Bitmap Method createBitmap(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)
+NO DOC BLOCK: android.graphics.Bitmap Method createBitmap(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)
+NO DOC BLOCK: android.content.Context Method createConfigurationContext(android.content.res.Configuration)
+NO DOC BLOCK: android.content.ContextWrapper Method createConfigurationContext(android.content.res.Configuration)
+NO DOC BLOCK: android.test.mock.MockContext Method createConfigurationContext(android.content.res.Configuration)
+NO DOC BLOCK: android.content.Context Method createDisplayContext(android.view.Display)
+NO DOC BLOCK: android.content.ContextWrapper Method createDisplayContext(android.view.Display)
+NO DOC BLOCK: android.test.mock.MockContext Method createDisplayContext(android.view.Display)
+NO DOC BLOCK: android.renderscript.Script Method createFieldID(int, android.renderscript.Element)
+NO DOC BLOCK: android.renderscript.Script Method createKernelID(int, int, android.renderscript.Element, android.renderscript.Element)
+NO DOC BLOCK: android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl Method dispatchGenericMotionEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)
+NO DOC BLOCK: android.view.inputmethod.InputMethodSession Method dispatchGenericMotionEvent(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)
+NO DOC BLOCK: android.os.SystemClock Method elapsedRealtimeNanos()
+NO DOC BLOCK: android.inputmethodservice.InputMethodService Method enableHardwareAcceleration()
+NO DOC BLOCK: android.hardware.Camera Method enableShutterSound(boolean)
+NO DOC BLOCK: android.util.DisplayMetrics Method equals(android.util.DisplayMetrics)
+NO DOC BLOCK: android.util.FloatMath Method exp(float)
+NO DOC BLOCK: android.content.pm.PackageManager Method extendVerificationTimeout(int, int, long)
+NO DOC BLOCK: android.test.mock.MockPackageManager Method extendVerificationTimeout(int, int, long)
+NO DOC BLOCK: android.view.View Method generateViewId()
+NO DOC BLOCK: android.view.Gravity Method getAbsoluteGravity(int, int)
+NO DOC BLOCK: android.telephony.TelephonyManager Method getAllCellInfo()
+NO DOC BLOCK: android.widget.ViewAnimator Method getAnimateFirstView()
+NO DOC BLOCK: android.os.Binder Method getCallingUserHandle()
+NO DOC BLOCK: android.app.Fragment Method getChildFragmentManager()
+NO DOC BLOCK: android.widget.TextView Method getCompoundDrawablesRelative()
+NO DOC BLOCK: android.widget.TextView Method getCompoundPaddingEnd()
+NO DOC BLOCK: android.widget.TextView Method getCompoundPaddingStart()
+NO DOC BLOCK: android.app.PendingIntent Method getCreatorPackage()
+NO DOC BLOCK: android.content.IntentSender Method getCreatorPackage()
+NO DOC BLOCK: android.app.PendingIntent Method getCreatorUid()
+NO DOC BLOCK: android.content.IntentSender Method getCreatorUid()
+NO DOC BLOCK: android.app.PendingIntent Method getCreatorUserHandle()
+NO DOC BLOCK: android.content.IntentSender Method getCreatorUserHandle()
+NO DOC BLOCK: android.webkit.WebSettings Method getDefaultUserAgent(android.content.Context)
+NO DOC BLOCK: android.view.View Method getDisplay()
+NO DOC BLOCK: android.location.Location Method getElapsedRealtimeNanos()
+NO DOC BLOCK: android.view.Display Method getFlags()
+NO DOC BLOCK: android.app.admin.DevicePolicyManager Method getKeyguardDisabledFeatures(android.content.ComponentName)
+NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method getLabeledBy()
+NO DOC BLOCK: android.view.View Method getLabelFor()
+NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method getLabelFor()
+NO DOC BLOCK: android.content.res.Configuration Method getLayoutDirection()
+NO DOC BLOCK: android.view.View Method getLayoutDirection()
+NO DOC BLOCK: android.view.ViewGroup.MarginLayoutParams Method getLayoutDirection()
+NO DOC BLOCK: android.text.TextUtils Method getLayoutDirectionFromLocale(java.util.Locale)
+NO DOC BLOCK: android.view.ViewGroup.MarginLayoutParams Method getMarginEnd()
+NO DOC BLOCK: android.view.ViewGroup.MarginLayoutParams Method getMarginStart()
+NO DOC BLOCK: android.webkit.WebSettings Method getMediaPlaybackRequiresUserGesture()
+NO DOC BLOCK: android.view.Display Method getName()
+NO DOC BLOCK: android.view.View Method getPaddingEnd()
+NO DOC BLOCK: android.view.View Method getPaddingStart()
+NO DOC BLOCK: android.app.Fragment Method getParentFragment()
+NO DOC BLOCK: android.media.MediaRouter.RouteInfo Method getPresentationDisplay()
+NO DOC BLOCK: android.media.AudioManager Method getProperty(java.lang.String)
+NO DOC BLOCK: android.view.Display Method getRealMetrics(android.util.DisplayMetrics)
+NO DOC BLOCK: android.view.Display Method getRealSize(android.graphics.Point)
+NO DOC BLOCK: android.os.RemoteCallbackList Method getRegisteredCallbackCount()
+NO DOC BLOCK: android.view.View Method getTextAlignment()
+NO DOC BLOCK: android.view.View Method getTextDirection()
+NO DOC BLOCK: android.graphics.Paint Method getTextLocale()
+NO DOC BLOCK: android.widget.TextView Method getTextLocale()
+NO DOC BLOCK: android.widget.TextView Method getTotalPaddingEnd()
+NO DOC BLOCK: android.widget.TextView Method getTotalPaddingStart()
+NO DOC BLOCK: android.opengl.GLES20 Method glGetActiveAttrib(int, int, int[], int, int[], int)
+NO DOC BLOCK: android.opengl.GLES20 Method glGetActiveAttrib(int, int, java.nio.IntBuffer, java.nio.IntBuffer)
+NO DOC BLOCK: android.opengl.GLES20 Method glGetActiveUniform(int, int, int[], int, int[], int)
+NO DOC BLOCK: android.opengl.GLES20 Method glGetActiveUniform(int, int, java.nio.IntBuffer, java.nio.IntBuffer)
+NO DOC BLOCK: android.opengl.GLES20 Method glGetShaderSource(int)
+NO DOC BLOCK: android.graphics.Bitmap Method hasMipMap()
+NO DOC BLOCK: android.app.WallpaperManager Method hasResourceWallpaper(int)
+NO DOC BLOCK: android.util.FloatMath Method hypot(float, float)
+NO DOC BLOCK: android.app.Activity Method isDestroyed()
+NO DOC BLOCK: android.app.FragmentManager Method isDestroyed()
+NO DOC BLOCK: android.media.MediaRouter.RouteInfo Method isEnabled()
+NO DOC BLOCK: android.view.ViewGroup.MarginLayoutParams Method isMarginRelative()
+NO DOC BLOCK: android.view.View Method isPaddingRelative()
+NO DOC BLOCK: android.graphics.Bitmap Method isPremultiplied()
+NO DOC BLOCK: android.view.Display Method isValid()
+NO DOC BLOCK: android.os.Process Method myUserHandle()
+NO DOC BLOCK: android.telephony.PhoneStateListener Method onCellInfoChanged(java.util.List<android.telephony.CellInfo>)
+NO DOC BLOCK: android.inputmethodservice.AbstractInputMethodService Method onGenericMotionEvent(android.view.MotionEvent)
+NO DOC BLOCK: android.appwidget.AppWidgetHost Method onProvidersChanged()
+NO DOC BLOCK: android.media.MediaRouter.Callback Method onRoutePresentationDisplayChanged(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)
+NO DOC BLOCK: android.view.View Method onRtlPropertiesChanged(int)
+NO DOC BLOCK: android.app.Fragment Method onViewStateRestored(android.os.Bundle)
+NO DOC BLOCK: android.util.FloatMath Method pow(float, float)
+NO DOC BLOCK: android.widget.RelativeLayout.LayoutParams Method removeRule(int)
+NO DOC BLOCK: android.content.Context Method removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.content.ContextWrapper Method removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.test.mock.MockContext Method removeStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.view.ViewGroup.LayoutParams Method resolveLayoutDirection(int)
+NO DOC BLOCK: android.content.Context Method sendBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.content.Context Method sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String)
+NO DOC BLOCK: android.content.ContextWrapper Method sendBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.content.ContextWrapper Method sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String)
+NO DOC BLOCK: android.test.mock.MockContext Method sendBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.test.mock.MockContext Method sendBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String)
+NO DOC BLOCK: android.content.Context Method sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
+NO DOC BLOCK: android.content.ContextWrapper Method sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
+NO DOC BLOCK: android.test.mock.MockContext Method sendOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
+NO DOC BLOCK: android.content.Context Method sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.content.ContextWrapper Method sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.test.mock.MockContext Method sendStickyBroadcastAsUser(android.content.Intent, android.os.UserHandle)
+NO DOC BLOCK: android.content.Context Method sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
+NO DOC BLOCK: android.content.ContextWrapper Method sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
+NO DOC BLOCK: android.test.mock.MockContext Method sendStickyOrderedBroadcastAsUser(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)
+NO DOC BLOCK: android.widget.TextView Method setCompoundDrawablesRelative(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)
+NO DOC BLOCK: android.widget.TextView Method setCompoundDrawablesRelativeWithIntrinsicBounds(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)
+NO DOC BLOCK: android.widget.TextView Method setCompoundDrawablesRelativeWithIntrinsicBounds(int, int, int, int)
+NO DOC BLOCK: android.location.Location Method setElapsedRealtimeNanos(long)
+NO DOC BLOCK: android.graphics.Bitmap Method setHasMipMap(boolean)
+NO DOC BLOCK: android.net.SSLCertificateSocketFactory Method setHostname(java.net.Socket, java.lang.String)
+NO DOC BLOCK: android.app.admin.DevicePolicyManager Method setKeyguardDisabledFeatures(android.content.ComponentName, int)
+NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method setLabeledBy(android.view.View)
+NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method setLabeledBy(android.view.View, int)
+NO DOC BLOCK: android.view.View Method setLabelFor(int)
+NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method setLabelFor(android.view.View)
+NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method setLabelFor(android.view.View, int)
+NO DOC BLOCK: android.widget.RemoteViews Method setLabelFor(int, int)
+NO DOC BLOCK: android.view.View Method setLayerPaint(android.graphics.Paint)
+NO DOC BLOCK: android.content.res.Configuration Method setLayoutDirection(java.util.Locale)
+NO DOC BLOCK: android.view.View Method setLayoutDirection(int)
+NO DOC BLOCK: android.view.ViewGroup.MarginLayoutParams Method setLayoutDirection(int)
+NO DOC BLOCK: android.content.res.Configuration Method setLocale(java.util.Locale)
+NO DOC BLOCK: android.view.ViewGroup.MarginLayoutParams Method setMarginEnd(int)
+NO DOC BLOCK: android.view.ViewGroup.MarginLayoutParams Method setMarginStart(int)
+NO DOC BLOCK: android.webkit.WebSettings Method setMediaPlaybackRequiresUserGesture(boolean)
+NO DOC BLOCK: android.app.AlertDialog.Builder Method setOnDismissListener(android.content.DialogInterface.OnDismissListener)
+NO DOC BLOCK: android.widget.AutoCompleteTextView Method setOnDismissListener(android.widget.AutoCompleteTextView.OnDismissListener)
+NO DOC BLOCK: android.widget.VideoView Method setOnInfoListener(android.media.MediaPlayer.OnInfoListener)
+NO DOC BLOCK: android.view.View Method setPaddingRelative(int, int, int, int)
+NO DOC BLOCK: android.view.SurfaceView Method setSecure(boolean)
+NO DOC BLOCK: android.app.Notification.Builder Method setShowWhen(boolean)
+NO DOC BLOCK: android.widget.AutoCompleteTextView Method setText(java.lang.CharSequence, boolean)
+NO DOC BLOCK: android.view.View Method setTextAlignment(int)
+NO DOC BLOCK: android.view.View Method setTextDirection(int)
+NO DOC BLOCK: android.graphics.Paint Method setTextLocale(java.util.Locale)
+NO DOC BLOCK: android.widget.TextView Method setTextLocale(java.util.Locale)
+NO DOC BLOCK: android.net.SSLCertificateSocketFactory Method setUseSessionTickets(java.net.Socket, boolean)
+NO DOC BLOCK: android.util.LruCache Method trimToSize(int)
+NO DOC BLOCK: android.os.PowerManager Method wakeUp(long)
+NO DOC BLOCK: android.content.Intent Field ACTION_DREAMING_STARTED
+NO DOC BLOCK: android.content.Intent Field ACTION_DREAMING_STOPPED
+NO DOC BLOCK: android.provider.MediaStore Field ACTION_IMAGE_CAPTURE_SECURE
+NO DOC BLOCK: android.content.Intent Field ACTION_PACKAGE_VERIFIED
+NO DOC BLOCK: android.content.Intent Field ACTION_QUICK_CLOCK
+NO DOC BLOCK: android.content.Intent Field ACTION_USER_BACKGROUND
+NO DOC BLOCK: android.content.Intent Field ACTION_USER_FOREGROUND
+NO DOC BLOCK: android.content.Intent Field ACTION_USER_INITIALIZE
+NO DOC BLOCK: android.Manifest.permission_group Field AFFECTS_BATTERY
+NO DOC BLOCK: android.widget.RelativeLayout Field ALIGN_END
+NO DOC BLOCK: android.widget.RelativeLayout Field ALIGN_PARENT_END
+NO DOC BLOCK: android.widget.RelativeLayout Field ALIGN_PARENT_START
+NO DOC BLOCK: android.widget.RelativeLayout Field ALIGN_START
+NO DOC BLOCK: android.Manifest.permission_group Field APP_INFO
+NO DOC BLOCK: android.Manifest.permission_group Field AUDIO_SETTINGS
+NO DOC BLOCK: android.os.BatteryManager Field BATTERY_PLUGGED_WIRELESS
+NO DOC BLOCK: android.Manifest.permission_group Field BLUETOOTH_NETWORK
+NO DOC BLOCK: android.Manifest.permission_group Field BOOKMARKS
+NO DOC BLOCK: android.Manifest.permission_group Field CALENDAR
+NO DOC BLOCK: android.Manifest.permission_group Field CAMERA
+NO DOC BLOCK: android.hardware.Camera.CameraInfo Field canDisableShutterSound
+NO DOC BLOCK: android.R.attr Field checkedTextViewStyle
+NO DOC BLOCK: android.content.pm.ActivityInfo Field CONFIG_DENSITY
+NO DOC BLOCK: android.content.pm.ActivityInfo Field CONFIG_LAYOUT_DIRECTION
+NO DOC BLOCK: android.content.res.Configuration Field DENSITY_DPI_UNDEFINED
+NO DOC BLOCK: android.content.res.Configuration Field densityDpi
+NO DOC BLOCK: android.Manifest.permission_group Field DEVICE_ALARMS
+NO DOC BLOCK: android.Manifest.permission_group Field DISPLAY
+NO DOC BLOCK: android.content.Context Field DISPLAY_SERVICE
+NO DOC BLOCK: android.widget.RelativeLayout Field END_OF
+NO DOC BLOCK: android.net.ConnectivityManager Field EXTRA_NETWORK_TYPE
+NO DOC BLOCK: android.content.Intent Field EXTRA_ORIGINATING_URI
+NO DOC BLOCK: android.content.Intent Field EXTRA_REFERRER
+NO DOC BLOCK: android.content.pm.PackageManager Field EXTRA_VERIFICATION_RESULT
+NO DOC BLOCK: android.content.pm.PackageManager Field FEATURE_CAMERA_ANY
+NO DOC BLOCK: android.accessibilityservice.AccessibilityServiceInfo Field FEEDBACK_BRAILLE
+NO DOC BLOCK: android.content.pm.PermissionInfo Field FLAG_COSTS_MONEY
+NO DOC BLOCK: android.content.pm.ApplicationInfo Field FLAG_INSTALLED
+NO DOC BLOCK: android.content.pm.ApplicationInfo Field FLAG_IS_DATA_ONLY
+NO DOC BLOCK: android.content.pm.PermissionGroupInfo Field FLAG_PERSONAL_INFO
+NO DOC BLOCK: android.view.Display Field FLAG_SECURE
+NO DOC BLOCK: android.content.pm.ActivityInfo Field FLAG_SINGLE_USER
+NO DOC BLOCK: android.content.pm.ProviderInfo Field FLAG_SINGLE_USER
+NO DOC BLOCK: android.content.pm.ServiceInfo Field FLAG_SINGLE_USER
+NO DOC BLOCK: android.view.Display Field FLAG_SUPPORTS_PROTECTED_BUFFERS
+NO DOC BLOCK: android.content.pm.ApplicationInfo Field FLAG_SUPPORTS_RTL
+NO DOC BLOCK: android.content.pm.PermissionGroupInfo Field flags
+NO DOC BLOCK: android.content.pm.PermissionInfo Field flags
+NO DOC BLOCK: android.content.pm.ProviderInfo Field flags
+NO DOC BLOCK: android.R.attr Field format12Hour
+NO DOC BLOCK: android.R.attr Field format24Hour
+NO DOC BLOCK: android.accessibilityservice.AccessibilityService Field GLOBAL_ACTION_QUICK_SETTINGS
+NO DOC BLOCK: android.R.attr Field initialKeyguardLayout
+NO DOC BLOCK: android.appwidget.AppWidgetProviderInfo Field initialKeyguardLayout
+NO DOC BLOCK: android.provider.MediaStore Field INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE
+NO DOC BLOCK: android.provider.MediaStore Field INTENT_ACTION_TEXT_OPEN_FROM_SEARCH
+NO DOC BLOCK: android.provider.MediaStore Field INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH
+NO DOC BLOCK: android.provider.CalendarContract.EventsColumns Field IS_ORGANIZER
+NO DOC BLOCK: android.provider.CalendarContract.CalendarColumns Field IS_PRIMARY
+NO DOC BLOCK: android.os.Build.VERSION_CODES Field JELLY_BEAN_MR1
+NO DOC BLOCK: android.app.admin.DevicePolicyManager Field KEYGUARD_DISABLE_FEATURES_ALL
+NO DOC BLOCK: android.app.admin.DevicePolicyManager Field KEYGUARD_DISABLE_FEATURES_NONE
+NO DOC BLOCK: android.app.admin.DevicePolicyManager Field KEYGUARD_DISABLE_SECURE_CAMERA
+NO DOC BLOCK: android.app.admin.DevicePolicyManager Field KEYGUARD_DISABLE_WIDGETS_ALL
+NO DOC BLOCK: android.R.attr Field labelFor
+NO DOC BLOCK: android.R.attr Field layout_alignEnd
+NO DOC BLOCK: android.R.attr Field layout_alignParentEnd
+NO DOC BLOCK: android.R.attr Field layout_alignParentStart
+NO DOC BLOCK: android.R.attr Field layout_alignStart
+NO DOC BLOCK: android.view.View Field LAYOUT_DIRECTION_INHERIT
+NO DOC BLOCK: android.view.View Field LAYOUT_DIRECTION_LOCALE
+NO DOC BLOCK: android.view.View Field LAYOUT_DIRECTION_LTR
+NO DOC BLOCK: android.view.View Field LAYOUT_DIRECTION_RTL
+NO DOC BLOCK: android.R.attr Field layout_marginEnd
+NO DOC BLOCK: android.R.attr Field layout_marginStart
+NO DOC BLOCK: android.R.attr Field layout_toEndOf
+NO DOC BLOCK: android.R.attr Field layout_toStartOf
+NO DOC BLOCK: android.R.attr Field layoutDirection
+NO DOC BLOCK: android.provider.CallLog.Calls Field LIMIT_PARAM_KEY
+NO DOC BLOCK: android.telephony.PhoneStateListener Field LISTEN_CELL_INFO
+NO DOC BLOCK: android.R.attr Field listPreferredItemPaddingEnd
+NO DOC BLOCK: android.R.attr Field listPreferredItemPaddingStart
+NO DOC BLOCK: android.content.pm.PackageManager Field MAXIMUM_VERIFICATION_TIMEOUT
+NO DOC BLOCK: android.media.MediaPlayer Field MEDIA_ERROR_IO
+NO DOC BLOCK: android.media.MediaPlayer Field MEDIA_ERROR_MALFORMED
+NO DOC BLOCK: android.media.MediaRecorder Field MEDIA_ERROR_SERVER_DIED
+NO DOC BLOCK: android.media.MediaPlayer Field MEDIA_ERROR_TIMED_OUT
+NO DOC BLOCK: android.media.MediaPlayer Field MEDIA_ERROR_UNSUPPORTED
+NO DOC BLOCK: android.media.MediaPlayer Field MEDIA_INFO_VIDEO_RENDERING_START
+NO DOC BLOCK: android.media.MediaMetadataRetriever Field METADATA_KEY_VIDEO_ROTATION
+NO DOC BLOCK: android.Manifest.permission_group Field MICROPHONE
+NO DOC BLOCK: android.provider.CallLog.Calls Field OFFSET_PARAM_KEY
+NO DOC BLOCK: android.appwidget.AppWidgetManager Field OPTION_APPWIDGET_HOST_CATEGORY
+NO DOC BLOCK: android.R.attr Field paddingEnd
+NO DOC BLOCK: android.R.attr Field paddingStart
+NO DOC BLOCK: android.R.attr Field permissionFlags
+NO DOC BLOCK: android.R.attr Field permissionGroupFlags
+NO DOC BLOCK: android.R.attr Field presentationTheme
+NO DOC BLOCK: android.content.pm.PermissionGroupInfo Field priority
+NO DOC BLOCK: android.media.AudioManager Field PROPERTY_OUTPUT_FRAMES_PER_BUFFER
+NO DOC BLOCK: android.media.AudioManager Field PROPERTY_OUTPUT_SAMPLE_RATE
+NO DOC BLOCK: android.media.MediaRouter Field ROUTE_TYPE_LIVE_VIDEO
+NO DOC BLOCK: android.hardware.Camera.Parameters Field SCENE_MODE_HDR
+NO DOC BLOCK: android.content.res.Configuration Field SCREENLAYOUT_LAYOUTDIR_LTR
+NO DOC BLOCK: android.content.res.Configuration Field SCREENLAYOUT_LAYOUTDIR_MASK
+NO DOC BLOCK: android.content.res.Configuration Field SCREENLAYOUT_LAYOUTDIR_RTL
+NO DOC BLOCK: android.content.res.Configuration Field SCREENLAYOUT_LAYOUTDIR_SHIFT
+NO DOC BLOCK: android.content.res.Configuration Field SCREENLAYOUT_LAYOUTDIR_UNDEFINED
+NO DOC BLOCK: android.content.res.Configuration Field SCREENLAYOUT_UNDEFINED
+NO DOC BLOCK: android.Manifest.permission_group Field SCREENLOCK
+NO DOC BLOCK: android.R.attr Field showOnLockScreen
+NO DOC BLOCK: android.R.attr Field singleUser
+NO DOC BLOCK: android.Manifest.permission_group Field SOCIAL_INFO
+NO DOC BLOCK: android.text.format.DateFormat Field STANDALONE_MONTH
+NO DOC BLOCK: android.widget.RelativeLayout Field START_OF
+NO DOC BLOCK: android.Manifest.permission_group Field STATUS_BAR
+NO DOC BLOCK: android.R.attr Field subtypeId
+NO DOC BLOCK: android.R.attr Field supportsRtl
+NO DOC BLOCK: android.Manifest.permission_group Field SYNC_SETTINGS
+NO DOC BLOCK: android.Manifest.permission_group Field SYSTEM_CLOCK
+NO DOC BLOCK: android.view.View Field TEXT_ALIGNMENT_CENTER
+NO DOC BLOCK: android.view.View Field TEXT_ALIGNMENT_GRAVITY
+NO DOC BLOCK: android.view.View Field TEXT_ALIGNMENT_TEXT_END
+NO DOC BLOCK: android.view.View Field TEXT_ALIGNMENT_TEXT_START
+NO DOC BLOCK: android.view.View Field TEXT_ALIGNMENT_VIEW_END
+NO DOC BLOCK: android.view.View Field TEXT_ALIGNMENT_VIEW_START
+NO DOC BLOCK: android.view.View Field TEXT_DIRECTION_ANY_RTL
+NO DOC BLOCK: android.view.View Field TEXT_DIRECTION_FIRST_STRONG
+NO DOC BLOCK: android.view.View Field TEXT_DIRECTION_INHERIT
+NO DOC BLOCK: android.view.View Field TEXT_DIRECTION_LOCALE
+NO DOC BLOCK: android.view.View Field TEXT_DIRECTION_LTR
+NO DOC BLOCK: android.view.View Field TEXT_DIRECTION_RTL
+NO DOC BLOCK: android.R.attr Field textAlignment
+NO DOC BLOCK: android.R.attr Field textDirection
+NO DOC BLOCK: android.net.wifi.ScanResult Field timestamp
+NO DOC BLOCK: android.R.attr Field timeZone
+NO DOC BLOCK: android.view.accessibility.AccessibilityEvent Field TYPE_GESTURE_DETECTION_END
+NO DOC BLOCK: android.view.accessibility.AccessibilityEvent Field TYPE_GESTURE_DETECTION_START
+NO DOC BLOCK: android.view.accessibility.AccessibilityEvent Field TYPE_TOUCH_INTERACTION_END
+NO DOC BLOCK: android.view.accessibility.AccessibilityEvent Field TYPE_TOUCH_INTERACTION_START
+NO DOC BLOCK: android.provider.CalendarContract.EventsColumns Field UID_2445
+NO DOC BLOCK: android.Manifest.permission_group Field USER_DICTIONARY
+NO DOC BLOCK: android.content.Context Field USER_SERVICE
+NO DOC BLOCK: android.app.admin.DeviceAdminInfo Field USES_POLICY_DISABLE_KEYGUARD_FEATURES
+NO DOC BLOCK: android.Manifest.permission_group Field VOICEMAIL
+NO DOC BLOCK: android.Manifest.permission_group Field WALLPAPER
+NO DOC BLOCK: android.appwidget.AppWidgetProviderInfo Field WIDGET_CATEGORY_HOME_SCREEN
+NO DOC BLOCK: android.appwidget.AppWidgetProviderInfo Field WIDGET_CATEGORY_KEYGUARD
+NO DOC BLOCK: android.R.style Field Widget_DeviceDefault_CheckedTextView
+NO DOC BLOCK: android.R.style Field Widget_DeviceDefault_Light_CheckedTextView
+NO DOC BLOCK: android.R.style Field Widget_Holo_CheckedTextView
+NO DOC BLOCK: android.R.style Field Widget_Holo_Light_CheckedTextView
+NO DOC BLOCK: android.R.attr Field widgetCategory
+NO DOC BLOCK: android.appwidget.AppWidgetProviderInfo Field widgetCategory
+NO DOC BLOCK: android.Manifest.permission_group Field WRITE_USER_DICTIONARY
diff --git a/docs/html/sdk/api_diff/17/stylesheet-jdiff.css b/docs/html/sdk/api_diff/17/stylesheet-jdiff.css
new file mode 100644
index 0000000..edafaa3
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/stylesheet-jdiff.css
@@ -0,0 +1,44 @@
+
+/* (http://www.jdiff.org) */
+
+div.and-diff-id {border: 1px solid #eee;position:relative;float:right;clear:both;padding:0px;}
+table.diffspectable {border:1px;padding:0px;margin:0px;}
+.diffspechead {background-color:#eee;}
+.diffspectable tr {border:0px;padding:0px;}
+.diffspectable td {background-color:eee;border:0px;font-size:90%;font-weight:normal;padding:0px;padding-left:1px;padding-right:1px;text-align:center;color:777;}
+td.diffvalueold {color:orange;background-color:white;border:0px;font-size:80%;font-style:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;}
+td.diffvaluenew {color:green;background-color:white;border:0px;font-size:80%;font-weight:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;}
+td.diffvalue {color:444;background-color:white;border:0px;font-size:80%;font-weight:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;}
+td.diffspec {background-color:white;border:0px;font-size:80%;font-weight:normal;padding:1px;color:444;text-align:right;padding-right:.5em;line-height:.95em;}
+tt {font-size:11pt;font-family:monospace;}
+.indexHeader {
+ font-size:96%;
+ line-height:.8em;}
+.jdiffIndex td {
+ font-size:96%;
+ xline-height:.8em;
+ padding:2px;
+ padding-left:1em;}
+.indexText {
+ font-size:100%;
+ padding-left:1em;}
+#indexTableCaption {
+ font-size:96%;
+ margin-top:.25em;
+ margin-bottom:0;
+ }
+.hiddenlink {
+ font-size:96%;
+ line-height:.8em;
+ text-decoration:none;}
+a {
+ text-decoration:none;}
+a:hover {
+ text-decoration:underline;}
+.indexBox {
+ border: 1px solid red;
+ margin:1em 0 0 0;}
+.letterIndexHead {
+ font-size: 1.5em;font-weight:9;
+ margin:0 0 0em 0;
+ border: 1px solid red;}
diff --git a/docs/html/sdk/api_diff/17/user_comments_for_16_to_17.xml b/docs/html/sdk/api_diff/17/user_comments_for_16_to_17.xml
new file mode 100644
index 0000000..416f6a6
--- /dev/null
+++ b/docs/html/sdk/api_diff/17/user_comments_for_16_to_17.xml
@@ -0,0 +1,3793 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
+<comments
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+ xsi:noNamespaceSchemaLocation='comments.xsd'
+ name="16_to_17"
+ jdversion="1.1.0">
+
+<!-- Use this file to enter an API change description. For example, when you remove a class,
+ you can enter a comment for that class that points developers to the replacement class.
+ You can also provide a change summary for modified API, to give an overview of the changes
+ why they were made, workarounds, etc. -->
+
+<!-- When the API diffs report is generated, the comments in this file get added to the tables of
+ removed, added, and modified packages, classes, methods, and fields. This file does not ship
+ with the final report. -->
+
+<!-- The id attribute in an identifier element identifies the change as noted in the report.
+ An id has the form package[.class[.[ctor|method|field].signature]], where [] indicates optional
+ text. A comment element can have multiple identifier elements, which will will cause the same
+ text to appear at each place in the report, but will be converted to separate comments when the
+ comments file is used. -->
+
+<!-- HTML tags in the text field will appear in the report. You also need to close p HTML elements,
+ used for paragraphs - see the top-level documentation. -->
+
+<!-- You can include standard javadoc links in your change descriptions. You can use the @first command
+ to cause jdiff to include the first line of the API documentation. You also need to close p HTML
+ elements, used for paragraphs - see the top-level documentation. -->
+
+<comment>
+ <identifier id="android"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.AFFECTS_BATTERY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.APP_INFO"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.AUDIO_SETTINGS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.BLUETOOTH_NETWORK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.BOOKMARKS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.CALENDAR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.CAMERA"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.DEVICE_ALARMS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.DISPLAY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.MICROPHONE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.SCREENLOCK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.SOCIAL_INFO"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.STATUS_BAR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.SYNC_SETTINGS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.SYSTEM_CLOCK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.USER_DICTIONARY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.VOICEMAIL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.WALLPAPER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.Manifest.permission_group.WRITE_USER_DICTIONARY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.checkedTextViewStyle"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.format12Hour"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.format24Hour"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.initialKeyguardLayout"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.labelFor"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layoutDirection"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_alignEnd"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_alignParentEnd"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_alignParentStart"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_alignStart"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_marginEnd"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_marginStart"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_toEndOf"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.layout_toStartOf"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.listPreferredItemPaddingEnd"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.listPreferredItemPaddingStart"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.paddingEnd"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.paddingStart"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.permissionFlags"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.permissionGroupFlags"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.presentationTheme"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.showOnLockScreen"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.singleUser"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.subtypeId"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.supportsRtl"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.textAlignment"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.textDirection"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.timeZone"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.attr.widgetCategory"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.style"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.style.Widget_DeviceDefault_CheckedTextView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.style.Widget_DeviceDefault_Light_CheckedTextView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.style.Widget_Holo_CheckedTextView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.R.style.Widget_Holo_Light_CheckedTextView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.accessibilityservice"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.accessibilityservice.AccessibilityService"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.accessibilityservice.AccessibilityService.GLOBAL_ACTION_QUICK_SETTINGS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.accessibilityservice.AccessibilityServiceInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_BRAILLE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Activity"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Activity.isDestroyed_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.AlertDialog.Builder"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.AlertDialog.Builder.setOnDismissListener_added(android.content.DialogInterface.OnDismissListener)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Fragment"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Fragment.getChildFragmentManager_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Fragment.getParentFragment_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Fragment.onViewStateRestored_added(android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.FragmentManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.FragmentManager.isDestroyed_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Notification.Builder"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Notification.Builder.setShowWhen_added(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.PendingIntent"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.PendingIntent.getCreatorPackage_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.PendingIntent.getCreatorUid_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.PendingIntent.getCreatorUserHandle_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.PendingIntent.getTargetPackage_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.Presentation"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.WallpaperManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.WallpaperManager.hasResourceWallpaper_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DeviceAdminInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DeviceAdminInfo.USES_POLICY_DISABLE_KEYGUARD_FEATURES"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DevicePolicyManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_ALL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_FEATURES_NONE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DevicePolicyManager.getKeyguardDisabledFeatures_added(android.content.ComponentName)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.app.admin.DevicePolicyManager.setKeyguardDisabledFeatures_added(android.content.ComponentName, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetHost"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetHost.onProvidersChanged_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetManager.bindAppWidgetIdIfAllowed_added(int, android.content.ComponentName, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetProviderInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetProviderInfo.clone_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetProviderInfo.initialKeyguardLayout"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.appwidget.AppWidgetProviderInfo.widgetCategory"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.bluetooth"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.bluetooth.BluetoothA2dp"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.bluetooth.BluetoothA2dp.finalize_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContentProviderClient"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContentProviderClient.call_added(java.lang.String, java.lang.String, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.DISPLAY_SERVICE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.MODE_WORLD_READABLE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.MODE_WORLD_WRITEABLE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.USER_SERVICE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.createConfigurationContext_added(android.content.res.Configuration)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.createDisplayContext_added(android.view.Display)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Context.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.createConfigurationContext_added(android.content.res.Configuration)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.createDisplayContext_added(android.view.Display)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.ContextWrapper.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.ACTION_DREAMING_STARTED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.ACTION_DREAMING_STOPPED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.ACTION_PACKAGE_VERIFIED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.ACTION_QUICK_CLOCK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.ACTION_USER_BACKGROUND"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.ACTION_USER_FOREGROUND"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.ACTION_USER_INITIALIZE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.EXTRA_ORIGINATING_URI"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.Intent.EXTRA_REFERRER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.IntentSender"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.IntentSender.getCreatorPackage_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.IntentSender.getCreatorUid_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.IntentSender.getCreatorUserHandle_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.IntentSender.getTargetPackage_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ActivityInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ActivityInfo.CONFIG_DENSITY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ActivityInfo.CONFIG_LAYOUT_DIRECTION"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ActivityInfo.FLAG_SINGLE_USER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ApplicationInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ApplicationInfo.FLAG_INSTALLED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ApplicationInfo.FLAG_IS_DATA_ONLY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ApplicationInfo.FLAG_SUPPORTS_RTL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PackageManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PackageManager.EXTRA_VERIFICATION_RESULT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PackageManager.FEATURE_CAMERA_ANY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PackageManager.MAXIMUM_VERIFICATION_TIMEOUT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PackageManager.extendVerificationTimeout_added(int, int, long)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PermissionGroupInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PermissionGroupInfo.FLAG_PERSONAL_INFO"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PermissionGroupInfo.flags"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PermissionGroupInfo.priority"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PermissionInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PermissionInfo.FLAG_COSTS_MONEY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.PermissionInfo.flags"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ProviderInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ProviderInfo.FLAG_SINGLE_USER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ProviderInfo.flags"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ResolveInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ResolveInfo.ctor_added(android.content.pm.ResolveInfo)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ServiceInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.pm.ServiceInfo.FLAG_SINGLE_USER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.DENSITY_DPI_UNDEFINED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_LTR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_MASK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_RTL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_SHIFT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.SCREENLAYOUT_LAYOUTDIR_UNDEFINED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.SCREENLAYOUT_UNDEFINED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.densityDpi"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.getLayoutDirection_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.setLayoutDirection_added(java.util.Locale)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.content.res.Configuration.setLocale_added(java.util.Locale)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.database"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.database.DatabaseUtils.InsertHelper"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.database.DatabaseUtils.InsertHelper.TABLE_INFO_PRAGMA_DEFAULT_INDEX"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Bitmap"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int, int, android.graphics.Bitmap.Config)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, android.graphics.Bitmap.Config)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Bitmap.createBitmap_added(android.util.DisplayMetrics, int[], int, int, int, int, android.graphics.Bitmap.Config)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Bitmap.hasMipMap_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Bitmap.isPremultiplied_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Bitmap.setHasMipMap_added(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Paint"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Paint.getTextLocale_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.graphics.Paint.setTextLocale_added(java.util.Locale)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.Camera"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.Camera.CameraInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.Camera.CameraInfo.canDisableShutterSound"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.Camera.Parameters"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.Camera.Parameters.SCENE_MODE_HDR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.Camera.enableShutterSound_added(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.Sensor"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.hardware.display"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.inputmethodservice"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.inputmethodservice.AbstractInputMethodService"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.inputmethodservice.AbstractInputMethodService.onGenericMotionEvent_added(android.view.MotionEvent)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.inputmethodservice.InputMethodService"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.inputmethodservice.InputMethodService.enableHardwareAcceleration_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.Location"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.Location.getElapsedRealtimeNanos_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.Location.setElapsedRealtimeNanos_added(long)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.getAccuracy_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.getPowerRequirement_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.hasMonetaryCost_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.requiresCell_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.requiresNetwork_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.requiresSatellite_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.supportsAltitude_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.supportsBearing_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.location.LocationProvider.supportsSpeed_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.AudioManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.AudioManager.getProperty_added(java.lang.String)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaMetadataRetriever"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaPlayer"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaPlayer.MEDIA_ERROR_IO"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaPlayer.MEDIA_ERROR_MALFORMED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaPlayer.MEDIA_ERROR_TIMED_OUT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaPlayer.MEDIA_ERROR_UNSUPPORTED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRecorder"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRecorder.MEDIA_ERROR_SERVER_DIED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRouter"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRouter.Callback"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRouter.Callback.onRoutePresentationDisplayChanged_added(android.media.MediaRouter, android.media.MediaRouter.RouteInfo)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRouter.ROUTE_TYPE_LIVE_VIDEO"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRouter.RouteInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRouter.RouteInfo.getPresentationDisplay_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.media.MediaRouter.RouteInfo.isEnabled_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.ConnectivityManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.ConnectivityManager.EXTRA_NETWORK_TYPE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.LocalSocket"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.SSLCertificateSocketFactory"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.SSLCertificateSocketFactory.setHostname_added(java.net.Socket, java.lang.String)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.SSLCertificateSocketFactory.setUseSessionTickets_added(java.net.Socket, boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.http"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.http.X509TrustManagerExtensions"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.wifi"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.wifi.ScanResult"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.net.wifi.ScanResult.timestamp"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.nfc.tech"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.nfc.tech.NfcBarcode"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.EGL14"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.EGLConfig"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.EGLContext"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.EGLDisplay"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.EGLObjectHandle"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.EGLSurface"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.GLES20"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.GLES20.glGetActiveAttrib_added(int, int, int[], int, int[], int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.GLES20.glGetActiveAttrib_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.GLES20.glGetActiveUniform_added(int, int, int[], int, int[], int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.GLES20.glGetActiveUniform_added(int, int, java.nio.IntBuffer, java.nio.IntBuffer)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.opengl.GLES20.glGetShaderSource_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.BatteryManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.Binder"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.Binder.getCallingUserHandle_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.Build.VERSION_CODES"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.Build.VERSION_CODES.JELLY_BEAN_MR1"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.PowerManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.PowerManager.FULL_WAKE_LOCK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.PowerManager.SCREEN_DIM_WAKE_LOCK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.PowerManager.WakeLock"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.PowerManager.wakeUp_added(long)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.Process"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.Process.myUserHandle_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.RemoteCallbackList"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.RemoteCallbackList.getRegisteredCallbackCount_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.SystemClock"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.SystemClock.elapsedRealtimeNanos_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.UserHandle"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.os.UserManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CalendarContract.CalendarColumns"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CalendarContract.CalendarColumns.IS_PRIMARY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CalendarContract.EventsColumns"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CalendarContract.EventsColumns.IS_ORGANIZER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CalendarContract.EventsColumns.UID_2445"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CallLog.Calls"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CallLog.Calls.LIMIT_PARAM_KEY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.CallLog.Calls.OFFSET_PARAM_KEY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.MediaStore"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.MediaStore.ACTION_IMAGE_CAPTURE_SECURE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.MediaStore.INTENT_ACTION_TEXT_OPEN_FROM_SEARCH"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.MediaStore.INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Global"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.ADB_ENABLED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.BLUETOOTH_ON"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.DATA_ROAMING"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.DEVICE_PROVISIONED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.HTTP_PROXY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.INSTALL_NON_MARKET_APPS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.NETWORK_PREFERENCE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.USB_MASS_STORAGE_ENABLED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.USE_GOOGLE_MAIL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.WIFI_MAX_DHCP_RETRY_COUNT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.WIFI_ON"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.Secure.WIFI_WATCHDOG_ON"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.AIRPLANE_MODE_ON"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.AIRPLANE_MODE_RADIOS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.ALWAYS_FINISH_ACTIVITIES"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.ANIMATOR_DURATION_SCALE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.AUTO_TIME"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.AUTO_TIME_ZONE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.DEBUG_APP"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.DIM_SCREEN"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.MODE_RINGER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.RADIO_BLUETOOTH"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.RADIO_CELL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.RADIO_NFC"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.RADIO_WIFI"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.SHOW_PROCESSES"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.STAY_ON_WHILE_PLUGGED_IN"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.TRANSITION_ANIMATION_SCALE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WAIT_FOR_DEBUGGER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WALLPAPER_ACTIVITY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_SLEEP_POLICY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_SLEEP_POLICY_DEFAULT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_STATIC_DNS1"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_STATIC_DNS2"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_STATIC_GATEWAY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_STATIC_IP"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_STATIC_NETMASK"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WIFI_USE_STATIC_IP"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.WINDOW_ANIMATION_SCALE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.getShowGTalkServiceStatus_changed(android.content.ContentResolver)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.provider.Settings.System.setShowGTalkServiceStatus_changed(android.content.ContentResolver, boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.Script"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.Script.FieldID"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.Script.KernelID"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.Script.createFieldID_added(int, android.renderscript.Element)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.Script.createKernelID_added(int, int, android.renderscript.Element, android.renderscript.Element)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptGroup"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptGroup.Builder"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsic"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsicBlend"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsicBlur"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsicColorMatrix"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsicConvolve3x3"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsicConvolve5x5"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsicLUT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.renderscript.ScriptIntrinsicYuvToRGB"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.service.dreams"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellIdentityCdma"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellIdentityGsm"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellIdentityLte"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellInfoCdma"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellInfoGsm"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellInfoLte"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellSignalStrength"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellSignalStrengthCdma"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellSignalStrengthGsm"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.CellSignalStrengthLte"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.PhoneStateListener"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.PhoneStateListener.LISTEN_CELL_INFO"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.PhoneStateListener.onCellInfoChanged_added(java.util.List<android.telephony.CellInfo>)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.TelephonyManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.TelephonyManager.getAllCellInfo_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.cdma"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.cdma.CdmaCellLocation"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.telephony.cdma.CdmaCellLocation.convertQuartSecToDecDegrees_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.createConfigurationContext_added(android.content.res.Configuration)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.createDisplayContext_added(android.view.Display)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.removeStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.sendBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.sendOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, java.lang.String, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.sendStickyBroadcastAsUser_added(android.content.Intent, android.os.UserHandle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockContext.sendStickyOrderedBroadcastAsUser_added(android.content.Intent, android.os.UserHandle, android.content.BroadcastReceiver, android.os.Handler, int, java.lang.String, android.os.Bundle)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockPackageManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.test.mock.MockPackageManager.extendVerificationTimeout_added(int, int, long)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.TextUtils"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.TextUtils.getLayoutDirectionFromLocale_added(java.util.Locale)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.STANDALONE_MONTH"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Calendar)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.format_changed(java.lang.CharSequence, java.util.Date)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.format_changed(java.lang.CharSequence, long)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.getDateFormatOrder_changed(android.content.Context)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.getDateFormat_changed(android.content.Context)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.getLongDateFormat_changed(android.content.Context)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.getMediumDateFormat_changed(android.content.Context)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateFormat.getTimeFormat_changed(android.content.Context)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.ABBREV_MONTH_FORMAT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.FORMAT_12HOUR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.FORMAT_24HOUR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.FORMAT_CAP_AMPM"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.FORMAT_CAP_MIDNIGHT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.FORMAT_CAP_NOON"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.FORMAT_CAP_NOON_MIDNIGHT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.FORMAT_NO_NOON_MIDNIGHT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.HOUR_MINUTE_24"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.LENGTH_LONG"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.LENGTH_MEDIUM"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.LENGTH_SHORT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.LENGTH_SHORTER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.LENGTH_SHORTEST"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.getAMPMString_changed(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.getDayOfWeekString_changed(int, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.getMonthString_changed(int, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.sameMonthTable"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.format.DateUtils.sameYearTable"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.style"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.text.style.LocaleSpan"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.AtomicFile"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.DisplayMetrics"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.DisplayMetrics.equals_added(android.util.DisplayMetrics)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.FloatMath"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.FloatMath.exp_added(float)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.FloatMath.hypot_added(float, float)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.FloatMath.pow_added(float, float)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.LruCache"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.util.LruCache.trimToSize_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ContextThemeWrapper"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ContextThemeWrapper.applyOverrideConfiguration_added(android.content.res.Configuration)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.FLAG_SECURE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.FLAG_SUPPORTS_PROTECTED_BUFFERS"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.getFlags_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.getName_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.getPixelFormat_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.getRealMetrics_added(android.util.DisplayMetrics)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.getRealSize_added(android.graphics.Point)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Display.isValid_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Gravity"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Gravity.applyDisplay_added(int, android.graphics.Rect, android.graphics.Rect, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, android.graphics.Rect, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Gravity.apply_added(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Gravity.getAbsoluteGravity_added(int, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Surface"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.Surface.unlockCanvas_changed(android.graphics.Canvas)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.SurfaceView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.SurfaceView.setSecure_added(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.LAYOUT_DIRECTION_INHERIT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.LAYOUT_DIRECTION_LOCALE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.LAYOUT_DIRECTION_LTR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.LAYOUT_DIRECTION_RTL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_ALIGNMENT_CENTER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_ALIGNMENT_GRAVITY"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_ALIGNMENT_RESOLVED_DEFAULT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_ALIGNMENT_TEXT_END"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_ALIGNMENT_TEXT_START"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_ALIGNMENT_VIEW_END"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_ALIGNMENT_VIEW_START"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_DIRECTION_ANY_RTL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_DIRECTION_FIRST_STRONG"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_DIRECTION_INHERIT"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_DIRECTION_LOCALE"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_DIRECTION_LTR"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.TEXT_DIRECTION_RTL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.generateViewId_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.getDisplay_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.getLabelFor_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.getLayoutDirection_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.getPaddingEnd_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.getPaddingStart_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.getTextAlignment_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.getTextDirection_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.isPaddingRelative_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.onRtlPropertiesChanged_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.setLabelFor_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.setLayerPaint_added(android.graphics.Paint)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.setLayoutDirection_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.setPaddingRelative_added(int, int, int, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.setPaddingRelative_changed(int, int, int, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.setTextAlignment_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.View.setTextDirection_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.LayoutParams"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.LayoutParams.resolveLayoutDirection_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams.getLayoutDirection_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams.getMarginEnd_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams.getMarginStart_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams.isMarginRelative_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams.setLayoutDirection_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams.setMarginEnd_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.ViewGroup.MarginLayoutParams.setMarginStart_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.WindowManager.InvalidDisplayException"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.WindowManager.LayoutParams"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.WindowManager.LayoutParams.FLAG_DITHER"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityEvent"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_END"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_START"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_END"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_START"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityNodeInfo"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityNodeInfo.getLabelFor_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityNodeInfo.getLabeledBy_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityNodeInfo.setLabelFor_added(android.view.View, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.accessibility.AccessibilityNodeInfo.setLabeledBy_added(android.view.View, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.inputmethod"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.inputmethod.InputMethodSession"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.inputmethod.InputMethodSession.dispatchGenericMotionEvent_added(int, android.view.MotionEvent, android.view.inputmethod.InputMethodSession.EventCallback)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.inputmethod.InputMethodSubtype"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.view.inputmethod.InputMethodSubtype.ctor_added(int, int, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.CacheManager"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.CacheManager.CacheResult"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.JavascriptInterface"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebChromeClient"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebChromeClient.onJsTimeout_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebHistoryItem"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebHistoryItem.getId_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.LOAD_NORMAL"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.enableSmoothTransition_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.getDefaultUserAgent_added(android.content.Context)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.getMediaPlaybackRequiresUserGesture_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.getNavDump_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.getUseDoubleTree_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.getUseWebViewBackgroundForOverscrollBackground_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.getUserAgent_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.setEnableSmoothTransition_changed(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.setMediaPlaybackRequiresUserGesture_added(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.setNavDump_removed(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.setUseDoubleTree_removed(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.setUseWebViewBackgroundForOverscrollBackground_removed(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebSettings.setUserAgent_removed(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.canZoomIn_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.canZoomOut_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.ctor_changed(android.content.Context, android.util.AttributeSet, int, boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.debugDump_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.disablePlatformNotifications_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.emulateShiftHeld_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.enablePlatformNotifications_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.getScale_changed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.getVisibleTitleHeight_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.restorePicture_removed(android.os.Bundle, java.io.File)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.savePicture_removed(android.os.Bundle, java.io.File)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.setCertificate_changed(android.net.http.SslCertificate)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebView.setMapTrackballToArrowKeys_changed(boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebViewDatabase"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.webkit.WebViewDatabase.LOGTAG"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.AutoCompleteTextView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.AutoCompleteTextView.OnDismissListener"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.AutoCompleteTextView.setOnDismissListener_added(android.widget.AutoCompleteTextView.OnDismissListener)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.AutoCompleteTextView.setText_added(java.lang.CharSequence, boolean)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.CheckedTextView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.CheckedTextView.onPaddingChanged_removed(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.DigitalClock"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.ALIGN_END"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.ALIGN_PARENT_END"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.ALIGN_PARENT_START"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.ALIGN_START"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.END_OF"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.LayoutParams"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.LayoutParams.removeRule_added(int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RelativeLayout.START_OF"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RemoteViews"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.RemoteViews.setLabelFor_added(int, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.SlidingDrawer"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextClock"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.getCompoundDrawablesRelative_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.getCompoundPaddingEnd_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.getCompoundPaddingStart_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.getTextLocale_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.getTotalPaddingEnd_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.getTotalPaddingStart_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.resetResolvedDrawables_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.resolveDrawables_removed()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.setCompoundDrawablesRelativeWithIntrinsicBounds_added(int, int, int, int)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.setCompoundDrawablesRelative_added(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable, android.graphics.drawable.Drawable)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TextView.setTextLocale_added(java.util.Locale)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.TwoLineListItem"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.VideoView"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.VideoView.setOnInfoListener_added(android.media.MediaPlayer.OnInfoListener)"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.ViewAnimator"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.ViewAnimator.getAnimateFirstView_added()"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+
+</comments>
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index cf85a34..23c102e 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -2,95 +2,332 @@
header.hide=1
page.metaDescription=Download the official Android SDK to develop apps for Android-powered devices.
-sdk.win_installer=installer_r20.0.3-windows.exe
-sdk.win_installer_bytes=70495456
-sdk.win_installer_checksum=cf23b95d0c9cd57fac3c3be253171af4
+sdk.win32_bundle_download=adt-bundle-windows-x86.zip
+sdk.win32_bundle_bytes=417851015
+sdk.win32_bundle_checksum=42d9a6c15113d405a97eed05e6d42e2b
-sdk.win_download=android-sdk_r20.0.3-windows.zip
-sdk.win_bytes=90379469
-sdk.win_checksum=cd895c79201f7f02507eb3c3868a1c5e
+sdk.win64_bundle_download=adt-bundle-windows-x86_64.zip
+sdk.win64_bundle_bytes=417851515
+sdk.win64_bundle_checksum=73bdd1168fce0e36a27255a4335c865d
-sdk.mac_download=android-sdk_r20.0.3-macosx.zip
-sdk.mac_bytes=58218455
-sdk.mac_checksum=07dc88ba2c0817ef178a665d002831bf
+sdk.mac64_bundle_download=adt-bundle-mac-x86_64.zip
+sdk.mac64_bundle_bytes=382957959
+sdk.mac64_bundle_checksum=a320f8bbaee8572a36e68c434564bdd0
-sdk.linux_download=android-sdk_r20.0.3-linux.tgz
-sdk.linux_bytes=82616305
-sdk.linux_checksum=0d53c2c31d6b5d0cf7385bccd0b06c27
+sdk.linux32_bundle_download=adt-bundle-linux-x86.zip
+sdk.linux32_bundle_bytes=411065882
+sdk.linux32_bundle_checksum=39687b06fedfea7487ff0824a4d32ee8
+
+sdk.linux64_bundle_download=adt-bundle-linux-x86_64.zip
+sdk.linux64_bundle_bytes=411217430
+sdk.linux64_bundle_checksum=b0590fe9c1533da9b20ea65525b77677
+
+
+
+sdk.win_installer=installer_r21-windows.exe
+sdk.win_installer_bytes=77523031
+sdk.win_installer_checksum=29ca8cb8f0bc8db627fa2adc2139a3cc
+
+sdk.win_download=android-sdk_r21-windows.zip
+sdk.win_bytes=99093893
+sdk.win_checksum=7311452823470365f7975a545f8a2be4
+
+sdk.mac_download=android-sdk_r21-macosx.zip
+sdk.mac_bytes=65792626
+sdk.mac_checksum=67e46adca90dd18d7291443f6c15d6af
+
+sdk.linux_download=android-sdk_r21-linux.tgz
+sdk.linux_bytes=91378351
+sdk.linux_checksum=7f8d73b629f808cdcfc9f9900bbd7580
+
+
+
+
@jd:body
<style type="text/css">
- .offline { display:none; }
+ .offline {display:none;}
</style>
-<div class="wrap">
-<div class="col-13"> </div><!-- provides top margin for content -->
-<div class="col-7" style="margin-left:0">
- <img src="{@docRoot}images/sdk-cube.png" alt="" />
+
+<div style="position:relative;height:660px;">
+
+
+<div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;">
+<div class="col-13" style="margin:0;"> </div><!-- provides top margin for content -->
+
+<h1 id="tos-header" style="margin-top:0">Get the Android SDK</h1>
+
+
+
+<p class="sdk-terms-intro">Before installing the Android SDK, you must agree to the following terms and conditions.</p>
+
+<div class="sdk-terms" onfocus="this.blur()">
+<h2 class="norule">Terms and Conditions</h2>
+This is the Android Software Development Kit License Agreement
+
+<h3>1. Introduction</h3>
+1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
+
+1.2 “Android” means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+
+<h3>2. Accepting this License Agreement</h3>
+2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.
+
+2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+
+2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
+
+
+<h3>3. SDK License from Google</h3>
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
+
+3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+
+3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+
+<h3>4. Use of the SDK by You</h3>
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+
+<h3>5. Your Developer Credentials</h3>
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+
+<h3>6. Privacy and Information</h3>
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.
+
+
+<h3>7. Third Party Applications</h3>
+7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
+
+
+<h3>8. Using Android APIs</h3>
+8.1 Google Data APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+
+<h3>9. Terminating this License Agreement</h3>
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+(A) you have breached any provision of this License Agreement; or
+(B) Google is required to do so by law; or
+(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or
+(D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
+
+
+<h3>10. DISCLAIMER OF WARRANTIES</h3>
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+
+<h3>11. LIMITATION OF LIABILITY</h3>
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+
+<h3>12. Indemnification</h3>
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
+
+
+<h3>13. Changes to the License Agreement</h3>
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
+
+
+<h3>14. General Legal Terms</h3>
+14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+
+<em>November 13, 2012</em>
</div>
-<div class="col-6" style="margin-right:0;">
-
-<div id="intro" style="position:absolute;width:inherit">
+
+
+<div id="next-steps" style="display:none;position:absolute;width:inherit">
+ <p>Now that you've downloaded the Android SDK, you don't need to return here
+ for SDK updates. The SDK tools allow you to
+ install additional packages and future updates from the SDK Manager.</p>
+ <p>For instructions about setting up your Android SDK for the first time,
+ read <a id="next-link" href="{@docRoot}sdk/installing/bundle.html">Setting
+ Up the ADT Bundle</a>.</p>
+
+</div><!-- end next-steps -->
+
+
+
+<div id="sdk-terms-form">
+<p>
+<input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
+<label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
+</p>
+<p id="bitpicker" style="display:none">
+ <input id="32" onclick="onAgreeChecked()" type="radio" name="bit" value="32">
+ <label for="32">32-bit</label>
+ <input id="64" onclick="onAgreeChecked()" type="radio" name="bit" value="64">
+ <label for="64">64-bit</label>
+</p>
+<p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p>
+</div>
+
+
+
+</div><!-- end TOS -->
+
+
+
+<div class="wrap" id="landing">
+
+<div class="col-13"> </div><!-- provides top margin for content -->
+
+<div class="col-6" style="margin-left:0">
+
<h1 style="margin-top:0">Get the Android SDK</h1>
<p>The Android SDK provides you the API libraries and developer tools necessary to build, test,
and debug apps for Android.</p>
+<p>If you're a new Android developer, we recommend you download the ADT Bundle
+to quickly start developing apps. It includes the essential
+Android SDK components and a version of the Eclipse IDE with built-in
+<b>ADT (Android Developer Tools)</b> to
+streamline your Android app development.</p>
+
+<p>With a single download, the ADT Bundle
+includes everything you need to begin developing apps:</p>
+<ul>
+<li>Eclipse + ADT plugin</li>
+<li>Android SDK Tools</li>
+<li>Android Platform-tools</li>
+<li>The latest Android platform</li>
+<li>The latest Android system image for the emulator</li>
+</ul>
+
+
<!-- this appears when viewing the offline docs -->
<p class="offline">
-To get the latest Android SDK, please visit the web site at <a
+To get the ADT Bundle or stand-alone SDK Tools, please visit the web site at <a
href="http://developer.android.com/sdk/index.html">developer.android.com/sdk/</a>
</p>
+</div>
+
+
+
+<div class="col-7" style="margin-right:0;">
+ <img src="{@docRoot}images/sdk-cube.png" alt="" height=264 />
+
<!-- this appears when viewing the online docs -->
<div class="online">
-<a class="big button" id="download-button" href="" style="display:none" ></a>
+
+<a class="big button subtitle" id="download-bundle-button"
+href="" style="display:none;width:265px;margin:0 auto;display:block" ></a>
+
<p id="not-supported">Choose the SDK package for your OS from the table below.</p>
-<p style="margin-top:20px;font-size:12px"><a href='' onclick="
- if ($('.pax').is(':visible')) {
- $('.pax').slideUp();
- } else {
- $('.reqs').slideUp();
- $('.pax').slideDown();
- }return false;">Other platforms</a> |
- <a href='' onclick="
- if ($('.reqs').is(':visible')) {
- $('.reqs').slideUp();
- } else {
- $('.pax').slideUp();
- $('.reqs').slideDown();
- }return false;">System requirements</a></p>
-</div><!-- end online -->
+</div>
+<!-- end online -->
-</div><!-- end intro -->
+</div><!-- end col-7 -->
-<div id="next-steps" class="online" style="display:none;position:absolute;width:inherit">
- <h1 style="margin-top:0">Get ready to code!</h1>
- <p><em><span id="filename"></span></em> is now downloading...</p>
- <p>You'll soon be developing apps for Android! Once the download completes,
- you need to follow a few steps to set up your environment.</p>
- <p>To continue, follow the guide to <a href="{@docRoot}sdk/installing/index.html">Installing
-the SDK</a>.</p>
-
-</div><!-- end next-steps -->
-
-</div><!-- end col-6 -->
-
-
-<div class="col-13"> </div><!-- provides padding -->
-<div class="col-6 reqs" style="margin-left:0;display:none;font-size:12px">
-<h3>Operating Systems</h3>
+<!-- alternative SDK options -->
+<div class="col-13" style="margin:0;">
+
+<p>If you prefer to use an existing version of Eclipse or another IDE,
+you can instead take a more customized approach to installing
+the Android SDK. See the following instructions.</p>
+
+
+<h4 id="ExistingIDE"><a href='' class="expandable"
+ onclick="toggleExpandable(this,'.myide');hideExpandable('.pax,.reqs');return false;"
+ >USE AN EXISTING IDE</a></h4>
+
+<div class="col-13 myide" style="margin:0 0 15px;display:none;">
+
+<p>If you already have an IDE you want to use for Android app development,
+setting up a new SDK requires that you download the SDK Tools, then
+select additional Android SDK packages to install (such as the Android platform
+and system image). If you'll be using an existing version of Eclipse, then you can add
+the ADT plugin to it.</p>
+ <p>
+<a class="button subtitle" id="download-tools-button" href="" style="display:none" ></a>
+ </p>
+
+
+</div>
+
+
+
+
+
+<h4 id="Requirements"><a href='' class="expandable"
+ onclick="toggleExpandable(this,'.reqs');hideExpandable('.pax,.myide');return false;"
+ >SYSTEM REQUIREMENTS</a></h4>
+
+<div class="col-6 reqs" style="margin:0 0 15px;display:none;">
+<h5>Operating Systems</h5>
<ul>
<li>Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)</li>
<li>Mac OS X 10.5.8 or later (x86 only)</li>
@@ -104,10 +341,10 @@
</ul>
</div>
-<div class="col-7 reqs" style="margin-right:0;display:none;font-size:12px">
-<h3>Eclipse IDE</h3>
+<div class="col-6 reqs" style="margin:0 0 15px 20px;display:none;">
+<h5>Eclipse IDE</h5>
<ul>
- <li>Eclipse 3.6.2 (Helios) or greater
+ <li><a href="http://eclipse.org/mobile/">Eclipse</a> 3.6.2 (Helios) or greater
<p class="note"><strong>Note:</strong> Eclipse 3.5 (Galileo) is no longer
supported with the latest version of ADT.</p></li>
<li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included
@@ -116,29 +353,20 @@
(JRE alone is not sufficient)</li>
<li><a href="{@docRoot}tools/sdk/eclipse-adt.html">Android Development Tools plugin</a>
(recommended)</li>
- <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
+ <li><strong>Not</strong> compatible with GNU Compiler for Java (gcj)</li>
</ul>
-<h3>Other development environments</h3>
+<h5>Other development environments</h5>
<ul>
<li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">JDK 6</a>
(JRE alone is not sufficient)</li>
<li><a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later</li>
<li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
</ul>
- </li>
-</ul>
<p class="note"><strong>Note:</strong> Some Linux distributions may include JDK 1.4 or Gnu Compiler
for Java, both of which are <em>not</em> supported for Android development. </p>
-</div>
+</div><!-- end col-7 reqs -->
-</div>
-
-<script>
- if (location.hash == "#Requirements") {
- $('.reqs').show();
- }
-</script>
diff --git a/docs/html/sdk/installing/adding-packages.jd b/docs/html/sdk/installing/adding-packages.jd
index 65c5d94..2853db1 100644
--- a/docs/html/sdk/installing/adding-packages.jd
+++ b/docs/html/sdk/installing/adding-packages.jd
@@ -1,5 +1,4 @@
page.title=Adding Platforms and Packages
-walkthru=1
@jd:body
@@ -9,8 +8,8 @@
SDK package you've downloaded includes only the SDK Tools. To develop an Android app,
you also need to download at least one Android platform and the latest SDK Platform-tools.</p>
-<p>You can update and install SDK packages at any time using the Android SDK Manager.</p>
-
+<ol>
+<li>Launch the SDK Manager.
<p>If you've used the Windows installer to install the SDK tools, you should already have the
Android SDK Manager open. Otherwise, you can launch the Android SDK Manager in one of the following
ways:</p>
@@ -20,14 +19,18 @@
<li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the
Android SDK, then execute <code>android sdk</code>.</li>
</ul>
+</li>
-<p>When you open the Android SDK Manager, it automatically selects a set of recommended packages.
+<li>When the Android SDK Manager opens, it automatically selects a set of recommended packages,
+as shown in figure 1.
Simply click <strong>Install</strong> to install the recommended packages. The Android SDK Manager
installs the selected packages into
-your Android SDK environment. The following sections describe some of the available SDK
-packages and more about which ones we recommend you install.</p>
+your Android SDK environment.</li>
+</ol>
-<p>Once you have installed your packages, continue to the next page.</p>
+<p>If you install the recommended packages, you're now ready to start developing apps!
+To start developing, read <a href="{@docRoot}training/basics/firstapp/index.html"
+>Building Your First App</a>.</p>
<img src="/images/sdk_manager_packages.png" alt="" />
<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager shows the
@@ -35,49 +38,17 @@
+<h3>Additional information</h3>
-<h2 id="Recommended">Recommended Packages</h2>
+<p>For more information about using the SDK Manager and some of the available packages,
+see the <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> document.</p>
-<p>Here's an outlines of the packages required and those we recommend you use:
-</p>
-
-<dl>
- <dt>SDK Tools</dt>
- <dd><strong>Required.</strong> Your new SDK installation already has the latest version. Make sure
-you keep this up to date.</dd>
- <dt>SDK Platform-tools</dt>
- <dd><strong>Required.</strong> You must install this package when you install the SDK for
-the first time.</dd>
- <dt>SDK Platform</dt>
- <dd><strong>Required.</strong>You must download <em>at least one platform</em> into your
-environment so you're able to compile your application. In order to provide the best user experience
-on the latest devices, we recommend that you use the latest platform version as your build target.
-You'll still be able to run your app on older versions, but you must build against the latest
-version in order to use new features when running on devices with the latest version of Android.
- <p>To get started, download the latest Android version, plus the lowest version you plan
- to support (we recommend Android 2.2 for your lowest version).</p></dd>
- <dt>System Image</dt>
- <dd>Recommended. Although you might have one or more Android-powered devices on which to test
- your app, it's unlikely you have a device for every version of Android your app supports. It's
-a good practice to download system images for all versions of Android your app supports and test
-your app running on them with the <a href="{@docRoot}tools/devices/emulator.html">Android emulator</a>.</dd>
- <dt>Android Support</dt>
- <dd>Recommended. Includes a static library that allows you to use some of the latest
-Android APIs (such as <a href="{@docRoot}guide/components/fragments.html">fragments</a>,
-plus others not included in the framework at all) on devices running
-a platform version as old as Android 1.6. All of the activity templates available when creating
-a new project with the <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin</a>
-require this. For more information, read <a
-href="{@docRoot}tools/extras/support-library.html">Support Library</a>.</dd>
- <dt>SDK Samples</dt>
- <dd>Recommended. The samples give you source code that you can use to learn about
-Android, load as a project and run, or reuse in your own app. Note that multiple
-samples packages are available — one for each Android platform version. When
-you are choosing a samples package to download, select the one whose API Level
-matches the API Level of the Android platform that you plan to use.</dd>
-</dl>
+<p>Everything you need to develop Android apps is on this web site, including <a
+href="{@docRoot}design/index.html">design guidelines</a>,
+<a href="{@docRoot}training/index.html">developer training</a>, <a
+href="{@docRoot}reference/packages.html">API reference</a>, and information
+about how you can <a href="{@docRoot}distribute/index.html">distribute your app</a>.
+For additional resources about developing and distributing your app, see the
+<a href="{@docRoot}support.html">Developer Support Resources</a>.</p>
-<p class="note"><strong>Tip:</strong> For easy access to the SDK tools from a command line, add the
-location of the SDK's <code>tools/</code> and
-<code>platform-tools</code> to your <code>PATH</code> environment variable.</p>
diff --git a/docs/html/sdk/installing/bundle.jd b/docs/html/sdk/installing/bundle.jd
new file mode 100644
index 0000000..1f7da55
--- /dev/null
+++ b/docs/html/sdk/installing/bundle.jd
@@ -0,0 +1,45 @@
+page.title=Setting Up the ADT Bundle
+
+@jd:body
+
+
+<p>The ADT Bundle provides everything you need to start developing apps, including
+a version of the Eclipse IDE with built-in <b>ADT (Android Developer Tools)</b> to
+streamline your Android app development.
+If you haven't already, go download the <a href="{@docRoot}sdk/index.html"
+>Android ADT Bundle</a>. (If you downloaded the SDK Tools only, for use with an
+existing IDE, you should instead read
+<a href="{@docRoot}sdk/installing/index.html">Setting Up an Existing IDE</a>.)</p>
+
+<h3>Install the SDK and Eclipse IDE</h3>
+<ol>
+<li>Unpack the ZIP file
+(named {@code adt-bundle-<os_platform>.zip}) and save it to an appropriate location,
+such as a "Development" directory in your home directory.</li>
+<li>Open the {@code adt-bundle-<os_platform>/eclipse/} directory and launch
+<strong>eclipse</strong>.</li>
+</ol>
+
+<p>That's it! The IDE is already loaded with the Android Developer Tools plugin and
+the SDK is ready to go. To start developing, read <a href="{@docRoot}training/basics/firstapp/index.html"
+>Building Your First App</a>.</p>
+
+<p class="caution"><strong>Caution:</strong> Do not move any of the files or directories
+from the {@code adt-bundle-<os_platform>} directory. If you move the {@code eclipse}
+or {@code sdk} directory, ADT will not be able to locate the SDK and you'll
+need to manually update the ADT preferences.</p>
+
+<h3>Additional information</h3>
+
+<p>As you continue developing apps, you may need to install additional versions
+of Android for the emulator and other packages such as the library for
+Google Play In-app Billing. To install more packages, use
+the <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a>.</p>
+
+<p>Everything you need to develop Android apps is on this web site, including <a
+href="{@docRoot}design/index.html">design guidelines</a>,
+<a href="{@docRoot}training/index.html">developer training</a>, <a
+href="{@docRoot}reference/packages.html">API reference</a>, and information
+about how you can <a href="{@docRoot}distribute/index.html">distribute your app</a>.
+For additional resources about developing and distributing your app, see the
+<a href="{@docRoot}support.html">Developer Support Resources</a>.</p>
\ No newline at end of file
diff --git a/docs/html/sdk/installing/index.jd b/docs/html/sdk/installing/index.jd
index f049191..9d5e8c1 100644
--- a/docs/html/sdk/installing/index.jd
+++ b/docs/html/sdk/installing/index.jd
@@ -1,30 +1,37 @@
-page.title=Installing the SDK
-walkthru=1
+page.title=Setting Up an Existing IDE
@jd:body
-<p>You should have already downloaded the <a href="{@docRoot}sdk/index.html">Android SDK</a>. Now
-you need to set up your development environment.</p>
+<p>You should have already downloaded the <a href="{@docRoot}sdk/index.html#ExistingIDE"
+>Android SDK Tools</a>. (If you downloaded the ADT Bundle, you should instead read
+<a href="{@docRoot}sdk/installing/bundle.html">Setting Up the ADT Bundle</a>.)</p>
-<p>The SDK you've downloaded is not the complete SDK environment. It includes only the core SDK tools, which you can
+<p>The SDK Tools package is not the complete SDK environment. It includes only the core SDK tools, which you can
use to download the rest of the SDK packages (such as the latest system image).</p>
<div id="win" class="docs" style="display:none">
-
+
<h3>Getting started on Windows</h3>
<p>Your download package is an executable file that starts an installer. The installer checks your machine
for required tools, such as the proper Java SE Development Kit (JDK) and installs it if necessary.
The installer then saves the Android SDK Tools into a default location (or you can specify the location).</p>
-<p>Make a note of the name and location of the SDK directory on your system—you will need to
+<ol>
+<li>Double-click the executable ({@code .exe} file) to start the install.</li>
+<li>Make a note of the name and location in which it saves the SDK on your system—you will need to
refer to the SDK directory later, when setting up the ADT plugin and when using
-the SDK tools from the command line.</p>
-
-<p>Once the tools are installed, the installer offers to start the Android SDK Manager. Start it and
-continue with the installation guide by clicking the
-<strong>Next</strong> link on the right.</p>
+the SDK tools from the command line.</li>
+<li>Once the installation completes, the installer offers to start the Android SDK Manager.
+If you'll be using Eclipse, <strong>do not</strong> start the Android SDK Manager,
+and instead move on to <a href="{@docRoot}sdk/installing/installing-adt.html"
+>Installing the Eclipse Plugin</a>.
+<p>If you're using a different IDE,
+start the SDK Manager and read <a href="{@docRoot}sdk/installing/adding-packages.html"
+>Adding Platforms and Packages</a>.</p>
+</li>
+</ol>
</div>
@@ -34,16 +41,20 @@
<h3>Getting started on Mac</h3>
-<p>Your download package is {@code .zip}.
- Unpack it to a safe location on your machine. By default, the SDK files are unpacked
-into a directory named <code>android-sdk-mac_x86</code>.</p>
+<ol>
+<li>Unpack the ZIP file you've downloaded. By default, it's unpacked
+into a directory named <code>android-sdk-mac_x86</code>. Move it to an appropriate location on your machine,
+such as a "Development" directory in your home directory.
<p>Make a note of the name and location of the SDK directory on your system—you will need to
refer to the SDK directory later, when setting up the ADT plugin and when using
the SDK tools from the command line.</p>
-
-<p>Now continue with the installation guide by clicking the
-<strong>Next</strong> link on the right.</p>
+</li>
+<li>If you're using Eclipse, move on to <a href="{@docRoot}sdk/installing/installing-adt.html"
+>Installing the Eclipse Plugin</a>. Otherwise, if you're using a different IDE,
+read <a href="{@docRoot}sdk/installing/adding-packages.html"
+>Adding Platforms and Packages</a>.</li>
+</ol>
</div>
@@ -54,20 +65,27 @@
<h3>Getting started on Linux</h3>
-<p>Your download package is a {@code .tgz}.
- Unpack it to a safe location on your machine. By default, the SDK files are unpacked
-into a directory named <code>android-sdk-linux_x86</code>.</p>
+<ol>
+<li>Unpack the {@code .tgz} file you've downloaded. By default, the SDK files are unpacked
+into a directory named <code>android-sdk-linux_x86</code>. Move it to an appropriate location on your machine,
+such as a "Development" directory in your home directory.
<p>Make a note of the name and location of the SDK directory on your system—you will need to
refer to the SDK directory later, when setting up the ADT plugin and when using
the SDK tools from the command line.</p>
-
-<p>Now continue with the installation guide by clicking the
-<strong>Next</strong> link on the right.</p>
+</li>
+<li>If you're using Eclipse, move on to <a href="{@docRoot}sdk/installing/installing-adt.html"
+>Installing the Eclipse Plugin</a>. Otherwise, if you're using a different IDE,
+read <a href="{@docRoot}sdk/installing/adding-packages.html"
+>Adding Platforms and Packages</a>.</li>
+</ol>
-<h4 id="Troubleshooting">Troubleshooting Ubuntu</h4>
+<h5 id="Troubleshooting"><a href='' class="expandable"
+ onclick="toggleExpandable(this,'#ubuntu-trouble');return false;"
+ >Troubleshooting Ubuntu</a></h5>
+<div id="ubuntu-trouble" style="display:none">
<ul>
<li>If you need help installing and configuring Java on your
development machine, you might find these resources helpful:
@@ -95,10 +113,12 @@
</ol>
</li>
</ul>
+</div><!-- end ubuntu trouble -->
+
</div>
-<p><a href='' onclick='showAll();return false;'>Other platforms</a></p>
+<p style="margin-top:2em;"><a href='' onclick='showAll();return false;'>Information for other platforms</a></p>
<script>
var $osDocs;
diff --git a/docs/html/sdk/installing/installing-adt.jd b/docs/html/sdk/installing/installing-adt.jd
index feec56df..93d1db6 100644
--- a/docs/html/sdk/installing/installing-adt.jd
+++ b/docs/html/sdk/installing/installing-adt.jd
@@ -1,36 +1,27 @@
page.title=Installing the Eclipse Plugin
-walkthru=1
-adt.zip.version=20.0.3
-adt.zip.download=ADT-20.0.3.zip
-adt.zip.bytes=12390954
-adt.zip.checksum=869a536b1c56d0cd920ed9ae259ae619
+adt.zip.version=21.0.0
+adt.zip.download=ADT-21.0.0.zip
+adt.zip.bytes=13556487
+adt.zip.checksum=7db4eaae5df6a34fd853317a2bd8250b
@jd:body
<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT). This plugin is designed to give you a powerful, integrated
+Development Tools (ADT). This plugin provides a powerful, integrated
environment in which to develop Android apps. It extends the capabilities
of Eclipse to let you quickly set up new Android projects, build an app
UI, debug your app, and export signed (or unsigned) app packages (APKs) for distribution.
</p>
-<p>If you will be developing in Eclipse with the ADT Plugin, first make sure that you have a
-suitable version of Eclipse
-installed on your computer as described by the
-<a href="{@docRoot}sdk/index.html#Requirements">system requirements</a>.</p>
-
<p>If you need to install Eclipse, you can download it from <a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a>.
-We recommend the "Eclipse Classic" version. Otherwise, you should use a Java or
-RCP version of Eclipse.</p>
+"http://eclipse.org/mobile/">eclipse.org/mobile</a>.</p>
<p class="note"><strong>Note:</strong> If you prefer to work in a different IDE, you do not need to
install Eclipse or ADT. Instead, you can directly use the SDK tools to build and
-debug your application. So if you're not using Eclipse, continue to the next page by clicking
-the <strong>Next</strong> link on the right.</p>
+debug your application.</p>
@@ -70,59 +61,21 @@
<li>In the "Welcome to Android Development" window that appears, select <strong>Use
existing SDKs</strong>.</li>
<li>Browse and select the location of the Android SDK directory you recently
-downloaded.</li>
+downloaded and unpacked.</li>
<li>Click <strong>Next</strong>.</li>
</ol>
-
-<p>If you haven't encountered any errors, you're done setting up ADT
- and can continue to <a href="{@docRoot}sdk/installing/next.html">Next Steps</a>.</p>
+<p>Your Eclipse IDE is now set up to develop Android apps, but you need to add
+the latest SDK platform tools and an Android platform to your environment.
+To get these packages for your SDK, continue to
+<a href="{@docRoot}sdk/installing/adding-packages.html">Adding Platforms and Packages</a>.</p>
-<h2 id="Updating">Updating the ADT Plugin</h2>
-
-<p>From time to time, a new revision of the ADT Plugin becomes available, with
-new features and bug fixes. Generally, when a new revision of ADT is available,
-you should update to it as soon as convenient. </p>
-
-<p>In some cases, a new revision of ADT will have a dependency on a specific
-revision of the Android SDK Tools. If such dependencies exist, you will need to
-update the SDK Tools package of the SDK after installing the new revision of
-ADT. To update the SDK Tools package, use the Android SDK Manager, as
-described in <a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a>.</p>
-
-<p>To learn about new features of each ADT revision and also any dependencies on
-the SDK Tools, see the listings in the <a href="#notes">Revisions</a>
-section. To determine the version currently installed, open the
-Eclipse Installed Software window using <strong>Help</strong>
-> <strong>Software Updates</strong> and refer to the version listed for
-"Android Development Tools".</p>
-
-<p>Follow the steps below to check whether an update is available and, if so,
-to install it. </p>
-
-<ol>
- <li>Select <strong>Help</strong> > <strong>Check for Updates</strong>.
- <p>If there are no updates available, a dialog will say so and you're done.</p></li>
- <li>If there are updates available, select Android DDMS, Android Development Tools,
- and Android Hierarchy Viewer, then click <strong>Next</strong>.</li>
- <li>In the Update Details dialog, click <strong>Next</strong>.</li>
- <li>Read and accept the license agreement and then click <strong>Finish</strong>.
- This will download and install the latest version of Android DDMS and
- Android Development Tools.</li>
- <li>Restart Eclipse.</li>
-</ol>
-<p>If you encounter problems during the update, remove the existing ADT plugin from Eclipse, then
-perform a fresh installation, using the instructions for <a href="#installing">Installing the ADT
-Plugin</a>.</p>
-
-
-
-<h2 id="Troubleshooting">Troubleshooting</h2>
+<h2 id="Troubleshooting">Troubleshooting Installation</h2>
<p> If you are having trouble downloading the ADT plugin after following the
steps above, here are some suggestions: </p>
diff --git a/docs/html/sdk/installing/next.jd b/docs/html/sdk/installing/next.jd
index b1da7c6..cb974a4 100644
--- a/docs/html/sdk/installing/next.jd
+++ b/docs/html/sdk/installing/next.jd
@@ -1,5 +1,4 @@
page.title=Next Steps
-walkthru=1
@jd:body
diff --git a/docs/html/sdk/terms.jd b/docs/html/sdk/terms.jd
index 2b92a6f..74e5254 100644
--- a/docs/html/sdk/terms.jd
+++ b/docs/html/sdk/terms.jd
@@ -1,207 +1,142 @@
page.title=Terms and Conditions
hide_license_footer=true
+fullpage=1
@jd:body
-<p>This is the Android Software Development Kit License Agreement.</p>
+<div class="wrap" style="width:940px;">
-<h2>
- 1. Introduction
-</h2>
-<p>
- 1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
+<div class="sdk-terms fullsize" onfocus="this.blur()">
+<h1>Terms and Conditions</h1>
-</p>
-<p>
- 1.2 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
-</p>
-<h2>
- 2. Accepting this License Agreement
-</h2>
-<p>
- 2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.
-</p>
-<p>
- 2.2 You can accept this License Agreement by:
-</p>
-<p>
- (A) clicking to accept or agree to this License Agreement, where this option is made available to you; or
-</p>
-<p>
- (B) by actually using the SDK. In this case, you agree that use of the SDK constitutes acceptance of the Licensing Agreement from that point onwards.
-</p>
-<p>
- 2.3 You may not use the SDK and may not accept the Licensing Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
-</p>
-<p>
- 2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the Licensing Agreement or use the SDK on behalf of your employer or other entity.
-</p>
-<h2>
- 3. SDK License from Google
-</h2>
-<p>
- 3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non- assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.
-</p>
-<p>
- 3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+This is the Android Software Development Kit License Agreement
-</p>
-<p>
- 3.3 Except to the extent required by applicable third party licenses, you may not copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK. Except to the extent required by applicable third party licenses, you may not load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
-</p>
-<p>
- 3.4 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
-</p>
-<p>
- 3.5 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
-</p>
-<p>
- 3.6 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
-</p>
-<p>
- 3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
-</p>
-<h2>
- 4. Use of the SDK by You
-</h2>
-<p>
- 4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
-</p>
-<p>
- 4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
-</p>
-<p>
- 4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, your must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
-</p>
-<p>
- 4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.
-</p>
-<p>
- 4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through the Android platform and/or applications for the Android platform, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
-</p>
-<p>
- 4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
-</p>
-<h2>
- 5. Your Developer Credentials
-</h2>
-<p>
- 5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
-</p>
-<h2>
- 6. Privacy and Information
-</h2>
-<p>
- 6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
-</p>
-<p>
- 6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.
-</p>
-<h2>
- 7. Third Party Applications for the Android Platform
-</h2>
-<p>
- 7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
-</p>
-<p>
- 7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
-</p>
-<p>
- 7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
-</p>
-<h2>
- 8. Using Android APIs
-</h2>
-<p>
- 8.1 Google Data APIs
-</p>
-<p>
- 8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
-</p>
-<p>
- 8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+<h3>1. Introduction</h3>
+1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
-</p>
-<h2>
- 9. Terminating this License Agreement
-</h2>
-<p>
- 9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
-</p>
-<p>
- 9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
-</p>
-<p>
- 9.3 Google may at any time, terminate this License Agreement with you if:
-</p>
-<p>
- (A) you have breached any provision of this License Agreement; or
-</p>
-<p>
- (B) Google is required to do so by law; or
-</p>
-<p>
- (C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or
-</p>
-<p>
- (D) Google decides to no longer providing the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
-</p>
-<p>
- 9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
-</p>
-<h2>
- 10. DISCLAIMER OF WARRANTIES
-</h2>
-<p>
- 10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
-</p>
-<p>
- 10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
-</p>
-<p>
- 10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-</p>
-<h2>
- 11. LIMITATION OF LIABILITY
-</h2>
-<p>
- 11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
-</p>
-<h2>
- 12. Indemnification
-</h2>
-<p>
- 12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
-</p>
-<h2>
- 13. Changes to the License Agreement
-</h2>
-<p>
- 13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
-</p>
-<h2>
- 14. General Legal Terms
-</h2>
-<p>
- 14.1 This License Agreement constitute the whole legal agreement between you and Google and govern your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replace any prior agreements between you and Google in relation to the SDK.
-</p>
-<p>
- 14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
-</p>
-<p>
- 14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
-</p>
-<p>
- 14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
-</p>
-<p>
- 14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
-</p>
-<p>
- 14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
-</p>
-<p>
- 14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
-</p>
-<p>
- <em>April 10, 2009</em>
-</p>
\ No newline at end of file
+1.2 “Android” means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+
+<h3>2. Accepting this License Agreement</h3>
+2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.
+
+2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+
+2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
+
+
+<h3>3. SDK License from Google</h3>
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
+
+3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+
+3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+
+<h3>4. Use of the SDK by You</h3>
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+
+<h3>5. Your Developer Credentials</h3>
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+
+<h3>6. Privacy and Information</h3>
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.
+
+
+<h3>7. Third Party Applications</h3>
+7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
+
+
+<h3>8. Using Android APIs</h3>
+8.1 Google Data APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+
+<h3>9. Terminating this License Agreement</h3>
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+(A) you have breached any provision of this License Agreement; or
+(B) Google is required to do so by law; or
+(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or
+(D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
+
+
+<h3>10. DISCLAIMER OF WARRANTIES</h3>
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+
+<h3>11. LIMITATION OF LIABILITY</h3>
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+
+<h3>12. Indemnification</h3>
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
+
+
+<h3>13. Changes to the License Agreement</h3>
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
+
+
+<h3>14. General Legal Terms</h3>
+14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+
+<em>November 13, 2012</em>
+</div>
+
+</div>
\ No newline at end of file
diff --git a/docs/html/sitemap.txt b/docs/html/sitemap.txt
index 6924ef3..a3e17a6 100644
--- a/docs/html/sitemap.txt
+++ b/docs/html/sitemap.txt
@@ -450,7 +450,6 @@
http://developer.android.com/sdk/installing/index.html
http://developer.android.com/sdk/installing/adding-packages.html
http://developer.android.com/sdk/installing/installing-adt.html
-http://developer.android.com/sdk/installing/next.html
http://developer.android.com/sdk/exploring.html
http://developer.android.com/tools/sdk/ndk/index.html
http://developer.android.com/tools/workflow/index.html
diff --git a/docs/html/tools/devices/managing-avds.jd b/docs/html/tools/devices/managing-avds.jd
index 412bd91..10633d2 100644
--- a/docs/html/tools/devices/managing-avds.jd
+++ b/docs/html/tools/devices/managing-avds.jd
@@ -20,8 +20,9 @@
<p>The AVD Manager is an easy to use user interface to manage your AVD (Android Virtual Device)
configurations. An AVD is a device configuration for the Android emulator that allows you to
model different configurations of Android-powered devices. When you start the AVD Manager in Eclipse
- or run the <code>android</code> tool on the command line, you will see the AVD Manager as shown in
- figure 1:</p>
+ or navigate to your SDK's {@code tools/} directory and execute
+ <code>android avd</code>. You will see the AVD Manager as shown in
+ figure 1.</p>
<img src="{@docRoot}images/avd-manager.png">
diff --git a/docs/html/tools/extras/support-library.jd b/docs/html/tools/extras/support-library.jd
index b1e2ea0..08ac172 100644
--- a/docs/html/tools/extras/support-library.jd
+++ b/docs/html/tools/extras/support-library.jd
@@ -46,52 +46,75 @@
<p>The sections below provide notes about successive releases of
the Support Package, as denoted by revision number.</p>
-<script type="text/javascript">
-function toggleDiv(link) {
- var toggleable = $(link).parent();
- if (toggleable.hasClass("closed")) {
- //$(".toggleme", toggleable).slideDown("fast");
- toggleable.removeClass("closed");
- toggleable.addClass("open");
- $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot +
-"assets/images/triangle-opened.png"));
- } else {
- //$(".toggleme", toggleable).slideUp("fast");
- toggleable.removeClass("open");
- toggleable.addClass("closed");
- $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot +
-"assets/images/triangle-closed.png"));
- }
- return false;
-}
-</script>
-<style>
-.toggleable {
-padding: 5px 0 0;
-}
-.toggleme {
- padding: 10px 0 0 20px;
-}
-.toggleable a {
- text-decoration:none;
-}
-.toggleme a {
- text-decoration:underline;
-}
-.toggleable.closed .toggleme {
- display:none;
-}
-#jd-content .toggle-img {
- margin:0 5px 3px 0;
-}
-</style>
+<div class="toggle-content opened">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img" alt=""
+/>Support Package, revision 11</a> <em>(November 2012)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+ <dl>
+ <dt>Changes for v4 support library:</dt>
+ <dd>
+ <ul>
+ <li>User Interface
+ <ul>
+ <li>Added support for nested {@link android.support.v4.app.Fragment} classes.</li>
+ <li>Added improvements to {@link android.support.v4.app.FragmentManager} debugging.
+ </li>
+ <li>Fixed problem in {@link android.support.v4.app.FragmentTabHost} where fragment
+ and tab interaction could result in a {@link android.widget.ListView} state loss.
+ </li>
+ <li>Fixed issue with user-visible hint in
+ {@link android.support.v4.app.FragmentStatePagerAdapter}.</li>
+ <li>Added {@link android.support.v4.view.ViewPager.PageTransformer PageTransformer}
+ interface to {@link android.support.v4.view.ViewPager} to allow applications to
+ supply a custom transition behavior for scrolling.</li>
+ <li>Added new features and fixes to {@link android.support.v4.app.TaskStackBuilder}
+ from current release.</li>
+ <li>Fixed {@link android.support.v4.view.PagerTitleStrip} to correctly track the
+ {@link android.support.v4.view.PagerAdapter} currently in use.</li>
+ <li>Fixed display flickering, positioning, and text clipping problems with
+ {@link android.support.v4.view.PagerTitleStrip}.</li>
+ <li>Fixed {@link android.support.v4.view.PagerTabStrip} to properly respect padding
+ when drawing an underline.</li>
+ </ul>
+ </li>
+ <li>Accessibility
+ <ul>
+ <li>Added support for new accessibility gesture and touch event types in
+ {@link android.support.v4.view.accessibility.AccessibilityEventCompat}.</li>
+ <li>Added support for new accessibility APIs in
+ {@link android.support.v4.view.ViewCompat}.</li>
+ <li>Added support for {@link android.support.v4.view.ViewCompat#performAccessibilityAction
+ performAccessibilityAction()} method to {@link android.support.v4.view.ViewCompat}.
+ </li>
+ </ul>
+ </li>
+ <li>Added support for gestures with {@link android.support.v4.view.GestureDetectorCompat}.
+ </li>
+ <li>Added support for performing atomic operations on files using a new
+ {@link android.support.v4.util.AtomicFile} class.</li>
+ <li>Added support for the full set of {@code make} methods in
+ {@link android.support.v4.content.IntentCompat}.</li>
+ <li>Added {@link android.support.v4.util.LruCache#trimToSize trimToSize()} method in
+ {@link android.support.v4.util.LruCache} utility class.</li>
+ <li>Updated {@link android.support.v4.net.ConnectivityManagerCompat} to get NetworkInfo
+ from a {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}
+ broadcast.</li>
+ </ul>
+ </dd>
+ </dl>
+ </div>
+</div>
-<div class="toggleable opened">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px"
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Support Package, revision 10</a> <em>(August 2012)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 support library:</dt>
<dd>
@@ -105,11 +128,12 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Support Package, revision 9</a> <em>(June 2012)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 support library:</dt>
<dd>
@@ -173,11 +197,12 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Support Package, revision 8</a> <em>(April 2012)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 support library:</dt>
<dd>
@@ -194,11 +219,12 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Support Package, revision 7</a> <em>(March 2012)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 support library:</dt>
<dd>
@@ -209,7 +235,7 @@
new {@link android.widget.ShareActionProvider} in Android 4.0.</li>
<li>Added {@link android.support.v4.app.NavUtils} and {@link
android.support.v4.app.TaskStackBuilder} to provide support for implementing the
-<a href="{@docRoot}design/index.html">Android Design</a> guidelines for navigation. These
+<a href="{@docRoot}design/index.html">Android Design</a> guidelines for navigation. These
additions include a way to implement the action bar's <em>Up</em> button across versions.
For an example implementation of this pattern, see the AppNavigation sample in
({@code <em><sdk></em>/samples/<em><platform></em>/AppNavigation}).</li>
@@ -222,11 +248,12 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Support Package, revision 6</a> <em>(December 2011)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<p class="note"><strong>Note:</strong> Reference for support library APIs are now available with
the framework references, for example: {@link android.support.v4.app}.</p>
@@ -274,11 +301,12 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Support Package, revision 5</a> <em>(December 2011)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 support library:</dt>
<dd>
@@ -332,11 +360,12 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Support Package, revision 4</a> <em>(October 2011)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 support library:</dt>
<dd>
@@ -373,11 +402,12 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Compatibility Package, revision 3</a> <em>(July 2011)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 support library:</dt>
<dd>
@@ -423,11 +453,12 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Compatibility Package, revision 2</a> <em>(May 2011)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Changes for v4 library:</dt>
<dd>
@@ -442,11 +473,12 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px"
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Compatibility Package, revision 1</a> <em>(March 2011)</em>
- <div class="toggleme">
+ </p>
+ <div class="toggle-content-toggleme">
<p>Initial release with the v4 library.</p>
</div>
</div>
diff --git a/docs/html/tools/help/adt.jd b/docs/html/tools/help/adt.jd
index cd5bc67..18e7443 100644
--- a/docs/html/tools/help/adt.jd
+++ b/docs/html/tools/help/adt.jd
@@ -23,6 +23,7 @@
</li>
<li><a href="#refactoring">Layout Factoring Support</a></li>
+ <li><a href="#Updating">Updating the ADT Plugin</h2>
</ol>
@@ -525,3 +526,46 @@
as a string, place the text cursor in the string and press Ctrl-1 to see the refactoring context
menu.</dd>
</dl>
+
+
+
+
+
+<h2 id="Updating">Updating the ADT Plugin</h2>
+
+<p>From time to time, a new revision of the ADT Plugin becomes available, with
+new features and bug fixes. Generally, when a new revision of ADT is available,
+you should update to it as soon as convenient. </p>
+
+<p>In some cases, a new revision of ADT will have a dependency on a specific
+revision of the Android SDK Tools. If such dependencies exist, you will need to
+update the SDK Tools package of the SDK after installing the new revision of
+ADT. To update the SDK Tools package, use the Android SDK Manager, as
+described in <a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a>.</p>
+
+<p>To learn about new features of each ADT revision and also any dependencies on
+the SDK Tools, see the listings in the <a href="#notes">Revisions</a>
+section. To determine the version currently installed, open the
+Eclipse Installed Software window using <strong>Help</strong>
+> <strong>Software Updates</strong> and refer to the version listed for
+"Android Development Tools".</p>
+
+<p>Follow the steps below to check whether an update is available and, if so,
+to install it. </p>
+
+<ol>
+ <li>Select <strong>Help</strong> > <strong>Check for Updates</strong>.
+ <p>If there are no updates available, a dialog will say so and you're done.</p></li>
+ <li>If there are updates available, select Android DDMS, Android Development Tools,
+ and Android Hierarchy Viewer, then click <strong>Next</strong>.</li>
+ <li>In the Update Details dialog, click <strong>Next</strong>.</li>
+ <li>Read and accept the license agreement and then click <strong>Finish</strong>.
+ This will download and install the latest version of Android DDMS and
+ Android Development Tools.</li>
+ <li>Restart Eclipse.</li>
+</ol>
+
+
+<p>If you encounter problems during the update, remove the existing ADT plugin from Eclipse, then
+perform a fresh installation, using the instructions for <a href="#installing">Installing the ADT
+Plugin</a>.</p>
diff --git a/docs/html/tools/help/android.jd b/docs/html/tools/help/android.jd
index 282c791..19891e8 100644
--- a/docs/html/tools/help/android.jd
+++ b/docs/html/tools/help/android.jd
@@ -280,7 +280,7 @@
</tr>
<tr>
- <td rowspan="3"><code>create-test-project</code></td>
+ <td rowspan="3"><code>create test-project</code></td>
<td><code>-n <name></code></td>
@@ -306,7 +306,7 @@
</tr>
<tr>
- <td rowspan="2"><code>update-test-project</code></td>
+ <td rowspan="2"><code>update test-project</code></td>
<td><code>-p <path></code></td>
@@ -324,7 +324,7 @@
</tr>
<tr>
- <td rowspan="4"><code>create-lib-project</code></td>
+ <td rowspan="4"><code>create lib-project</code></td>
<td><code>-k <packageName></code></td>
@@ -358,7 +358,7 @@
</tr>
<tr>
- <td rowspan="3"><code>update-lib-project</code></td>
+ <td rowspan="3"><code>update lib-project</code></td>
<td><code>-p <path></code></td>
@@ -382,6 +382,30 @@
<td></td>
</tr>
+
+ <tr>
+ <td rowspan="3"><code>create uitest-project</code></td>
+ <td><code>-n <name></code></td>
+ <td>The name of the UI test project</td>
+ <td></td>
+ </tr>
+
+ <tr>
+ <td><code>-t <name></code></td>
+
+ <td>Target ID of the UI test project</td>
+
+ <td>Required</td>
+ </tr>
+
+ <tr>
+ <td><code>-p <path></code></td>
+
+ <td>Location path of the UI test project</td>
+
+ <td>Required</td>
+ </tr>
+
</table>
<h3>Update actions</h3>
diff --git a/docs/html/tools/help/avd-manager.jd b/docs/html/tools/help/avd-manager.jd
new file mode 100644
index 0000000..ed90f43
--- /dev/null
+++ b/docs/html/tools/help/avd-manager.jd
@@ -0,0 +1,19 @@
+page.title=AVD Manager
+@jd:body
+
+
+<p>The AVD Manager provides a graphical user interface in which you can create
+and manage Android Virtual Devices (AVDs), which are required by the
+<a href="{@docRoot}tools/help/emulator.html">Android Emulator</a>.</p>
+
+<p>You can launch the AVD Manager in one of the following ways:</p>
+<ul>
+ <li>In Eclipse: select <strong>Window > AVD Manager</strong>, or click
+ the AVD Manager icon in the Eclipse toolbar.</li>
+
+ <li>In other IDEs: Navigate to your SDK's <code>tools/</code> directory and execute
+ <code>android avd</code>.</li>
+</ul>
+
+<p>For more information, see <a href="{@docRoot}tools/devices/managing-avds.html">Managing
+AVDs with AVD Manager</a>.
diff --git a/docs/html/tools/help/jobb.jd b/docs/html/tools/help/jobb.jd
new file mode 100644
index 0000000..d390ac9
--- /dev/null
+++ b/docs/html/tools/help/jobb.jd
@@ -0,0 +1,102 @@
+page.title=JOBB
+@jd:body
+
+
+<p>The {@code jobb} tool allows you to build encrypted and unencrypted APK expansion files in
+ Opaque Binary Blob (OBB) format. You can download and mount these expansion files in your
+ application using {@link android.os.storage.StorageManager} on devices with Android 2.3 (API
+ Level 9) or higher. OBB files are used to provide additional file assets for Android applications
+ (such as graphics, sounds and video), separate from an application's APK file. For more
+ information on using expansion files, see
+ <a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a>.</p>
+
+
+<h2 id="usage">Usage</h2>
+
+<p>The syntax for running {@code jobb} is as follows:</p>
+
+<pre>
+jobb [-d <directory>][-o <filename>][-pn <package>][-pv <version>] \
+ [-k <key>][-ov][-dump <filename>][-v][-about]
+</pre>
+
+<p>You can use the {@code jobb} tool to create an OBB file or extract the contents of an
+existing OBB. The following example command creates an OBB file from source files.</p>
+
+<pre>
+$ jobb -d /temp/assets/ -o my-app-assets.obb -k secret-key -pn com.my.app.package -pv 11
+</pre>
+
+<p>This example shows how to dump (extract) the contents of an existing OBB file:</p>
+
+<pre>
+$ jobb -d /temp/obb-output/ -o my-app-assets.obb -k secret-key
+</pre>
+
+
+<h2 id="options">Options</h2>
+
+<p>The table below lists the command line options for the {@code jobb} tool.</p>
+
+<table>
+ <tr>
+ <th>Option</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>{@code -d <directory>}</td>
+ <td>Set the input directory for creating an OBB file, or the output directory when extracting
+ ({@code -dump}) an existing file. When creating an OBB file, the contents of the specified
+ directory and all its sub-directories are included in the OBB file system.
+ </td>
+ </tr>
+ <tr>
+ <td>{@code -o <filename>}</td>
+ <td>Specify the filename for the OBB file. This parameter is required when
+ creating an OBB and extracting (dumping) its contents.</td>
+ </tr>
+ <tr>
+ <td>{@code -pn <package>}</td>
+ <td>Specify the package name for the application that mounts the OBB file, which corresponds
+ to the {@code package} value specified in your application's manifest. This parameter is
+ required when creating an OBB file.</td>
+ </tr>
+ <tr>
+ <td>{@code -pv <version>}</td>
+ <td>Set the minimum version for the application that can mount the OBB file, which corresponds
+ to the {@code android:versionCode} value in your application's manifest. This parameter is
+ required when creating an OBB file.</td>
+ </tr>
+ <tr>
+ <td>{@code -k <key>}</td>
+ <td>Specify a password for encrypting a new OBB file or decrypting an existing, encypted
+ OBB file.</td>
+ </tr>
+ <tr>
+ <td>{@code -ov}</td>
+ <td>Create OBB file that is an overlay of an existing OBB file structure. This option allows
+ the new package contents to be mounted into the same location as a previous package and is
+ intended for creating patch versions of previously generated OBB files. Files within an
+ overlay OBB file replace files that have the same path.</td>
+ </tr>
+ <tr>
+ <td style="white-space: nowrap">{@code -dump <filename>}</td>
+ <td><p>Extract the contents of the specified OBB file. When using this option, you must also
+ specify the output directory for the contents using the {@code -d <directory>}
+ parameter.</p>
+
+ <p class="note"><strong>Note:</strong> When dumping an existing OBB file, you can omit the
+ {@code -d <directory>} parameter to get a listing of the directories inside the file,
+ without extracting the contents.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>{@code -v}</td>
+ <td>Set verbose output for the tool.</td>
+ </tr>
+ <tr>
+ <td>{@code -about}</td>
+ <td>Display version and help information for the {@code jobb} tool.</td>
+ </tr>
+
+</table>
diff --git a/docs/html/tools/help/sdk-manager.jd b/docs/html/tools/help/sdk-manager.jd
new file mode 100644
index 0000000..4852b21
--- /dev/null
+++ b/docs/html/tools/help/sdk-manager.jd
@@ -0,0 +1,67 @@
+page.title=SDK Manager
+@jd:body
+
+
+<p>The Android SDK separates tools, platforms, and other components into packages you can
+ download using the SDK Manager.</p>
+
+<p>You can launch the SDK Manager in one of the following ways:</p>
+<ul>
+ <li>On Windows, double-click the <code>SDK Manager.exe</code> file at the root of the Android
+SDK directory.</li>
+ <li>On Mac or Linux, open a terminal and navigate to the <code>tools/</code> directory in the
+Android SDK, then execute <code>android sdk</code>.</li>
+</ul>
+
+<p>You can select which packages you want to download by toggling the checkboxes on the left, then
+click <strong>Install</strong> to install the selected packages.</p>
+
+<img src="{@docRoot}images/sdk_manager_packages.png" alt="" />
+<p class="img-caption"><strong>Figure 1.</strong> The Android SDK Manager shows the
+SDK packages that are available, already installed, or for which an update is available.</p>
+
+
+<h2 id="Recommended">Recommended Packages</h2>
+
+<p>Here's an outline of the packages required and those we recommend you use:
+</p>
+
+<dl>
+ <dt>SDK Tools</dt>
+ <dd><strong>Required.</strong> Your new SDK installation already has the latest version. Make sure
+you keep this up to date.</dd>
+ <dt>SDK Platform-tools</dt>
+ <dd><strong>Required.</strong> You must install this package when you install the SDK for
+the first time.</dd>
+ <dt>SDK Platform</dt>
+ <dd><strong>Required.</strong>You must download <em>at least one platform</em> into your
+environment so you're able to compile your application. In order to provide the best user experience
+on the latest devices, we recommend that you use the latest platform version as your build target.
+You'll still be able to run your app on older versions, but you must build against the latest
+version in order to use new features when running on devices with the latest version of Android.
+ <p>To get started, download the latest Android version, plus the lowest version you plan
+ to support (we recommend Android 2.2 for your lowest version).</p></dd>
+ <dt>System Image</dt>
+ <dd>Recommended. Although you might have one or more Android-powered devices on which to test
+ your app, it's unlikely you have a device for every version of Android your app supports. It's
+a good practice to download system images for all versions of Android your app supports and test
+your app running on them with the <a href="{@docRoot}tools/devices/emulator.html">Android emulator</a>.</dd>
+ <dt>Android Support</dt>
+ <dd>Recommended. Includes a static library that allows you to use some of the latest
+Android APIs (such as <a href="{@docRoot}guide/components/fragments.html">fragments</a>,
+plus others not included in the framework at all) on devices running
+a platform version as old as Android 1.6. All of the activity templates available when creating
+a new project with the <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin</a>
+require this. For more information, read <a
+href="{@docRoot}tools/extras/support-library.html">Support Library</a>.</dd>
+ <dt>SDK Samples</dt>
+ <dd>Recommended. The samples give you source code that you can use to learn about
+Android, load as a project and run, or reuse in your own app. Note that multiple
+samples packages are available — one for each Android platform version. When
+you are choosing a samples package to download, select the one whose API Level
+matches the API Level of the Android platform that you plan to use.</dd>
+</dl>
+
+<p class="note"><strong>Tip:</strong> For easy access to the SDK tools from a command line, add the
+location of the SDK's <code>tools/</code> and
+<code>platform-tools</code> to your <code>PATH</code> environment variable.</p>
diff --git a/docs/html/tools/help/uiautomator/IAutomationSupport.jd b/docs/html/tools/help/uiautomator/IAutomationSupport.jd
new file mode 100644
index 0000000..4120f2b
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/IAutomationSupport.jd
@@ -0,0 +1,168 @@
+page.title=IAutomationSupport
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+
+<h2>Class Overview</h2>
+<p>Provides auxiliary support for running test cases
+
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+ abstract
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#sendStatus(int, android.os.Bundle)">sendStatus</a></span>(int resultCode, Bundle status)
+
+ <div class="jd-descrdiv">Allows the running test cases to send out interim status</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<a id="sendStatus(int, android.os.Bundle)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">sendStatus</span>
+ <span class="normal">(int resultCode, Bundle status)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Allows the running test cases to send out interim status</p></div>
+
+ </div>
+</div>
+
+
+
diff --git a/docs/html/tools/help/uiautomator/UiAutomatorTestCase.jd b/docs/html/tools/help/uiautomator/UiAutomatorTestCase.jd
new file mode 100644
index 0000000..48c63ba
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiAutomatorTestCase.jd
@@ -0,0 +1,1402 @@
+page.title=UiAutomatorTestCase
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+<h2>Class Overview</h2>
+<p>UI automation tests should extend this class. This class provides access
+ to the following:
+<ul>
+<li><code><a href="UiDevice.html">UiDevice</a></code> instance</li>
+<li>Bundle for command line parameters</li>
+</ul>
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiAutomatorTestCase()">UiAutomatorTestCase</a></span>()
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="IAutomationSupport.html">IAutomationSupport</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getAutomationSupport()">getAutomationSupport</a></span>()
+
+ <div class="jd-descrdiv">Provides support for running tests to report interim status</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Bundle
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getParams()">getParams</a></span>()
+
+ <div class="jd-descrdiv">Get command line parameters.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiDevice.html">UiDevice</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getUiDevice()">getUiDevice</a></span>()
+
+ <div class="jd-descrdiv">Get current instance of <code><a href="UiDevice.html">UiDevice</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#sleep(long)">sleep</a></span>(long ms)
+
+ <div class="jd-descrdiv">Calls <code><a href="null#sleep(long)">sleep(long)</a></code> to sleep</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-junit.framework.TestCase" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-junit.framework.TestCase-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ junit.framework.TestCase
+
+<div id="inherited-methods-junit.framework.TestCase">
+ <div id="inherited-methods-junit.framework.TestCase-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-junit.framework.TestCase-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">countTestCases</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getName</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ TestResult
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">run</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">run</span>(TestResult arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">runBare</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">setName</span>(String arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-junit.framework.Assert" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-junit.framework.Assert-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ junit.framework.Assert
+
+<div id="inherited-methods-junit.framework.Assert">
+ <div id="inherited-methods-junit.framework.Assert-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-junit.framework.Assert-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(short arg0, short arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, int arg1, int arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, short arg1, short arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(char arg0, char arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, String arg1, String arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(int arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, double arg1, double arg2, double arg3)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, long arg1, long arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(byte arg0, byte arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(Object arg0, Object arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(boolean arg0, boolean arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, float arg1, float arg2, float arg3)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, boolean arg1, boolean arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, String arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(float arg0, float arg1, float arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, byte arg1, byte arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(double arg0, double arg1, double arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, char arg1, char arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(String arg0, Object arg1, Object arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertEquals</span>(long arg0, long arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertFalse</span>(String arg0, boolean arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertFalse</span>(boolean arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertNotNull</span>(String arg0, Object arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertNotNull</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertNotSame</span>(Object arg0, Object arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertNotSame</span>(String arg0, Object arg1, Object arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertNull</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertNull</span>(String arg0, Object arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertSame</span>(Object arg0, Object arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertSame</span>(String arg0, Object arg1, Object arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertTrue</span>(String arg0, boolean arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">assertTrue</span>(boolean arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">fail</span>(String arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">fail</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">failNotEquals</span>(String arg0, Object arg1, Object arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">failNotSame</span>(String arg0, Object arg1, Object arg2)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">failSame</span>(String arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+ static
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">format</span>(String arg0, Object arg1, Object arg2)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">equals</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ Class<?>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getClass</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">hashCode</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notify</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notifyAll</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-junit.framework.Test" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-junit.framework.Test-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ junit.framework.Test
+
+<div id="inherited-methods-junit.framework.Test">
+ <div id="inherited-methods-junit.framework.Test-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-junit.framework.Test-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+ abstract
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">countTestCases</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+ abstract
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">run</span>(TestResult arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<a id="UiAutomatorTestCase()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiAutomatorTestCase</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<a id="getAutomationSupport()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="IAutomationSupport.html">IAutomationSupport</a>
+ </span>
+ <span class="sympad">getAutomationSupport</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Provides support for running tests to report interim status</p></div>
+
+ </div>
+</div>
+
+
+<a id="getParams()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Bundle
+ </span>
+ <span class="sympad">getParams</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get command line parameters. On the command line when passing <code>-e key value</code>
+ pairs, the Bundle will have the key value pairs conveniently available to the
+ tests.
+</p></div>
+
+ </div>
+</div>
+
+
+<a id="getUiDevice()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiDevice.html">UiDevice</a>
+ </span>
+ <span class="sympad">getUiDevice</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get current instance of <code><a href="UiDevice.html">UiDevice</a></code>. Works similar to calling the static
+ <code><a href="UiDevice.html#getInstance()">getInstance()</a></code> from anywhere in the test classes.
+</p></div>
+
+ </div>
+</div>
+
+
+<a id="sleep(long)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">sleep</span>
+ <span class="normal">(long ms)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Calls <code><a href="null#sleep(long)">sleep(long)</a></code> to sleep</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>ms</th>
+ <td>is in milliseconds.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
diff --git a/docs/html/tools/help/uiautomator/UiCollection.jd b/docs/html/tools/help/uiautomator/UiCollection.jd
new file mode 100644
index 0000000..ed92ca7
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiCollection.jd
@@ -0,0 +1,1271 @@
+page.title=UiCollection
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+<p>Used to enumerate a container's user interface (UI) elements for the purpose of counting,
+ or targeting a sub elements by a child's text or description.
+</p>
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiCollection(com.android.uiautomator.core.UiSelector)">UiCollection</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByInstance(com.android.uiautomator.core.UiSelector, int)">getChildByInstance</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this <code><a href="UiSelector.html">UiSelector</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this <code><a href="UiSelector.html">UiSelector</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildCount(com.android.uiautomator.core.UiSelector)">getChildCount</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern)
+
+ <div class="jd-descrdiv">Counts child UI element instances matching the <code>childPattern</code>
+ argument.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.android.uiautomator.core.UiObject" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.android.uiautomator.core.UiObject-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="UiObject.html">com.android.uiautomator.core.UiObject</a>
+
+<div id="inherited-methods-com.android.uiautomator.core.UiObject">
+ <div id="inherited-methods-com.android.uiautomator.core.UiObject-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.android.uiautomator.core.UiObject-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clearTextField()">clearTextField</a></span>()
+
+ <div class="jd-descrdiv">Clears the existing text contents in an editable field.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#click()">click</a></span>()
+
+ <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject and waits for window transitions.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow()">clickAndWaitForNewWindow</a></span>()
+
+ <div class="jd-descrdiv">See <code><a href="UiObject.html#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code>
+ This method is intended to reliably wait for window transitions that would typically take
+ longer than the usual default timeouts.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickBottomRight()">clickBottomRight</a></span>()
+
+ <div class="jd-descrdiv">Clicks the bottom and right corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickTopLeft()">clickTopLeft</a></span>()
+
+ <div class="jd-descrdiv">Clicks the top and left corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#exists()">exists</a></span>()
+
+ <div class="jd-descrdiv">Check if UI element exists.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Rect
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getBounds()">getBounds</a></span>()
+
+ <div class="jd-descrdiv">Returns the UI element's <code>bounds</code> property.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getChild(com.android.uiautomator.core.UiSelector)">getChild</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Creates a new UiObject representing a child UI element of the element currently represented
+ by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getChildCount()">getChildCount</a></span>()
+
+ <div class="jd-descrdiv">Counts the child UI elements immediately under the UI element currently represented by
+ this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getContentDescription()">getContentDescription</a></span>()
+
+ <div class="jd-descrdiv">Reads the <code>content_desc</code> property of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getFromParent(com.android.uiautomator.core.UiSelector)">getFromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Creates a new UiObject representing a child UI element from the parent element currently
+ represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getPackageName()">getPackageName</a></span>()
+
+ <div class="jd-descrdiv">Reads the UI element's <code>package</code> property</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getSelector()">getSelector</a></span>()
+
+ <div class="jd-descrdiv">Debugging helper.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getText()">getText</a></span>()
+
+ <div class="jd-descrdiv">Reads the <code>text</code> property of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Rect
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getVisibleBounds()">getVisibleBounds</a></span>()
+
+ <div class="jd-descrdiv">Returns the visible bounds of the UI element.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isCheckable()">isCheckable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>checkable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isChecked()">isChecked</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>checked</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isClickable()">isClickable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>clickable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isEnabled()">isEnabled</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>enabled</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isFocusable()">isFocusable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>focusable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isFocused()">isFocused</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>focused</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isLongClickable()">isLongClickable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>long-clickable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isScrollable()">isScrollable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>scrollable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isSelected()">isSelected</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>selected</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#longClick()">longClick</a></span>()
+
+ <div class="jd-descrdiv">Long clicks the center of the visible bounds of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#longClickBottomRight()">longClickBottomRight</a></span>()
+
+ <div class="jd-descrdiv">Long clicks bottom and right corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#longClickTopLeft()">longClickTopLeft</a></span>()
+
+ <div class="jd-descrdiv">Long clicks on the top and left corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#setText(java.lang.String)">setText</a></span>(String text)
+
+ <div class="jd-descrdiv">Sets the text in an editable field, after clearing the field's content.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeDown(int)">swipeDown</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object, Also see
+ #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
+ #scrollForward().</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeLeft(int)">swipeLeft</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeRight(int)">swipeRight</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeUp(int)">swipeUp</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#waitForExists(long)">waitForExists</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Waits a specified length of time for a UI element to become visible.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#waitUntilGone(long)">waitUntilGone</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Waits a specified length of time for a UI element to become undetectable.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">equals</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ Class<?>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getClass</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">hashCode</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notify</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notifyAll</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+<a id="UiCollection(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiCollection</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+<a id="getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByDescription</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.
+
+ It looks for any child matching the <code>childPattern</code> argument that has
+ a child UI element anywhere within its sub hierarchy that has content-description text.
+ The returned UiObject will point at the <code>childPattern</code> instance that matched the
+ search and not at the identifying child element that matched the content description.</p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>text</th>
+ <td>String of the identifying child contents of of the <code>childPattern</code></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildByInstance(com.android.uiautomator.core.UiSelector, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByInstance</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this <code><a href="UiSelector.html">UiSelector</a></code>.
+
+ It looks for any child matching the <code>childPattern</code> argument that has
+ a child UI element anywhere within its sub hierarchy that is at the <code>instance</code>
+ specified. The operation is performed only on the visible items and no scrolling is performed
+ in this case.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>instance</th>
+ <td>int the desired matched instance of this <code>childPattern</code></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code>
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByText</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.
+
+ It looks for any child matching the <code>childPattern</code> argument that has
+ a child UI element anywhere within its sub hierarchy that has a text attribute equal to
+ <code>text</code>. The returned UiObject will point at the <code>childPattern</code>
+ instance that matched the search and not at the identifying child element that matched the
+ text attribute.</p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>text</th>
+ <td>String of the identifying child contents of of the <code>childPattern</code></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildCount(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ int
+ </span>
+ <span class="sympad">getChildCount</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern)</span>
+ </h4>
+ <div class="api-level">
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Counts child UI element instances matching the <code>childPattern</code>
+ argument. The method returns the number of matching UI elements that are
+ currently visible. The count does not include items of a scrollable list
+ that are off-screen.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td>a <code><a href="UiSelector.html">UiSelector</a></code> that represents the matching child UI
+ elements to count</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>the number of matched childPattern under the current <code><a href="UiCollection.html">UiCollection</a></code>
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
diff --git a/docs/html/tools/help/uiautomator/UiDevice.jd b/docs/html/tools/help/uiautomator/UiDevice.jd
new file mode 100644
index 0000000..1c8805b
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiDevice.jd
@@ -0,0 +1,3073 @@
+page.title=UiDevice
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+
+<h2>Class Overview</h2>
+<p>UiDevice provides access to state information about the device.
+ You can also use this class to simulate user actions on the device,
+ such as pressing the d-pad or pressing the Home and Menu buttons.</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#clearLastTraversedText()">clearLastTraversedText</a></span>()
+
+ <div class="jd-descrdiv">Clears the text from the last UI traversal event.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#click(int, int)">click</a></span>(int x, int y)
+
+ <div class="jd-descrdiv">Perform a click at arbitrary coordinates specified by the user</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#dumpWindowHierarchy(java.lang.String)">dumpWindowHierarchy</a></span>(String fileName)
+
+ <div class="jd-descrdiv">Helper method used for debugging to dump the current window's layout hierarchy.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#freezeRotation()">freezeRotation</a></span>()
+
+ <div class="jd-descrdiv">Disables the sensors and freezes the device rotation at its
+ current rotation state.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getCurrentActivityName()">getCurrentActivityName</a></span>()
+
+ <div class="jd-descrdiv">
+ <em>
+ This method is deprecated.
+ The results returned should be considered unreliable</em></div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getCurrentPackageName()">getCurrentPackageName</a></span>()
+
+ <div class="jd-descrdiv">Retrieves the name of the last package to report accessibility events.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getDisplayHeight()">getDisplayHeight</a></span>()
+
+ <div class="jd-descrdiv">Gets the height of the display, in pixels.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getDisplayRotation()">getDisplayRotation</a></span>()
+
+ <div class="jd-descrdiv">Returns the current rotation of the display, as defined in Surface@return</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getDisplayWidth()">getDisplayWidth</a></span>()
+
+ <div class="jd-descrdiv">Gets the width of the display, in pixels.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+ static
+
+ <a href="UiDevice.html">UiDevice</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getInstance()">getInstance</a></span>()
+
+ <div class="jd-descrdiv">Retrieves a singleton instance of UiDevice</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getLastTraversedText()">getLastTraversedText</a></span>()
+
+ <div class="jd-descrdiv">Retrieves the text from the last UI traversal event received.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getProductName()">getProductName</a></span>()
+
+ <div class="jd-descrdiv">Retrieves the product name of the device.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#hasAnyWatcherTriggered()">hasAnyWatcherTriggered</a></span>()
+
+ <div class="jd-descrdiv">Checks if any registered <code><a href="UiWatcher.html">UiWatcher</a></code> have triggered.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#hasWatcherTriggered(java.lang.String)">hasWatcherTriggered</a></span>(String watcherName)
+
+ <div class="jd-descrdiv">Checks if a specific registered <code><a href="UiWatcher.html">UiWatcher</a></code> has triggered.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isNaturalOrientation()">isNaturalOrientation</a></span>()
+
+ <div class="jd-descrdiv">Check if the device is in its natural orientation.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isScreenOn()">isScreenOn</a></span>()
+
+ <div class="jd-descrdiv">Checks the power manager if the screen is ON.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressBack()">pressBack</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the BACK button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressDPadCenter()">pressDPadCenter</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the CENTER button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressDPadDown()">pressDPadDown</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the DOWN button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressDPadLeft()">pressDPadLeft</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the LEFT button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressDPadRight()">pressDPadRight</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the RIGHT button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressDPadUp()">pressDPadUp</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the UP button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressDelete()">pressDelete</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the DELETE key.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressEnter()">pressEnter</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the ENTER key.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressHome()">pressHome</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the HOME button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressKeyCode(int)">pressKeyCode</a></span>(int keyCode)
+
+ <div class="jd-descrdiv">Simulates a short press using a key code.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressKeyCode(int, int)">pressKeyCode</a></span>(int keyCode, int metaState)
+
+ <div class="jd-descrdiv">Simulates a short press using a key code.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressMenu()">pressMenu</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the MENU button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressRecentApps()">pressRecentApps</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the Recent Apps button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#pressSearch()">pressSearch</a></span>()
+
+ <div class="jd-descrdiv">Simulates a short press on the SEARCH button.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher</a></span>(String name, <a href="UiWatcher.html">UiWatcher</a> watcher)
+
+ <div class="jd-descrdiv">Registers a <code><a href="UiWatcher.html">UiWatcher</a></code> to run automatically when the testing framework is unable to
+ find a match using a <code><a href="UiSelector.html">UiSelector</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#removeWatcher(java.lang.String)">removeWatcher</a></span>(String name)
+
+ <div class="jd-descrdiv">Removes a previously registered <code><a href="UiWatcher.html">UiWatcher</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#resetWatcherTriggers()">resetWatcherTriggers</a></span>()
+
+ <div class="jd-descrdiv">Resets a <code><a href="UiWatcher.html">UiWatcher</a></code> that has been triggered.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#runWatchers()">runWatchers</a></span>()
+
+ <div class="jd-descrdiv">This method forces all registered watchers to run.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setOrientationLeft()">setOrientationLeft</a></span>()
+
+ <div class="jd-descrdiv">Simulates orienting the device to the left and also freezes rotation
+ by disabling the sensors.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setOrientationNatural()">setOrientationNatural</a></span>()
+
+ <div class="jd-descrdiv">Simulates orienting the device into its natural orientation and also freezes rotation
+ by disabling the sensors.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setOrientationRight()">setOrientationRight</a></span>()
+
+ <div class="jd-descrdiv">Simulates orienting the device to the right and also freezes rotation
+ by disabling the sensors.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#sleep()">sleep</a></span>()
+
+ <div class="jd-descrdiv">This method simply presses the power button if the screen is ON else
+ it does nothing if the screen is already OFF.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#swipe(android.graphics.Point[], int)">swipe</a></span>(Point[] segments, int segmentSteps)
+
+ <div class="jd-descrdiv">Performs a swipe between points in the Point array.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#swipe(int, int, int, int, int)">swipe</a></span>(int startX, int startY, int endX, int endY, int steps)
+
+ <div class="jd-descrdiv">Performs a swipe from one coordinate to another using the number of steps
+ to determine smoothness and speed.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#takeScreenshot(java.io.File, float, int)">takeScreenshot</a></span>(File storePath, float scale, int quality)
+
+ <div class="jd-descrdiv">Take a screenshot of current window and store it as PNG
+
+ The screenshot is adjusted per screen rotation</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#takeScreenshot(java.io.File)">takeScreenshot</a></span>(File storePath)
+
+ <div class="jd-descrdiv">Take a screenshot of current window and store it as PNG
+
+ Default scale of 1.0f (original size) and 90% quality is used
+ The screenshot is adjusted per screen rotation</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#unfreezeRotation()">unfreezeRotation</a></span>()
+
+ <div class="jd-descrdiv">Re-enables the sensors and un-freezes the device rotation allowing its contents
+ to rotate with the device physical rotation.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#waitForIdle(long)">waitForIdle</a></span>(long time)
+
+ <div class="jd-descrdiv">Waits for the current application to idle.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#waitForIdle()">waitForIdle</a></span>()
+
+ <div class="jd-descrdiv">Waits for the current application to idle.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#waitForWindowUpdate(java.lang.String, long)">waitForWindowUpdate</a></span>(String packageName, long timeout)
+
+ <div class="jd-descrdiv">Waits for a window content update event to occur.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#wakeUp()">wakeUp</a></span>()
+
+ <div class="jd-descrdiv">This method simulates pressing the power button if the screen is OFF else
+ it does nothing if the screen is already ON.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">equals</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ Class<?>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getClass</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">hashCode</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notify</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notifyAll</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<a id="clearLastTraversedText()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">clearLastTraversedText</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Clears the text from the last UI traversal event.
+ See <code><a href="#getLastTraversedText()">getLastTraversedText()</a></code>.</p></div>
+
+ </div>
+</div>
+
+
+<a id="click(int, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">click</span>
+ <span class="normal">(int x, int y)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform a click at arbitrary coordinates specified by the user</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>x</th>
+ <td>coordinate</td>
+ </tr>
+ <tr>
+ <th>y</th>
+ <td>coordinate</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the click succeeded else false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="dumpWindowHierarchy(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">dumpWindowHierarchy</span>
+ <span class="normal">(String fileName)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Helper method used for debugging to dump the current window's layout hierarchy.
+ The file root location is /data/local/tmp</p></div>
+
+ </div>
+</div>
+
+
+<a id="freezeRotation()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">freezeRotation</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Disables the sensors and freezes the device rotation at its
+ current rotation state.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getCurrentActivityName()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getCurrentActivityName</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+ <p>
+ <p class="caution">
+ <strong>
+ This method is deprecated.</strong><br/> The results returned should be considered unreliable
+ </p>
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the last activity to report accessibility events.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>String name of activity</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getCurrentPackageName()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getCurrentPackageName</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the name of the last package to report accessibility events.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>String name of package</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getDisplayHeight()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getDisplayHeight</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets the height of the display, in pixels. The size is adjusted based
+ on the current orientation of the display.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>height in pixels or zero on failure</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getDisplayRotation()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getDisplayRotation</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the current rotation of the display, as defined in Surface@return</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="getDisplayWidth()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getDisplayWidth</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets the width of the display, in pixels. The width and height details
+ are reported based on the current orientation of the display.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>width in pixels or zero on failure</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getInstance()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="UiDevice.html">UiDevice</a>
+ </span>
+ <span class="sympad">getInstance</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a singleton instance of UiDevice</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiDevice instance</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getLastTraversedText()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getLastTraversedText</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the text from the last UI traversal event received.
+
+ You can use this method to read the contents in a WebView container
+ because the accessibility framework fires events
+ as each text is highlighted. You can write a test to perform
+ directional arrow presses to focus on different elements inside a WebView,
+ and call this method to get the text from each traversed element.
+ If you are testing a view container that can return a reference to a
+ Document Object Model (DOM) object, your test should use the view's
+ DOM instead.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>text of the last traversal event, else return an empty string</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getProductName()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getProductName</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the product name of the device.
+
+ This method provides information on what type of device the test is running on. This value is
+ the same as returned by invoking #adb shell getprop ro.product.name.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>product name of the device</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="hasAnyWatcherTriggered()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">hasAnyWatcherTriggered</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Checks if any registered <code><a href="UiWatcher.html">UiWatcher</a></code> have triggered.
+
+ See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code>
+ See <code><a href="#hasWatcherTriggered(java.lang.String)">hasWatcherTriggered(String)</a></code></p></div>
+
+ </div>
+</div>
+
+
+<a id="hasWatcherTriggered(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">hasWatcherTriggered</span>
+ <span class="normal">(String watcherName)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Checks if a specific registered <code><a href="UiWatcher.html">UiWatcher</a></code> has triggered.
+ See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code>. If a UiWatcher runs and its
+ <code><a href="UiWatcher.html#checkForCondition()">checkForCondition()</a></code> call returned <code>true</code>, then
+ the UiWatcher is considered triggered. This is helpful if a watcher is detecting errors
+ from ANR or crash dialogs and the test needs to know if a UiWatcher has been triggered.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if triggered else false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isNaturalOrientation()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isNaturalOrientation</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the device is in its natural orientation. This is determined by checking if the
+ orientation is at 0 or 180 degrees.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is in natural orientation</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="isScreenOn()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isScreenOn</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Checks the power manager if the screen is ON.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the screen is ON else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressBack()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressBack</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the BACK button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressDPadCenter()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressDPadCenter</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the CENTER button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressDPadDown()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressDPadDown</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the DOWN button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressDPadLeft()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressDPadLeft</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the LEFT button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressDPadRight()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressDPadRight</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the RIGHT button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressDPadUp()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressDPadUp</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the UP button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressDelete()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressDelete</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the DELETE key.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressEnter()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressEnter</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the ENTER key.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressHome()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressHome</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the HOME button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressKeyCode(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressKeyCode</span>
+ <span class="normal">(int keyCode)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press using a key code.
+
+ See KeyEvent</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressKeyCode(int, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressKeyCode</span>
+ <span class="normal">(int keyCode, int metaState)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press using a key code.
+
+ See KeyEvent.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>keyCode</th>
+ <td>the key code of the event.</td>
+ </tr>
+ <tr>
+ <th>metaState</th>
+ <td>an integer in which each bit set to 1 represents a pressed meta key</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressMenu()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressMenu</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the MENU button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressRecentApps()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressRecentApps</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the Recent Apps button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="pressSearch()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">pressSearch</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates a short press on the SEARCH button.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful, else return false</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">registerWatcher</span>
+ <span class="normal">(String name, <a href="UiWatcher.html">UiWatcher</a> watcher)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Registers a <code><a href="UiWatcher.html">UiWatcher</a></code> to run automatically when the testing framework is unable to
+ find a match using a <code><a href="UiSelector.html">UiSelector</a></code>. See <code><a href="#runWatchers()">runWatchers()</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>name</th>
+ <td>to register the UiWatcher</td>
+ </tr>
+ <tr>
+ <th>watcher</th>
+ <td><code><a href="UiWatcher.html">UiWatcher</a></code></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="removeWatcher(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">removeWatcher</span>
+ <span class="normal">(String name)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Removes a previously registered <code><a href="UiWatcher.html">UiWatcher</a></code>.
+
+ See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>name</th>
+ <td>used to register the UiWatcher</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>UiAutomationException</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="resetWatcherTriggers()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">resetWatcherTriggers</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Resets a <code><a href="UiWatcher.html">UiWatcher</a></code> that has been triggered.
+ If a UiWatcher runs and its <code><a href="UiWatcher.html#checkForCondition()">checkForCondition()</a></code> call
+ returned <code>true</code>, then the UiWatcher is considered triggered.
+ See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code></p></div>
+
+ </div>
+</div>
+
+
+<a id="runWatchers()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">runWatchers</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>This method forces all registered watchers to run.
+ See <code><a href="#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">registerWatcher(String, UiWatcher)</a></code></p></div>
+
+ </div>
+</div>
+
+
+<a id="setOrientationLeft()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setOrientationLeft</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates orienting the device to the left and also freezes rotation
+ by disabling the sensors.
+
+ If you want to un-freeze the rotation and re-enable the sensors
+ see <code><a href="#unfreezeRotation()">unfreezeRotation()</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="setOrientationNatural()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setOrientationNatural</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates orienting the device into its natural orientation and also freezes rotation
+ by disabling the sensors.
+
+ If you want to un-freeze the rotation and re-enable the sensors
+ see <code><a href="#unfreezeRotation()">unfreezeRotation()</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="setOrientationRight()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setOrientationRight</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Simulates orienting the device to the right and also freezes rotation
+ by disabling the sensors.
+
+ If you want to un-freeze the rotation and re-enable the sensors
+ see <code><a href="#unfreezeRotation()">unfreezeRotation()</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="sleep()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">sleep</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>This method simply presses the power button if the screen is ON else
+ it does nothing if the screen is already OFF.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="swipe(android.graphics.Point[], int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">swipe</span>
+ <span class="normal">(Point[] segments, int segmentSteps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe between points in the Point array. Each step execution is throttled
+ to 5ms per step. So for a 100 steps, the swipe will take about 1/2 second to complete</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>segments</th>
+ <td>is Point array containing at least one Point object</td>
+ </tr>
+ <tr>
+ <th>segmentSteps</th>
+ <td>steps to inject between two Points</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on success</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="swipe(int, int, int, int, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">swipe</span>
+ <span class="normal">(int startX, int startY, int endX, int endY, int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe from one coordinate to another using the number of steps
+ to determine smoothness and speed. Each step execution is throttled to 5ms
+ per step. So for a 100 steps, the swipe will take about 1/2 second to complete.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>is the number of move steps sent to the system</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>false if the operation fails or the coordinates are invalid</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="takeScreenshot(java.io.File, float, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">takeScreenshot</span>
+ <span class="normal">(File storePath, float scale, int quality)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Take a screenshot of current window and store it as PNG
+
+ The screenshot is adjusted per screen rotation</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>storePath</th>
+ <td>where the PNG should be written to</td>
+ </tr>
+ <tr>
+ <th>scale</th>
+ <td>scale the screenshot down if needed; 1.0f for original size</td>
+ </tr>
+ <tr>
+ <th>quality</th>
+ <td>quality of the PNG compression; range: 0-100</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if screen shot is created successfully, false otherwise</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="takeScreenshot(java.io.File)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">takeScreenshot</span>
+ <span class="normal">(File storePath)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Take a screenshot of current window and store it as PNG
+
+ Default scale of 1.0f (original size) and 90% quality is used
+ The screenshot is adjusted per screen rotation</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>storePath</th>
+ <td>where the PNG should be written to</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if screen shot is created successfully, false otherwise</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="unfreezeRotation()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">unfreezeRotation</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Re-enables the sensors and un-freezes the device rotation allowing its contents
+ to rotate with the device physical rotation. During a test execution, it is best to
+ keep the device frozen in a specific orientation until the test case execution has completed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="waitForIdle(long)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">waitForIdle</span>
+ <span class="normal">(long time)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Waits for the current application to idle.</p></div>
+
+ </div>
+</div>
+
+
+<a id="waitForIdle()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">waitForIdle</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Waits for the current application to idle.
+ Default wait timeout is 10 seconds</p></div>
+
+ </div>
+</div>
+
+
+<a id="waitForWindowUpdate(java.lang.String, long)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">waitForWindowUpdate</span>
+ <span class="normal">(String packageName, long timeout)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Waits for a window content update event to occur.
+
+ If a package name for the window is specified, but the current window
+ does not have the same package name, the function returns immediately.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>packageName</th>
+ <td>the specified window package name (can be <code>null</code>).
+ If <code>null</code>, a window update from any front-end window will end the wait</td>
+ </tr>
+ <tr>
+ <th>timeout</th>
+ <td>the timeout for the wait</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if a window update occurred, false if timeout has elapsed or if the current
+ window does not have the specified package name</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="wakeUp()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">wakeUp</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>This method simulates pressing the power button if the screen is OFF else
+ it does nothing if the screen is already ON.
+
+ If the screen was OFF and it just got turned ON, this method will insert a 500ms delay
+ to allow the device time to wake up and accept input.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>RemoteException</td>
+ </tr>
+ <tr>
+ <th>RemoteException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+
diff --git a/docs/html/tools/help/uiautomator/UiObject.jd b/docs/html/tools/help/uiautomator/UiObject.jd
new file mode 100644
index 0000000..a22df50
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiObject.jd
@@ -0,0 +1,2687 @@
+page.title=UiObject
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+<p>A UiObject is a representation of a user interface (UI) element. It is not in any way directly bound to a
+ UI element as an object reference. A UiObject holds information to help it
+ locate a matching UI element at runtime based on the <code><a href="UiSelector.html">UiSelector</a></code> properties specified in
+ its constructor. Since a UiObject is a representative for a UI element, it can
+ be reused for different views with matching UI elements.
+</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiObject(com.android.uiautomator.core.UiSelector)">UiObject</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Constructs a UiObject to represent a specific UI element matched by the specified
+ <code><a href="UiSelector.html">UiSelector</a></code> selector properties.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#clearTextField()">clearTextField</a></span>()
+
+ <div class="jd-descrdiv">Clears the existing text contents in an editable field.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#click()">click</a></span>()
+
+ <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject and waits for window transitions.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#clickAndWaitForNewWindow()">clickAndWaitForNewWindow</a></span>()
+
+ <div class="jd-descrdiv">See <code><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code>
+ This method is intended to reliably wait for window transitions that would typically take
+ longer than the usual default timeouts.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#clickBottomRight()">clickBottomRight</a></span>()
+
+ <div class="jd-descrdiv">Clicks the bottom and right corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#clickTopLeft()">clickTopLeft</a></span>()
+
+ <div class="jd-descrdiv">Clicks the top and left corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#exists()">exists</a></span>()
+
+ <div class="jd-descrdiv">Check if UI element exists.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Rect
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getBounds()">getBounds</a></span>()
+
+ <div class="jd-descrdiv">Returns the UI element's <code>bounds</code> property.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChild(com.android.uiautomator.core.UiSelector)">getChild</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Creates a new UiObject representing a child UI element of the element currently represented
+ by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildCount()">getChildCount</a></span>()
+
+ <div class="jd-descrdiv">Counts the child UI elements immediately under the UI element currently represented by
+ this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getContentDescription()">getContentDescription</a></span>()
+
+ <div class="jd-descrdiv">Reads the <code>content_desc</code> property of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getFromParent(com.android.uiautomator.core.UiSelector)">getFromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Creates a new UiObject representing a child UI element from the parent element currently
+ represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getPackageName()">getPackageName</a></span>()
+
+ <div class="jd-descrdiv">Reads the UI element's <code>package</code> property</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getSelector()">getSelector</a></span>()
+
+ <div class="jd-descrdiv">Debugging helper.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getText()">getText</a></span>()
+
+ <div class="jd-descrdiv">Reads the <code>text</code> property of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Rect
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getVisibleBounds()">getVisibleBounds</a></span>()
+
+ <div class="jd-descrdiv">Returns the visible bounds of the UI element.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isCheckable()">isCheckable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>checkable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isChecked()">isChecked</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>checked</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isClickable()">isClickable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>clickable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isEnabled()">isEnabled</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>enabled</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isFocusable()">isFocusable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>focusable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isFocused()">isFocused</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>focused</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isLongClickable()">isLongClickable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>long-clickable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isScrollable()">isScrollable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>scrollable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#isSelected()">isSelected</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>selected</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#longClick()">longClick</a></span>()
+
+ <div class="jd-descrdiv">Long clicks the center of the visible bounds of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#longClickBottomRight()">longClickBottomRight</a></span>()
+
+ <div class="jd-descrdiv">Long clicks bottom and right corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#longClickTopLeft()">longClickTopLeft</a></span>()
+
+ <div class="jd-descrdiv">Long clicks on the top and left corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setText(java.lang.String)">setText</a></span>(String text)
+
+ <div class="jd-descrdiv">Sets the text in an editable field, after clearing the field's content.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#swipeDown(int)">swipeDown</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object, Also see
+ #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
+ #scrollForward().</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#swipeLeft(int)">swipeLeft</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#swipeRight(int)">swipeRight</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#swipeUp(int)">swipeUp</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#waitForExists(long)">waitForExists</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Waits a specified length of time for a UI element to become visible.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#waitUntilGone(long)">waitUntilGone</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Waits a specified length of time for a UI element to become undetectable.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">equals</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ Class<?>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getClass</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">hashCode</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notify</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notifyAll</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<a id="UiObject(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiObject</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constructs a UiObject to represent a specific UI element matched by the specified
+ <code><a href="UiSelector.html">UiSelector</a></code> selector properties.</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<a id="clearTextField()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">clearTextField</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Clears the existing text contents in an editable field.
+
+ The <code><a href="UiSelector.html">UiSelector</a></code> of this object must reference a UI element that is editable.
+
+ When you call this method, the method first sets focus at the start edge of the field.
+ The method then simulates a long-press to select the existing text, and deletes the
+ selected text.
+
+ If a "Select-All" option is displayed, the method will automatically attempt to use it
+ to ensure full text selection.
+
+ Note that it is possible that not all the text in the field is selected; for example,
+ if the text contains separators such as spaces, slashes, at symbol etc.
+ Also, not all editable fields support the long-press functionality.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="click()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">click</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true id successful else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="clickAndWaitForNewWindow(long)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">clickAndWaitForNewWindow</span>
+ <span class="normal">(long timeout)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject and waits for window transitions.
+
+ This method differ from <code><a href="#click()">click()</a></code> only in that this method waits for a
+ a new window transition as a result of the click. Some examples of a window transition:
+ <li>launching a new activity</li>
+ <li>bringing up a pop-up menu</li>
+ <li>bringing up a dialog</li></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>timeout</th>
+ <td>timeout before giving up on waiting for a new window</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the event was triggered, else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="clickAndWaitForNewWindow()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">clickAndWaitForNewWindow</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code>
+ This method is intended to reliably wait for window transitions that would typically take
+ longer than the usual default timeouts.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the event was triggered, else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="clickBottomRight()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">clickBottomRight</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Clicks the bottom and right corner of the UI element</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on success</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>Exception</td>
+ <td></td>
+ </tr>
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="clickTopLeft()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">clickTopLeft</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Clicks the top and left corner of the UI element</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on success</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>Exception</td>
+ <td></td>
+ </tr>
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="exists()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">exists</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if UI element exists.
+
+ This methods performs a <code><a href="#waitForExists(long)">waitForExists(long)</a></code> with zero timeout. This
+ basically returns immediately whether the UI element represented by this UiObject
+ exists or not. If you need to wait longer for this UI element, then see
+ <code><a href="#waitForExists(long)">waitForExists(long)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the UI element represented by this UiObject does exist
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getBounds()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Rect
+ </span>
+ <span class="sympad">getBounds</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the UI element's <code>bounds</code> property. See <code><a href="#getVisibleBounds()">getVisibleBounds()</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Rect</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</div>
+
+
+<a id="getChild(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChild</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a new UiObject representing a child UI element of the element currently represented
+ by this UiObject.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>selector</th>
+ <td>for UI element to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a new UiObject representing the matched UI element
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildCount()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getChildCount</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Counts the child UI elements immediately under the UI element currently represented by
+ this UiObject.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>the count of child UI elements.</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getContentDescription()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getContentDescription</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Reads the <code>content_desc</code> property of the UI element</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>value of node attribute "content_desc"</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getFromParent(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getFromParent</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a new UiObject representing a child UI element from the parent element currently
+ represented by this object. Essentially this is starting the search from the parent
+ element and can also be used to find sibling UI elements to the one currently represented
+ by this UiObject.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>selector</th>
+ <td>for the UI element to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a new UiObject representing the matched UI element</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getPackageName()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getPackageName</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Reads the UI element's <code>package</code> property</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getSelector()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+ final
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">getSelector</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Debugging helper. A test can dump the properties of a selector as a string
+ to its logs if needed. <code>getSelector().toString();</code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiSelector.html">UiSelector</a></code>
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getText()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getText</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Reads the <code>text</code> property of the UI element</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>text value of the current node represented by this UiObject</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td>if no match could be found
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getVisibleBounds()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Rect
+ </span>
+ <span class="sympad">getVisibleBounds</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the visible bounds of the UI element.
+
+ If a portion of the UI element is visible, only the bounds of the visible portion are
+ reported.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Rect</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>UiObjectNotFoundException</td>
+ </tr>
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="isCheckable()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isCheckable</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>checkable</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isChecked()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isChecked</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>checked</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isClickable()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isClickable</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>clickable</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isEnabled()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isEnabled</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>enabled</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isFocusable()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isFocusable</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>focusable</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isFocused()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isFocused</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>focused</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isLongClickable()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isLongClickable</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>long-clickable</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isScrollable()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isScrollable</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>scrollable</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="isSelected()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isSelected</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check if the UI element's <code>selected</code> property is currently true</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if it is else false</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="longClick()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">longClick</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Long clicks the center of the visible bounds of the UI element</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if operation was successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="longClickBottomRight()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">longClickBottomRight</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Long clicks bottom and right corner of the UI element</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if operation was successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="longClickTopLeft()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">longClickTopLeft</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Long clicks on the top and left corner of the UI element</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if operation was successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="setText(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">setText</span>
+ <span class="normal">(String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the text in an editable field, after clearing the field's content.
+
+ The <code><a href="UiSelector.html">UiSelector</a></code> selector of this object must reference a UI element that is editable.
+
+ When you call this method, the method first simulates a <code><a href="#click()">click()</a></code> on
+ editable field to set focus. The method then clears the field's contents
+ and injects your specified text into the field.
+
+ If you want to capture the original contents of the field, call <code><a href="#getText()">getText()</a></code> first.
+ You can then modify the text and use this method to update the field.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>text</th>
+ <td>string to set</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if operation is successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="swipeDown(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">swipeDown</span>
+ <span class="normal">(int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this object, Also see
+ #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
+ #scrollForward(). This method will perform the swipe gesture over any
+ surface. The targeted UI element does not need to have the attribute
+ <code>scrollable</code> set to <code>true</code> for this operation to be performed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>indicates the number of injected move steps into the system. Steps are
+ injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="swipeLeft(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">swipeLeft</span>
+ <span class="normal">(int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this object. Also see
+ #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
+ #scrollForward(). This method will perform the swipe gesture over any
+ surface. The targeted UI element does not need to have the attribute
+ <code>scrollable</code> set to <code>true</code> for this operation to be performed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>indicates the number of injected move steps into the system. Steps are
+ injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="swipeRight(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">swipeRight</span>
+ <span class="normal">(int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this object. Also see
+ #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
+ #scrollForward(). This method will perform the swipe gesture over any
+ surface. The targeted UI element does not need to have the attribute
+ <code>scrollable</code> set to <code>true</code> for this operation to be performed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>indicates the number of injected move steps into the system. Steps are
+ injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="swipeUp(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">swipeUp</span>
+ <span class="normal">(int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform the action on the UI element that is represented by this UiObject. Also see
+ #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
+ #scrollForward().</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>indicates the number of injected move steps into the system. Steps are
+ injected about 5ms apart. So a 100 steps may take about 1/2 second to complete.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true of successful</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="waitForExists(long)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">waitForExists</span>
+ <span class="normal">(long timeout)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Waits a specified length of time for a UI element to become visible.
+
+ This method waits until the UI element becomes visible on the display, or
+ until the timeout has elapsed. You can use this method in situations where
+ the content that you want to select is not immediately displayed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>timeout</th>
+ <td>the amount of time to wait (in milliseconds)</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the UI element is displayed, else false if timeout elapsed while waiting
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="waitUntilGone(long)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">waitUntilGone</span>
+ <span class="normal">(long timeout)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Waits a specified length of time for a UI element to become undetectable.
+
+ This method waits until a UI element is no longer matchable, or until the
+ timeout has elapsed.
+
+ A UI element becomes undetectable when the <code><a href="UiSelector.html">UiSelector</a></code> of the object is
+ unable to find a match because the element has either changed its state or is no
+ longer displayed.
+
+ You can use this method when attempting to wait for some long operation
+ to compete, such as downloading a large file or connecting to a remote server.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>timeout</th>
+ <td>time to wait (in milliseconds)</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the element is gone before timeout elapsed, else false if timeout elapsed
+ but a matching element is still found.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
diff --git a/docs/html/tools/help/uiautomator/UiObjectNotFoundException.jd b/docs/html/tools/help/uiautomator/UiObjectNotFoundException.jd
new file mode 100644
index 0000000..02c607d
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiObjectNotFoundException.jd
@@ -0,0 +1,630 @@
+page.title=UiObjectNotFoundException
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+<p>Generated in test runs when a <code><a href="UiSelector.html">UiSelector</a></code> selector could not be matched
+ to any UI element displayed.
+</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiObjectNotFoundException(java.lang.String)">UiObjectNotFoundException</a></span>(String msg)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiObjectNotFoundException(java.lang.String, java.lang.Throwable)">UiObjectNotFoundException</a></span>(String detailMessage, Throwable throwable)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiObjectNotFoundException(java.lang.Throwable)">UiObjectNotFoundException</a></span>(Throwable throwable)
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Throwable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Throwable-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Throwable
+
+<div id="inherited-methods-java.lang.Throwable">
+ <div id="inherited-methods-java.lang.Throwable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Throwable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+ synchronized
+
+
+
+ Throwable
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">fillInStackTrace</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Throwable
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getCause</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getLocalizedMessage</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getMessage</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ StackTraceElement[]
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getStackTrace</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+ synchronized
+
+
+
+ Throwable
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">initCause</span>(Throwable arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">printStackTrace</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">setStackTrace</span>(StackTraceElement[] arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">equals</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ Class<?>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getClass</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">hashCode</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notify</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notifyAll</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<a id="UiObjectNotFoundException(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiObjectNotFoundException</span>
+ <span class="normal">(String msg)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<a id="UiObjectNotFoundException(java.lang.String, java.lang.Throwable)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiObjectNotFoundException</span>
+ <span class="normal">(String detailMessage, Throwable throwable)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<a id="UiObjectNotFoundException(java.lang.Throwable)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiObjectNotFoundException</span>
+ <span class="normal">(Throwable throwable)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
diff --git a/docs/html/tools/help/uiautomator/UiScrollable.jd b/docs/html/tools/help/uiautomator/UiScrollable.jd
new file mode 100644
index 0000000..33566a2
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiScrollable.jd
@@ -0,0 +1,2914 @@
+page.title=UiScrollable
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+<p>UiScrollable is a <code><a href="UiCollection.html">UiCollection</a></code> and provides support for searching for items in a
+ scrollable user interface (UI) elements. This class can be used with horizontally or vertically scrollable controls..
+</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiScrollable(com.android.uiautomator.core.UiSelector)">UiScrollable</a></span>(<a href="UiSelector.html">UiSelector</a> container)
+
+ <div class="jd-descrdiv">UiScrollable is a <code><a href="UiCollection.html">UiCollection</a></code> and as such requires a <code><a href="UiSelector.html">UiSelector</a></code> to
+ identify the container UI element of the scrollable collection.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#flingBackward()">flingBackward</a></span>()
+
+ <div class="jd-descrdiv">See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#flingForward()">flingForward</a></span>()
+
+ <div class="jd-descrdiv">A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a fling</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#flingToBeginning(int)">flingToBeginning</a></span>(int maxSwipes)
+
+ <div class="jd-descrdiv">See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#flingToEnd(int)">flingToEnd</a></span>(int maxSwipes)
+
+ <div class="jd-descrdiv">See <code><a href="#scrollToEnd(int, int)">scrollToEnd(int, int)</a></code></div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)
+
+ <div class="jd-descrdiv">See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription(UiSelector, String)</a></code></div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
+ container.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByInstance(com.android.uiautomator.core.UiSelector, int)">getChildByInstance</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)
+
+ <div class="jd-descrdiv">See <code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText(UiSelector, String)</a></code></div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
+ container.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getMaxSearchSwipes()">getMaxSearchSwipes</a></span>()
+
+ <div class="jd-descrdiv">#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
+ use an arguments that specifies if scrolling is allowed while searching for the UI element.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ double
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#getSwipeDeadZonePercentage()">getSwipeDeadZonePercentage</a></span>()
+
+ <div class="jd-descrdiv">Returns the percentage of a widget's size that's considered as a no touch zone when swiping.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollBackward(int)">scrollBackward</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform a scroll backward.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollBackward()">scrollBackward</a></span>()
+
+ <div class="jd-descrdiv">See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollDescriptionIntoView(java.lang.String)">scrollDescriptionIntoView</a></span>(String text)
+
+ <div class="jd-descrdiv">Performs a swipe Up on the UI element until the requested content-description
+ is visible or until swipe attempts have been exhausted.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollForward()">scrollForward</a></span>()
+
+ <div class="jd-descrdiv">A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a regular scroll</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollForward(int)">scrollForward</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform a scroll forward.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollIntoView(com.android.uiautomator.core.UiSelector)">scrollIntoView</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Perform a scroll search for a UI element matching the <code><a href="UiSelector.html">UiSelector</a></code> selector argument.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollTextIntoView(java.lang.String)">scrollTextIntoView</a></span>(String text)
+
+ <div class="jd-descrdiv">Performs a swipe up on the UI element until the requested text is visible
+ or until swipe attempts have been exhausted.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollToBeginning(int)">scrollToBeginning</a></span>(int maxSwipes)
+
+ <div class="jd-descrdiv">See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollToBeginning(int, int)">scrollToBeginning</a></span>(int maxSwipes, int steps)
+
+ <div class="jd-descrdiv">Scrolls to the beginning of a scrollable UI element.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollToEnd(int, int)">scrollToEnd</a></span>(int maxSwipes, int steps)
+
+ <div class="jd-descrdiv">Scrolls to the end of a scrollable UI element.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollToEnd(int)">scrollToEnd</a></span>(int maxSwipes)
+
+ <div class="jd-descrdiv">See {@link UiScrollable#scrollToEnd(int, int)</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setAsHorizontalList()">setAsHorizontalList</a></span>()
+
+ <div class="jd-descrdiv">Set the direction of swipes when performing scroll search
+</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setAsVerticalList()">setAsVerticalList</a></span>()
+
+ <div class="jd-descrdiv">Set the direction of swipes when performing scroll search
+</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes</a></span>(int swipes)
+
+ <div class="jd-descrdiv">#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
+ use an arguments that specifies if scrolling is allowed while searching for the UI element.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#setSwipeDeadZonePercentage(double)">setSwipeDeadZonePercentage</a></span>(double swipeDeadZonePercentage)
+
+ <div class="jd-descrdiv">Sets the percentage of a widget's size that's considered as a no touch zone when swiping.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.android.uiautomator.core.UiCollection" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.android.uiautomator.core.UiCollection-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="UiCollection.html">com.android.uiautomator.core.UiCollection</a>
+
+<div id="inherited-methods-com.android.uiautomator.core.UiCollection">
+ <div id="inherited-methods-com.android.uiautomator.core.UiCollection-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.android.uiautomator.core.UiCollection-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiCollection.html#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiCollection.html#getChildByInstance(com.android.uiautomator.core.UiSelector, int)">getChildByInstance</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiCollection.html#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern, String text)
+
+ <div class="jd-descrdiv">Searches for child UI element within the constraints of this UiCollection <code><a href="UiSelector.html">UiSelector</a></code>
+ selector.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiCollection.html#getChildCount(com.android.uiautomator.core.UiSelector)">getChildCount</a></span>(<a href="UiSelector.html">UiSelector</a> childPattern)
+
+ <div class="jd-descrdiv">Counts child UI element instances matching the <code>childPattern</code>
+ argument.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.android.uiautomator.core.UiObject" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.android.uiautomator.core.UiObject-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="UiObject.html">com.android.uiautomator.core.UiObject</a>
+
+<div id="inherited-methods-com.android.uiautomator.core.UiObject">
+ <div id="inherited-methods-com.android.uiautomator.core.UiObject-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.android.uiautomator.core.UiObject-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clearTextField()">clearTextField</a></span>()
+
+ <div class="jd-descrdiv">Clears the existing text contents in an editable field.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#click()">click</a></span>()
+
+ <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Performs a click at the center of the visible bounds of the UI element represented
+ by this UiObject and waits for window transitions.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickAndWaitForNewWindow()">clickAndWaitForNewWindow</a></span>()
+
+ <div class="jd-descrdiv">See <code><a href="UiObject.html#clickAndWaitForNewWindow(long)">clickAndWaitForNewWindow(long)</a></code>
+ This method is intended to reliably wait for window transitions that would typically take
+ longer than the usual default timeouts.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickBottomRight()">clickBottomRight</a></span>()
+
+ <div class="jd-descrdiv">Clicks the bottom and right corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#clickTopLeft()">clickTopLeft</a></span>()
+
+ <div class="jd-descrdiv">Clicks the top and left corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#exists()">exists</a></span>()
+
+ <div class="jd-descrdiv">Check if UI element exists.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Rect
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getBounds()">getBounds</a></span>()
+
+ <div class="jd-descrdiv">Returns the UI element's <code>bounds</code> property.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getChild(com.android.uiautomator.core.UiSelector)">getChild</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Creates a new UiObject representing a child UI element of the element currently represented
+ by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getChildCount()">getChildCount</a></span>()
+
+ <div class="jd-descrdiv">Counts the child UI elements immediately under the UI element currently represented by
+ this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getContentDescription()">getContentDescription</a></span>()
+
+ <div class="jd-descrdiv">Reads the <code>content_desc</code> property of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getFromParent(com.android.uiautomator.core.UiSelector)">getFromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Creates a new UiObject representing a child UI element from the parent element currently
+ represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getPackageName()">getPackageName</a></span>()
+
+ <div class="jd-descrdiv">Reads the UI element's <code>package</code> property</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getSelector()">getSelector</a></span>()
+
+ <div class="jd-descrdiv">Debugging helper.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getText()">getText</a></span>()
+
+ <div class="jd-descrdiv">Reads the <code>text</code> property of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ Rect
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#getVisibleBounds()">getVisibleBounds</a></span>()
+
+ <div class="jd-descrdiv">Returns the visible bounds of the UI element.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isCheckable()">isCheckable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>checkable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isChecked()">isChecked</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>checked</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isClickable()">isClickable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>clickable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isEnabled()">isEnabled</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>enabled</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isFocusable()">isFocusable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>focusable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isFocused()">isFocused</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>focused</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isLongClickable()">isLongClickable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>long-clickable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isScrollable()">isScrollable</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>scrollable</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#isSelected()">isSelected</a></span>()
+
+ <div class="jd-descrdiv">Check if the UI element's <code>selected</code> property is currently true</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#longClick()">longClick</a></span>()
+
+ <div class="jd-descrdiv">Long clicks the center of the visible bounds of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#longClickBottomRight()">longClickBottomRight</a></span>()
+
+ <div class="jd-descrdiv">Long clicks bottom and right corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#longClickTopLeft()">longClickTopLeft</a></span>()
+
+ <div class="jd-descrdiv">Long clicks on the top and left corner of the UI element</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#setText(java.lang.String)">setText</a></span>(String text)
+
+ <div class="jd-descrdiv">Sets the text in an editable field, after clearing the field's content.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeDown(int)">swipeDown</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object, Also see
+ #scrollToBeginning(int), #scrollToEnd(int), #scrollBackward(),
+ #scrollForward().</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeLeft(int)">swipeLeft</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeRight(int)">swipeRight</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#swipeUp(int)">swipeUp</a></span>(int steps)
+
+ <div class="jd-descrdiv">Perform the action on the UI element that is represented by this UiObject.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#waitForExists(long)">waitForExists</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Waits a specified length of time for a UI element to become visible.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="UiObject.html#waitUntilGone(long)">waitUntilGone</a></span>(long timeout)
+
+ <div class="jd-descrdiv">Waits a specified length of time for a UI element to become undetectable.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">equals</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ Class<?>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getClass</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">hashCode</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notify</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notifyAll</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<a id="UiScrollable(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiScrollable</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> container)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>UiScrollable is a <code><a href="UiCollection.html">UiCollection</a></code> and as such requires a <code><a href="UiSelector.html">UiSelector</a></code> to
+ identify the container UI element of the scrollable collection. Further operations on
+ the items in the container will require specifying UiSelector as an item selector.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>container</th>
+ <td>a <code><a href="UiSelector.html">UiSelector</a></code> selector
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<a id="flingBackward()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">flingBackward</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="flingForward()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">flingForward</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a fling</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="flingToBeginning(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">flingToBeginning</span>
+ <span class="normal">(int maxSwipes)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on scrolled else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="flingToEnd(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">flingToEnd</span>
+ <span class="normal">(int maxSwipes)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollToEnd(int, int)">scrollToEnd(int, int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on scrolled else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByDescription</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByDescription(UiSelector, String)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>text</th>
+ <td>String may be a partial match for the content-description of a child element.</td>
+ </tr>
+ <tr>
+ <th>allowScrollSearch</th>
+ <td>set to true if scrolling is allowed</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByDescription</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
+ container. It looks for any child matching the <code>childPattern</code> argument within its
+ hierarchy with a matching content-description text. The returned UiObject will represent the
+ UI element matching the <code>childPattern</code> and not the sub element that matched the
+ content description.</p>
+ By default this operation will perform scroll search while attempting to find the UI element
+ See <code><a href="#getChildByDescription(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByDescription(UiSelector, String, boolean)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>text</th>
+ <td>String of the identifying child contents of of the <code>childPattern</code></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildByInstance(com.android.uiautomator.core.UiSelector, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByInstance</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, int instance)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
+ selector. It looks for any child matching the <code>childPattern</code> argument and
+ return the <code>instance</code> specified. The operation is performed only on the visible
+ items and no scrolling is performed in this case.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>instance</th>
+ <td>int the desired matched instance of this <code>childPattern</code></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code>
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByText</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text, boolean allowScrollSearch)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)">getChildByText(UiSelector, String)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>text</th>
+ <td>String of the identifying child contents of of the <code>childPattern</code></td>
+ </tr>
+ <tr>
+ <th>allowScrollSearch</th>
+ <td>set to true if scrolling is allowed</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiObject.html">UiObject</a>
+ </span>
+ <span class="sympad">getChildByText</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> childPattern, String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Searches for child UI element within the constraints of this UiScrollable <code><a href="UiSelector.html">UiSelector</a></code>
+ container. It looks for any child matching the <code>childPattern</code> argument that has
+ a sub UI element anywhere within its sub hierarchy that has text attribute
+ <code>text</code>. The returned UiObject will point at the <code>childPattern</code>
+ instance that matched the search and not at the text matched sub element</p>
+ By default this operation will perform scroll search while attempting to find the UI
+ element.
+ See <code><a href="#getChildByText(com.android.uiautomator.core.UiSelector, java.lang.String, boolean)">getChildByText(UiSelector, String, boolean)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>childPattern</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector of the child pattern to match and return</td>
+ </tr>
+ <tr>
+ <th>text</th>
+ <td>String of the identifying child contents of of the <code>childPattern</code></td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code><a href="UiObject.html">UiObject</a></code> pointing at and instance of <code>childPattern</code></li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getMaxSearchSwipes()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getMaxSearchSwipes</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
+ use an arguments that specifies if scrolling is allowed while searching for the UI element.
+ The number of scrolls currently allowed to perform a search can be read by this method.
+ See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>max value of the number of swipes currently allowed during a scroll search
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="getSwipeDeadZonePercentage()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ double
+ </span>
+ <span class="sympad">getSwipeDeadZonePercentage</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the percentage of a widget's size that's considered as a no touch zone when swiping.
+
+ Dead zones are set as percentage of a widget's total width or height, denoting a margin
+ around the swipable area of the widget. Swipes must start and
+ end inside this margin.
+
+ This is important when the widget being swiped may not respond to the swipe if
+ started at a point too near to the edge. The default is 10% from either edge.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a value between 0 and 1
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollBackward(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollBackward</span>
+ <span class="normal">(int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform a scroll backward. If this list is set to vertical (see <code><a href="#setAsVerticalList()">setAsVerticalList()</a></code>
+ default) then the swipes will be executed from the top to bottom. If this list is set
+ to horizontal (see <code><a href="#setAsHorizontalList()">setAsHorizontalList()</a></code>) then the swipes will be executed from
+ the left to right. Caution is required on devices configured with right to left languages
+ like Arabic and Hebrew.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>use steps to control the speed, so that it may be a scroll, or fling</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollBackward()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollBackward</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollBackward(int)">scrollBackward(int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollDescriptionIntoView(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollDescriptionIntoView</span>
+ <span class="normal">(String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe Up on the UI element until the requested content-description
+ is visible or until swipe attempts have been exhausted. See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>text</th>
+ <td>to look for anywhere within the contents of this scrollable.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if item us found else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollForward()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollForward</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A convenience version of <code><a href="#scrollForward(int)">scrollForward(int)</a></code>, performs a regular scroll</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollForward(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollForward</span>
+ <span class="normal">(int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform a scroll forward. If this list is set to vertical (see <code><a href="#setAsVerticalList()">setAsVerticalList()</a></code>
+ default) then the swipes will be executed from the bottom to top. If this list is set
+ to horizontal (see <code><a href="#setAsHorizontalList()">setAsHorizontalList()</a></code>) then the swipes will be executed from
+ the right to left. Caution is required on devices configured with right to left languages
+ like Arabic and Hebrew.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>use steps to control the speed, so that it may be a scroll, or fling</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if scrolled and false if the control can't scroll anymore
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollIntoView(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollIntoView</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Perform a scroll search for a UI element matching the <code><a href="UiSelector.html">UiSelector</a></code> selector argument.
+ See <code><a href="#scrollDescriptionIntoView(java.lang.String)">scrollDescriptionIntoView(String)</a></code> and <code><a href="#scrollTextIntoView(java.lang.String)">scrollTextIntoView(String)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>selector</th>
+ <td><code><a href="UiSelector.html">UiSelector</a></code> selector</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the item was found and now is in view else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollTextIntoView(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollTextIntoView</span>
+ <span class="normal">(String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Performs a swipe up on the UI element until the requested text is visible
+ or until swipe attempts have been exhausted. See <code><a href="#setMaxSearchSwipes(int)">setMaxSearchSwipes(int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>text</th>
+ <td>to look for</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if item us found else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollToBeginning(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollToBeginning</span>
+ <span class="normal">(int maxSwipes)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See <code><a href="#scrollToBeginning(int, int)">scrollToBeginning(int, int)</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on scrolled else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollToBeginning(int, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollToBeginning</span>
+ <span class="normal">(int maxSwipes, int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the beginning of a scrollable UI element. The beginning could be the top most
+ in case of vertical lists or the left most in case of horizontal lists. Caution is required
+ on devices configured with right to left languages like Arabic and Hebrew.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>use steps to control the speed, so that it may be a scroll, or fling</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on scrolled else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollToEnd(int, int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollToEnd</span>
+ <span class="normal">(int maxSwipes, int steps)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Scrolls to the end of a scrollable UI element. The end could be the bottom most
+ in case of vertical controls or the right most for horizontal controls. Caution
+ is required on devices configured with right to left languages like Arabic and Hebrew.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>steps</th>
+ <td>use steps to control the speed, so that it may be a scroll, or fling</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on scrolled else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="scrollToEnd(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">scrollToEnd</span>
+ <span class="normal">(int maxSwipes)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>See {@link UiScrollable#scrollToEnd(int, int)</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true on scrolled else false
+</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th><a href="UiObjectNotFoundException.html">UiObjectNotFoundException</a></td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="setAsHorizontalList()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAsHorizontalList</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the direction of swipes when performing scroll search
+</p></div>
+
+ </div>
+</div>
+
+
+<a id="setAsVerticalList()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAsVerticalList</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the direction of swipes when performing scroll search
+</p></div>
+
+ </div>
+</div>
+
+
+<a id="setMaxSearchSwipes(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setMaxSearchSwipes</span>
+ <span class="normal">(int swipes)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>#getChildByDescription(String, boolean) and #getChildByText(String, boolean)
+ use an arguments that specifies if scrolling is allowed while searching for the UI element.
+ The number of scrolls allowed to perform a search can be modified by this method.
+ The current value can be read by calling <code><a href="#getMaxSearchSwipes()">getMaxSearchSwipes()</a></code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>swipes</th>
+ <td>is the number of search swipes until abort
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="setSwipeDeadZonePercentage(double)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setSwipeDeadZonePercentage</span>
+ <span class="normal">(double swipeDeadZonePercentage)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the percentage of a widget's size that's considered as a no touch zone when swiping.
+
+ Dead zones are set as percentage of a widget's total width or height, denoting a margin
+ around the swipable area of the widget. Swipes must always start and
+ end inside this margin.
+
+ This is important when the widget being swiped may not respond to the swipe if
+ started at a point too near to the edge. The default is 10% from either edge</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>swipeDeadZonePercentage</th>
+ <td>is a value between 0 and 1
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
diff --git a/docs/html/tools/help/uiautomator/UiSelector.jd b/docs/html/tools/help/uiautomator/UiSelector.jd
new file mode 100644
index 0000000..96d3fd8
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiSelector.jd
@@ -0,0 +1,2088 @@
+page.title=UiSelector
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+
+
+<h2>Class Overview</h2>
+<p>This class provides the mechanism for tests to describe the UI elements they
+ intend to target. A UI element has many properties associated with it such as
+ text value, content-description, class name and multiple state information like
+ selected, enabled, checked etc. Additionally UiSelector allows targeting of UI
+ elements within a specific display hierarchies to distinguish similar elements
+ based in the hierarchies they're in.</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#UiSelector()">UiSelector</a></span>()
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#checked(boolean)">checked</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that
+ are currently checked (usually for checkboxes).</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#childSelector(com.android.uiautomator.core.UiSelector)">childSelector</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Adds a child UiSelector criteria to this selector.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#className(java.lang.String)">className</a></span>(String className)
+
+ <div class="jd-descrdiv">Set the search criteria to match the class property
+ for a widget (for example, "android.widget.Button").</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+ <T>
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#className(java.lang.Class<T>)">className</a></span>(Class<T> type)
+
+ <div class="jd-descrdiv">Set the search criteria to match the class property
+ for a widget (for example, "android.widget.Button").</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#classNameMatches(java.lang.String)">classNameMatches</a></span>(String regex)
+
+ <div class="jd-descrdiv">Set the search criteria to match the class property
+ for a widget (for example, "android.widget.Button").</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#clickable(boolean)">clickable</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that are clickable.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#description(java.lang.String)">description</a></span>(String desc)
+
+ <div class="jd-descrdiv">Set the search criteria to match the content-description
+ property for a widget.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#descriptionContains(java.lang.String)">descriptionContains</a></span>(String desc)
+
+ <div class="jd-descrdiv">Set the search criteria to match the content-description
+ property for a widget.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#descriptionMatches(java.lang.String)">descriptionMatches</a></span>(String regex)
+
+ <div class="jd-descrdiv">Set the search criteria to match the content-description
+ property for a widget.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#descriptionStartsWith(java.lang.String)">descriptionStartsWith</a></span>(String desc)
+
+ <div class="jd-descrdiv">Set the search criteria to match the content-description
+ property for a widget.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#enabled(boolean)">enabled</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that are enabled.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#focusable(boolean)">focusable</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that are focusable.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#focused(boolean)">focused</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that have focus.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#fromParent(com.android.uiautomator.core.UiSelector)">fromParent</a></span>(<a href="UiSelector.html">UiSelector</a> selector)
+
+ <div class="jd-descrdiv">Adds a child UiSelector criteria to this selector which is used to
+ start search from the parent widget.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#index(int)">index</a></span>(int index)
+
+ <div class="jd-descrdiv">Set the search criteria to match the widget by its node
+ index in the layout hierarchy.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#instance(int)">instance</a></span>(int instance)
+
+ <div class="jd-descrdiv">Set the search criteria to match the
+ widget by its instance number.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#longClickable(boolean)">longClickable</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that are long-clickable.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#packageName(java.lang.String)">packageName</a></span>(String name)
+
+ <div class="jd-descrdiv">Set the search criteria to match the package name
+ of the application that contains the widget.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#packageNameMatches(java.lang.String)">packageNameMatches</a></span>(String regex)
+
+ <div class="jd-descrdiv">Set the search criteria to match the package name
+ of the application that contains the widget.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#scrollable(boolean)">scrollable</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that are scrollable.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#selected(boolean)">selected</a></span>(boolean val)
+
+ <div class="jd-descrdiv">Set the search criteria to match widgets that
+ are currently selected.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#text(java.lang.String)">text</a></span>(String text)
+
+ <div class="jd-descrdiv">Set the search criteria to match the visible text displayed
+ for a widget (for example, the text label to launch an app).</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#textContains(java.lang.String)">textContains</a></span>(String text)
+
+ <div class="jd-descrdiv">Set the search criteria to match the visible text displayed
+ for a widget (for example, the text label to launch an app).</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#textMatches(java.lang.String)">textMatches</a></span>(String regex)
+
+ <div class="jd-descrdiv">Set the search criteria to match the visible text displayed
+ for a widget (for example, the text label to launch an app).</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#textStartsWith(java.lang.String)">textStartsWith</a></span>(String text)
+
+ <div class="jd-descrdiv">Text property is usually the widget's visible text on the display.</div>
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#toString()">toString</a></span>()
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="../../../../../assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">equals</span>(Object arg0)
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ Class<?>
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">getClass</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ int
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">hashCode</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notify</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">notifyAll</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+
+
+
+ String
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">toString</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>()
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0, int arg1)
+
+ </td></tr>
+
+
+
+ <tr class="api">
+ <td class="jd-typecol">
+
+
+ final
+
+
+ void
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad">wait</span>(long arg0)
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<a id="UiSelector()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">UiSelector</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<a id="checked(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">checked</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that
+ are currently checked (usually for checkboxes).
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="childSelector(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">childSelector</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Adds a child UiSelector criteria to this selector.
+
+ Use this selector to narrow the search scope to
+ child widgets under a specific parent widget.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with this added search criterion</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="className(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">className</span>
+ <span class="normal">(String className)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the class property
+ for a widget (for example, "android.widget.Button").</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>className</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="className(java.lang.Class<T>)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">className</span>
+ <span class="normal">(Class<T> type)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the class property
+ for a widget (for example, "android.widget.Button").</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="classNameMatches(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">classNameMatches</span>
+ <span class="normal">(String regex)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the class property
+ for a widget (for example, "android.widget.Button").</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="clickable(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">clickable</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are clickable.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="description(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">description</span>
+ <span class="normal">(String desc)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
+ property for a widget.
+
+ The content-description is typically used
+ by the Android Accessibility framework to
+ provide an audio prompt for the widget when
+ the widget is selected. The content-description
+ for the widget must match exactly
+ with the string in your input argument.
+
+ Matching is case-sensitive.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>desc</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="descriptionContains(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">descriptionContains</span>
+ <span class="normal">(String desc)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
+ property for a widget.
+
+ The content-description is typically used
+ by the Android Accessibility framework to
+ provide an audio prompt for the widget when
+ the widget is selected. The content-description
+ for the widget must contain
+ the string in your input argument.
+
+ Matching is case-insensitive.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>desc</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="descriptionMatches(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">descriptionMatches</span>
+ <span class="normal">(String regex)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
+ property for a widget.
+
+ The content-description is typically used
+ by the Android Accessibility framework to
+ provide an audio prompt for the widget when
+ the widget is selected. The content-description
+ for the widget must match exactly
+ with the string in your input argument.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="descriptionStartsWith(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">descriptionStartsWith</span>
+ <span class="normal">(String desc)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the content-description
+ property for a widget.
+
+ The content-description is typically used
+ by the Android Accessibility framework to
+ provide an audio prompt for the widget when
+ the widget is selected. The content-description
+ for the widget must start
+ with the string in your input argument.
+
+ Matching is case-insensitive.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>desc</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="enabled(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">enabled</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are enabled.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="focusable(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">focusable</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are focusable.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="focused(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">focused</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that have focus.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="fromParent(com.android.uiautomator.core.UiSelector)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">fromParent</span>
+ <span class="normal">(<a href="UiSelector.html">UiSelector</a> selector)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Adds a child UiSelector criteria to this selector which is used to
+ start search from the parent widget.
+
+ Use this selector to narrow the search scope to
+ sibling widgets as well all child widgets under a parent.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with this added search criterion</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="index(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">index</span>
+ <span class="normal">(int index)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the widget by its node
+ index in the layout hierarchy.
+
+ The index value must be 0 or greater.
+
+ Using the index can be unreliable and should only
+ be used as a last resort for matching. Instead,
+ consider using the <code><a href="#instance(int)">instance(int)</a></code> method.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>index</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="instance(int)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">instance</span>
+ <span class="normal">(int instance)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the
+ widget by its instance number.
+
+ The instance value must be 0 or greater, where
+ the first instance is 0.
+
+ For example, to simulate a user click on
+ the third image that is enabled in a UI screen, you
+ could specify a a search criteria where the instance is
+ 2, the <code><a href="#className(java.lang.String)">className(String)</a></code> matches the image
+ widget class, and <code><a href="#enabled(boolean)">enabled(boolean)</a></code> is true.
+ The code would look like this:
+ <code>
+ new UiSelector().className("android.widget.ImageView")
+ .enabled(true).instance(2);
+ </code></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>instance</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="longClickable(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">longClickable</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are long-clickable.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="packageName(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">packageName</span>
+ <span class="normal">(String name)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the package name
+ of the application that contains the widget.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>name</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="packageNameMatches(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">packageNameMatches</span>
+ <span class="normal">(String regex)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the package name
+ of the application that contains the widget.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="scrollable(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">scrollable</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that are scrollable.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="selected(boolean)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">selected</span>
+ <span class="normal">(boolean val)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match widgets that
+ are currently selected.
+
+ Typically, using this search criteria alone is not useful.
+ You should also include additional criteria, such as text,
+ content-description, or the class name for a widget.
+
+ If no other search criteria is specified, and there is more
+ than one matching widget, the first widget in the tree
+ is selected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>val</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="text(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">text</span>
+ <span class="normal">(String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text displayed
+ for a widget (for example, the text label to launch an app).
+
+ The text for the widget must match exactly
+ with the string in your input argument.
+ Matching is case-sensitive.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>text</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="textContains(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">textContains</span>
+ <span class="normal">(String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text displayed
+ for a widget (for example, the text label to launch an app).
+
+ The text for the widget must contain the string in
+ your input argument. Matching is case-sensitive.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>text</th>
+ <td>Value to match</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="textMatches(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">textMatches</span>
+ <span class="normal">(String regex)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Set the search criteria to match the visible text displayed
+ for a widget (for example, the text label to launch an app).
+
+ The text for the widget must match exactly
+ with the string in your input argument.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with the specified search criteria</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Since</h5>
+ <ul class="nolist"><li>Android API Level 17</li></ul>
+</div>
+ </div>
+</div>
+
+
+<a id="textStartsWith(java.lang.String)"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="UiSelector.html">UiSelector</a>
+ </span>
+ <span class="sympad">textStartsWith</span>
+ <span class="normal">(String text)</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Text property is usually the widget's visible text on the display.
+
+ Adding this to the search criteria indicates that the search performed
+ should match a widget with text value starting with the text parameter.
+
+ The matching will be case-insensitive.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>UiSelector with this added search criterion</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<a id="toString()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">toString</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div>
+
+</div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+
diff --git a/docs/html/tools/help/uiautomator/UiWatcher.jd b/docs/html/tools/help/uiautomator/UiWatcher.jd
new file mode 100644
index 0000000..b416fad
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/UiWatcher.jd
@@ -0,0 +1,78 @@
+page.title=UiWatcher
+parent.title=uiautomator
+parent.link=index.html
+@jd:body
+<style>
+ h4.jd-details-title {background-color: #DEE8F1;}
+</style>
+
+<p>Represents a conditional watcher on the target device. To learn how to register a conditional
+ watcher, see <code><a href="UiDevice.html#registerWatcher(java.lang.String, com.android.uiautomator.core.UiWatcher)">UiDevice.registerWatcher()</a></code>.
+</p>
+
+<div class="jd-descr">
+
+<h2>Summary</h2>
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="api" >
+ <td class="jd-typecol">
+ abstract
+
+
+
+
+ boolean
+ </td>
+ <td class="jd-linkcol" width="100%">
+ <span class="sympad"><a href="#checkForCondition()">checkForCondition</a></span>()
+
+ <div class="jd-descrdiv">The testing framework calls this handler method automatically when the framework
+ is unable to find a match using the <code><a href="UiSelector.html">UiSelector</a></code>.</div>
+
+ </td></tr>
+
+</table>
+
+</div><!-- jd-descr (summary) -->
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+<a id="checkForCondition()"></a>
+
+<div class="jd-details api ">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ boolean
+ </span>
+ <span class="sympad">checkForCondition</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The testing framework calls this handler method automatically when the framework is unable to find a match using the <code><a href="UiSelector.html">UiSelector</a></code>. When a match is not found after a predetermined time has elapsed, the framework calls the checkForCondition() method of all registered watchers on the device. You can use this method to handle known blocking issues that are preventing the test from proceeding. For example, you can check if a dialog appeared that is blocking the the test, then close the dialog or perform some other appropriate action to allow the test to continue.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true to indicate a matched condition, or false if no matching condition is found
+</li></ul>
+ </div>
+
+ </div>
+</div>
diff --git a/docs/html/tools/help/uiautomator/index.jd b/docs/html/tools/help/uiautomator/index.jd
new file mode 100644
index 0000000..38ba177
--- /dev/null
+++ b/docs/html/tools/help/uiautomator/index.jd
@@ -0,0 +1,177 @@
+page.title=uiautomator
+parent.title=Tools
+parent.link=index.html
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>In this document</h2>
+ <ul>
+ <li><a href="#syntax">Syntax</a></li>
+ <li><a href="#options">Options</a></li>
+ <lI><a href="#api">uiautomator API</a>
+ <ul>
+ <li><a href="#classes">Classes</a></li>
+ <li><a href="#interfaces">Interfaces</a></li>
+ <li><a href="#exceptions">Exceptions</a></li>
+ </ul>
+ </lI>
+ </ul>
+ </div>
+</div>
+
+<p>The {@code uiautomator} testing framework lets you test your user interface (UI) efficiently by creating automated functional UI testcases that can be run against your app on one or more devices.</p>
+<p>For more information on testing with the {@code uiautomator} framework, see <a href="{@docRoot}tools/testing/testing_ui.html">UI Testing</a>.</p>
+
+<h2 id="syntax">Syntax</h2>
+<p>To run your testcases on the target device, you can use the {@code adb shell} command to invoke the {@code uiautomator} tool. The syntax is:
+<pre>
+adb shell uiautomator runtest <jar> -c <test_class_or_method> [options]
+</pre>
+</p>
+<p>Here’s an example:</p>
+<pre>adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings</pre>
+
+<h2 id="options">Command-line Options</h2>
+<p>The following table describes the subcommands and options for {@code uiautomator}.</p>
+
+<p class="table-caption" id="table1">
+<strong>Table 1.</strong> Command-line options for {@code uiautomator}</p>
+<table>
+<tr>
+ <th>Subcommand</th>
+ <th>Option</th>
+ <th>Description</th>
+</tr>
+
+<tr>
+<td rowspan="6"><code>runtest</code></td>
+<td><nobr>{@code <jar>}</nobr></td>
+<td><strong>Required</strong>. The {@code <jar>} argument is the name of one or more JAR files that you deployed to the target device which contain your uiautomator testcases. You can list more than one JAR file by using a space as a separator.</td>
+</tr>
+
+<tr>
+<td><nobr><code>-c <test_class_or_method> </code></nobr></td>
+<td><strong>Required</strong>. The {@code <test_class_or_method>} argument is a list of one or more specific test classes or test methods from the JARs that you want {@code uiautomator} to run. <p>Each class or method must be fully qualified with the package name, in one of these formats:
+<ul>
+<li>{@code package_name.class_name}</li>
+<li>{@code package_name.class_name#method_name}</li>
+</ul>
+You can list multiple classes or methods by using a space as a separator.</p></td>
+</tr>
+
+<tr>
+<td><nobr><code>--nohup</code></nobr></td>
+<td>Runs the test to completion on the device even if its parent process is terminated (for example, if the device is disconnected).</td>
+</tr>
+
+<tr>
+<td><nobr><code>-e <NAME> <VALUE></code></nobr></td>
+<td><p>Specify other name-value pairs to be passed to test classes. May be repeated.</p><p class="note"><strong>Note: </strong>The {@code -e} options cannot be combined; you must prefix each option with a separate {@code -e} flag. </p></td>
+</tr>
+
+<tr>
+<td><nobr><code>-e debug [true|false]</code></nobr></td>
+<td>Wait for debugger to connect before starting.</td>
+</tr>
+
+<tr>
+<td><nobr><code>-e runner [CLASS]</code></nobr></td>
+<td>Use the specified test runner class instead. If unspecified, the {@code uiautomator} framework’s default runner will be used.</td>
+</tr>
+
+<tr>
+<td><code>dump</code></td>
+<td><code>[file]</code></td>
+<td>Generate an XML file with a dump of the current UI hierarchy. If a filepath is not specified, by default, the generated dump file is stored on the device in this location {@code /storage/sdcard0/window_dump.xml}.</td>
+</tr>
+
+<tr>
+<td><code>events</code></td>
+<td> </td>
+<td>Prints out accessibility events to the console until the connection to the device is terminated</td>
+</tr>
+</table>
+
+<h2 id="api">uiautomator API</h2>
+<p>The {@code uiautomator} API is bundled in the {@code uiautomator.jar} file under the {@code <android-sdk>/platforms/} directory. The API includes these key classes, interfaces, and exceptions that allow you to capture and manipulate UI components on the target app:</p>
+
+<h3 id="classes">Classes</h3>
+<table>
+<tr>
+ <th>Class</th>
+ <th>Description</th>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code com.android.uiautomator.core.UiCollection}</a></nobr></td>
+<td>Used to enumerate a container's user interface (UI) elements for the purpose of counting, or targeting a sub elements by a child's text or description.</td>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code com.android.uiautomator.core.UiDevice}</a></nobr></td>
+<td>Provides access to state information about the device. You can also use this class to simulate user actions on the device, such as pressing the d-pad hardware button or pressing the Home and Menu buttons.</td>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code com.android.uiautomator.core.UiObject}</a></nobr></td>
+<td>Represents a user interface (UI) element.</td>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiScrollable.html">{@code com.android.uiautomator.core.UiScrollable}</a></nobr></td>
+<td>Provides support for searching for items in a scrollable UI container.</td>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code com.android.uiautomator.core.UiSelector}</a></nobr></td>
+<td>Represents a query for one or more target UI elements on a device screen. </td>
+</tr>
+
+</table>
+
+<h3 id="interfaces">Interfaces</h3>
+
+<table>
+<tr>
+ <th>Interface</th>
+ <th>Description</th>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiWatcher.html">{@code com.android.uiautomator.core.UiWatcher}</a></nobr></td>
+<td>Represents a conditional watcher on the target device.</td>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/IAutomationSupport.html">{@code com.android.uiautomator.testrunner.IAutomationSupport}</a></nobr></td>
+<td>Provides auxiliary support for running test cases.</td>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiAutomatorTestCase.html">{@code com.android.uiautomator.testrunner.UiAutomatorTestCase}</a></nobr></td>
+<td>Defines an environment for running multiple tests. All {@code uiautomator} test cases should extend this class.</td>
+</tr>
+
+</table>
+
+<h3 id="exceptions">Exceptions</h3>
+
+<table>
+<tr>
+ <th>Exception</th>
+ <th>Description</th>
+</tr>
+
+<tr>
+<td><nobr><a href="{@docRoot}tools/help/uiautomator/UiObjectNotFoundException.html">{@code com.android.uiautomator.core.UiObjectNotFoundException}</a></nobr></td>
+<td>Indicates when a a <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a> could not be matched to any UI element displayed.</td>
+</tr>
+
+</table>
+
+
+
+
+
+
diff --git a/docs/html/tools/index.jd b/docs/html/tools/index.jd
index 04e0d3b..f9d452c 100644
--- a/docs/html/tools/index.jd
+++ b/docs/html/tools/index.jd
@@ -17,68 +17,88 @@
<div style="margin-top:20px;"></div>
-<div class="col-6">
+<div class="col-7" style="margin-left:0">
<h3>Full Java IDE</h3>
<ul>
- <li>Android-specific refactoring, quick fixes, integrated navigation between Java and Android XML resources.</li>
- <li>Enhanced XML editors for Android XML resources</li>
- <li>Static analysis tools to catch performance, usability, and correctness problems</li>
+ <li>Android-specific refactoring, quick fixes, integrated navigation between Java and XML resources.</li>
+ <li>Enhanced XML editors for Android XML resources.</li>
+ <li>Static analysis tools to catch performance, usability, and correctness problems.</li>
<li>Build support for complex projects, command-line support for CI through Ant. Includes ProGuard and app-signing. </li>
<li>Template-based wizard to create standard Android projects and components.</li>
</ul>
</div>
-<div class="col-6">
+
+<div class="col-6" style="margin-right:0">
+
<h3>Graphical UI Builders</h3>
-
<ul>
<li>Build rich Android UI with drag and drop.
<li>Visualize your UI on tablets, phones, and other devices. Switch themes, locales, even platform versions instantly, without building.</li>
- <li>Visual refactoring lets you extracts layout for inclusion, convert layouts, extract styles</li>
- <li>Editor support for working with custom UI components</li>
+ <li>Visual refactoring lets you extracts layout for inclusion, convert layouts, extract styles.</li>
+ <li>Editor support for working with custom UI components.</li>
</ul>
+
</div>
-<div class="col-6" style="clear:both">
+
+<div class="col-7" style="clear:both;margin-left:0;">
+
+<h3>On-device Developer Options</h3>
+<ul>
+ <li>Enable debugging over USB.</li>
+ <li>Quickly capture bug reports onto the device.</li>
+ <li>Show CPU usage on screen.</li>
+ <li>Draw debugging information on screen such as layout bounds,
+ updates on GPU views and hardware layers, and other information.</li>
+ <li>Plus many more options to simulate app stresses or enable debugging options.</li>
+</ul>
+<p>To access these settings, open the <em>Developer options</em> in the
+system Settings. On Android 4.2 and higher, the Developer options screen is
+hidden by default. To make it available, go to
+<b>Settings > About phone</b> and tap <b>Build number</b> seven times. Return to the previous
+screen to find Developer options.</p>
+
+</div>
+
+<div class="col-6" style="margin-right:0">
+ <img src="{@docRoot}images/tools/dev-options-inmilk.png" alt="" style="margin:-10px 0 0;">
+</div>
+
+
+<div class="col-7" style="clear:both;margin-left:0;">
<h3>Develop on Hardware Devices</h3>
<ul>
<li>Use any commercial Android hardware device or multiple devices.</li>
- <li>Deploy your app to connected devices directy from the IDE</li>
- <li>Live, on-device debugging, testing, and profiling</li>
+ <li>Deploy your app to connected devices directy from the IDE.</li>
+ <li>Live, on-device debugging, testing, and profiling.</li>
</ul>
</div>
-<div class="col-6">
+<div class="col-6" style="margin-right:0">
<h3>Develop on Virtual Devices</h3>
<ul>
<li>Emulate any device. Use custom screen sizes, keyboards, and other hardware components. </li>
<li>Advanced hardware emulation, including camera, sensors, multitouch, telephony.</li>
- <li>Develop and test for broadest compatibility at lowest cost.</li>
+ <li>Develop and test for broad device compatibility.</li>
</ul>
</div>
<div style="margin-top:20px;"></div>
-<div class="col-5">
+<div class="col-7" style="margin-left:0">
<h3>Powerful Debugging</h3>
<ul>
- <li>Full Java debugger with on-device debugging and Android-specific tools</li>
+ <li>Full Java debugger with on-device debugging and Android-specific tools.</li>
<li>Built-in memory analysis, performance/CPU profiling, OpenGL ES tracing.</li>
<li>Graphical tools for debugging and optimizing UI, runtime inspecton of UI structure and performance.</li>
- <li>Runtime graphical analysis of your app's network bandwidth usage.</li>
+ <li>Runtime graphical analysis of your app's network bandwidth usage.</li>
</ul>
-</div>
-<div style="float:right;width:360px;padding-top:1em;">
- <img src="{@docRoot}images/debugging-tall.png" align="left">
-</div>
-
-
-<div class="col-6">
<h3>Testing</h3>
<ul>
@@ -95,3 +115,8 @@
</ul>
</div>
+<div class="col-6" style="margin-right:0">
+ <img src="{@docRoot}images/debugging-tall.png" align="left" style="margin-top:10px">
+</div>
+
+
diff --git a/docs/html/tools/revisions/platforms.jd b/docs/html/tools/revisions/platforms.jd
index 178ab90..c1bc185 100644
--- a/docs/html/tools/revisions/platforms.jd
+++ b/docs/html/tools/revisions/platforms.jd
@@ -7,6 +7,8 @@
<h2>See Also</h2>
<ol>
+ <li><a href="{@docRoot}about/versions/jelly-bean.html">Jelly Bean
+Highlights and APIs</a></li>
<li><a href="{@docRoot}about/versions/android-4.0-highlights.html">Ice Cream Sandwich
Highlights and APIs</a></li>
<li><a href="{@docRoot}about/versions/android-3.0-highlights.html">Honeycomb
@@ -34,6 +36,97 @@
+<h2 id="4.2">Android 4.2</h2>
+
+
+<p class="caution"><strong>Important:</strong> To download the new Android
+4.2.x system components from the Android SDK Manager, you must first update the
+SDK tools to revision 20 or later and restart the Android SDK Manager. If you do not,
+the Android 4.2 system components will not be available for download.</p>
+
+
+<div class="toggle-content opened">
+
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-opened.png"
+class="toggle-content-img" alt="" />Revision 1</a> <em>(November 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+
+ <p>Initial release. The system version is 4.2.</p>
+ <dl>
+ <dt>Dependencies:</dt>
+ <dd>SDK Tools r20 or higher is required.</dd>
+ </dl>
+
+ </div>
+</div>
+
+<h3>Device Definitions</h3>
+
+<p>The platform includes the following device definitions for use in creating Android Virtual
+Devices in the <a href="{@docRoot}tools/help/avd-manager.html">AVD Manager</a>:</p>
+
+<ul>
+ <li>
+ Nexus 7 (7.3", 800 x 1280, Large tvdpi screen)
+ </li>
+ <li>
+ Galaxy Nexus (4.7", 720 x 1280, Normal xhdpi screen)
+ </li>
+ <li>
+ Nexus S (4.0", 480 x 800, Normal hdpi screen)
+ </li>
+ <li>
+ Nexus One (3.7", 480 x 720, Normal hdpi screen)
+ </li>
+ <li>
+ 10.1" WXGA Tablet (1280 x 800, X-Large mdpi screen)
+ </li>
+ <li>
+ 7.0" WSVGA Tablet (1024 x 600, Large mdpi screen)
+ </li>
+ <li>
+ 5.4" FWVGA (480 x 854, Large mdpi screen)
+ </li>
+ <li>
+ 5.1" WVGA (480 x 800, Large mdpi screen)
+ </li>
+ <li>
+ 4.7" WXGA (1280 x 720, Normal xhdpi screen)
+ </li>
+ <li>
+ 4.65" 720p (720 x 1280, Normal xhdpi screen)
+ </li>
+ <li>
+ 4.0" WVGA (480 x 800, Normal hdpi screen)
+ </li>
+ <li>
+ 3.7" WVGA (480 x 800, Normal hdpi screen)
+ </li>
+ <li>
+ 3.7" FWVGA slider (480 x 854, Normal hdpi screen)
+ </li>
+ <li>
+ 3.4" WQVGA (240 x 432, Normal ldpi screen)
+ </li>
+ <li>
+ 3.3" WQVGA (240 x 400, Normal ldpi screen)
+ </li>
+ <li>
+ 3.2" QVGA ADP2 (320 x 480, Normal mdpi screen)
+ </li>
+ <li>
+ 3.2" HVGA slider ADP1 (320 x 480, Normal mdpi screen)
+ </li>
+ <li>
+ 2.7" QVGA slider (240 x 320, Small ldpi screen)
+ </li>
+ <li>
+ 2.7" QVGA (240 x 320, Small ldpi screen)
+ </li>
+</ul>
@@ -41,15 +134,15 @@
<p class="caution"><strong>Important:</strong> To download the new Android
-4.0.x system components from the Android SDK Manager, you must first update the
+4.1.x system components from the Android SDK Manager, you must first update the
SDK tools to revision 20 or later and restart the Android SDK Manager. If you do not,
the Android 4.1 system components will not be available for download.</p>
-<div class="toggle-content opened">
+<div class="toggle-content closed">
<p><a href="#" onclick="return toggleContent(this)">
- <img src="{@docRoot}assets/images/triangle-opened.png"
+ <img src="{@docRoot}assets/images/triangle-closed.png"
class="toggle-content-img" alt="" />Revision 3</a> <em>(October 2012)</em>
</p>
diff --git a/docs/html/tools/sdk/eclipse-adt.jd b/docs/html/tools/sdk/eclipse-adt.jd
index 10c622b..f2ff07c 100644
--- a/docs/html/tools/sdk/eclipse-adt.jd
+++ b/docs/html/tools/sdk/eclipse-adt.jd
@@ -53,52 +53,135 @@
<p>For a summary of all known issues in ADT, see <a
href="http://tools.android.com/knownissues">http://tools.android.com/knownissues</a>.</p>
-<script type="text/javascript">
-function toggleDiv(link) {
- var toggleable = $(link).parent();
- if (toggleable.hasClass("closed")) {
- //$(".toggleme", toggleable).slideDown("fast");
- toggleable.removeClass("closed");
- toggleable.addClass("open");
- $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
- } else {
- //$(".toggleme", toggleable).slideUp("fast");
- toggleable.removeClass("open");
- toggleable.addClass("closed");
- $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
- }
- return false;
-}
-</script>
-<style>
-.toggleable {
-padding: 5px 0 0;
-}
-.toggleme {
- padding: 10px 0 0 20px;
-}
-.toggleable a {
- text-decoration:none;
-}
-.toggleme a {
- text-decoration:underline;
-}
-.toggleable.closed .toggleme {
- display:none;
-}
-#jd-content .toggle-img {
- margin:0 5px 3px 0;
-}
-</style>
+<div class="toggle-content opened">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+ alt=""/>ADT 21.0.0</a> <em>(November 2012)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+<dl>
+ <dt>Dependencies:</dt>
-<div class="toggleable opened">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px"
- width="9px"/>
-ADT 20.0.3</a> <em>(August 2012)</em>
- <div class="toggleme">
+ <dd>
+ <ul>
+ <li>Java 1.6 or higher is required for ADT 20.0.3.</li>
+ <li>Eclipse Helios (Version 3.6.2) or higher is required for ADT 21.0.0.</li>
+ <li>ADT 21.0.0 is designed for use with <a href="{@docRoot}tools/sdk/tools-notes.html">SDK
+ Tools r21</a>. If you haven't already installed SDK Tools r21.0.0 into your SDK, use the
+ Android SDK Manager to do so.</li>
+ </ul>
+ </dd>
+
+ <dt>General improvements:</dt>
+ <dd>
+ <ul>
+ <li>Layout Editor
+ <ul>
+ <li>Added multi-configuration editing feature that was previewed at Google I/O
+ developer tools talk in June. For an overview, see the
+ <a href="https://www.youtube.com/watch?v=Erd2k6EKxCQ">session recording</a>
+ (starting at: 20:30).</li>
+ <li>Modified the layout logic so that setting a {@link android.app.Fragment} layout or
+ a {@link android.widget.ListView} preview layout is now applied not
+ only to the current layout but to all other configurations of the same layout.</li>
+ <li>Updated the editor to include resources from library projects in the resource chooser,
+ XML code completion, Go To Declaration and other editing contexts.</li>
+ <li>Updated the editor so that it no longer forces all variations of a single
+ layout into a single editor. You can, for example, open both the landscape and portrait
+ versions of a layout as separate editors and quickly switch between them, or even
+ re-dock your editors to edit them simultaneously. If you prefer the previous behavior,
+ set the new option in <strong>Preferences > Android > Editors</strong> to use the
+ old behavior.</li>
+ <li>Improved the handling of {@link android.widget.RelativeLayout} in the layout editor,
+ so that dragging widgets around and deleting them should now result in the layout
+ working more intuitively. In particular, deleting a widget causes the constraints
+ flowing through the deleted widgets to be intelligently adjusted, and when moving
+ widgets the constraints are preserved whenever possible.</li>
+ <li>Added the ability to specify a default action in Layout Editor views, which you can
+ invoke with the <em>F2</em> key. For example, after dropping a button or text view,
+ you can press <em>F2</em> to edit its text.</li>
+ <li>Added renaming of an ID (changing the {@code android:id} attribute) by invoking the
+ <strong>Rename</strong> shortcut.</li>
+ <li>Adding a new locale is now easier with the new <strong>Add Locale...</strong> action
+ in the locale menu. In addition to creating the new values folder, it lets you edit an
+ initial set of translations for the new locale.</li>
+ <li>Updated the editor so that when a custom view (or incorrectly configured view)
+ throws an exception during initialization or painting, part of the relevant stack trace
+ is shown inline in the layout editor, and you can click on the stack frames to jump to
+ the relevant location</li>
+ <li>Improved the editor error display to show the relevant part of a stack trace
+ when a custom view throws exceptions during rendering or construction, and provides
+ hyperlinks to the stack frames.</li>
+ <li>Improved the stack trace display for exceptions for custom views that are generated
+ during rendering.</li>
+ <li>Updated the configuration chooser so that it shows full language and region names (not
+ just 2-letter codes) in menus, in the configuration dialog and other editing contexts.
+ </li>
+ <li>Improved the device menu in the configuration chooser.</li>
+ </ul>
+ </li>
+ <li>Lint
+ <ul>
+ <li>Added over 25 new lint rules for resources, locale settings, layout
+ files, incorrect use of {@link android.util.SparseArray} and
+ {@link android.os.PowerManager.WakeLock} and manifest issues.</li>
+ <li>Improved the XML export function to support the
+ <a href="https://wiki.jenkins-ci.org/display/JENKINS/Android+Lint+Plugin">Jenkins Lint
+ plugin</a>.
+ </li>
+ </ul>
+ </li>
+ <li>Editors
+ <ul>
+ <li>Modified the plugin to remember which editor mode (text or graphical) you were last
+ using for each type of editor (layout, manifest or values) and uses that mode for newly
+ opened files. This means that if you prefer to work with just XML, the editors start
+ showing you XML text editors after you have switched to them for each type of editor.</li>
+ <li>Updated XML code completion so that it completes (and shows documentation for) theme
+ references, such as {@code ?android:attr/dividerHeight}.</li>
+ </ul>
+ </li>
+ <li>Android Virtual Devices (AVD)
+ <ul>
+ <li>Added new <strong>Device Definitions</strong> tab in the AVD Manager for configuring
+ standard size and Nexus virtual devices.</li>
+ <li>Improved emulators so that they launch with a skin that is dynamically generated and
+ reflects the actual hardware configured in the AVD Manager.</li>
+ </ul>
+ </li>
+ <li>Improved the new template mechanism, cleaned up the existing templates and added
+ several new templates</li>
+ <li>Added ability to export images and frames in the Tracer for OpenGL ES tool.</li>
+ <li>Integrated the Systrace tool into the DDMS perspective.</li>
+ <li>Improved the JUnit test runner to allow a test to be run on all connected devices
+ simultaneously.</li>
+ </ul>
+ </dd>
+
+ <dt>Bug fixes:</dt>
+ <dd>
+ <ul>
+ <li>Fixed the editors so that attributes and resources specified by XML files in the
+ {@code /values} directory are validated when files are saved.</li>
+ <li>Added a workaround for a bug in Eclipse on Mac OS X 10.8 where the Property Sheet was not
+ working properly.</li>
+ </ul>
+ </dd>
+
+</dl>
+
+</div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 20.0.3</a> <em>(August 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -126,12 +209,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
- width="9px"/>
-ADT 20.0.2</a> <em>(July 2012)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 20.0.2</a> <em>(July 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -149,7 +233,8 @@
<dd>
<ul>
<li>Fixed keybindings in various XML editors for Eclipse 4.x.</li>
- <li>Fixed bug when creating layout configurations that already exist.</li>
+ <li>Fixed a bug that occurs when you try to create layout configurations that already
+ exist.</li>
</ul>
</dd>
@@ -159,12 +244,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
- width="9px"/>
-ADT 20.0.1</a> <em>(July 2012)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 20.0.1</a> <em>(July 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -199,12 +285,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 20.0.0</a> <em>(June 2012)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 20.0.0</a> <em>(June 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -321,12 +408,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 18.0.0</a> <em>(April 2012)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 18.0.0</a> <em>(April 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -355,12 +443,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 17.0.0</a> <em>(March 2012)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 17.0.0</a> <em>(March 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -444,10 +533,10 @@
(<a href="http://code.google.com/p/android/issues/detail?id=23940">Issue 23940</a>)</li>
<li>Fixed a locale bug affecting Turkish locales in particular.
(<a href="http://code.google.com/p/android/issues/detail?id=23747">Issue 23747</a>)</li>
- <li>Fixed issue where dex complains about duplicate classes in cases where a Library
+ <li>Fixed an issue where dex complains about duplicate classes in cases where a Library
Project depends on the same jar files or Java-only projects.</li>
- <li>Fixed issue where test projects had to independently reference the library projects used
- by an app project. Now referencing only the app project is enough.</li>
+ <li>Fixed an issue where test projects had to independently reference the library projects
+ used by an app project. Now referencing only the app project is enough.</li>
</ul>
</dd>
@@ -456,12 +545,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 16.0.1</a> <em>(December 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 16.0.1</a> <em>(December 2011)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -489,12 +579,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 16.0.0</a> <em>(December 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 16.0.0</a> <em>(December 2011)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -521,12 +612,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 15.0.1</a> <em>(November 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 15.0.1</a> <em>(November 2011)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -554,12 +646,13 @@
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 15.0.0</a> <em>(October 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 15.0.0</a> <em>(October 2011)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -577,7 +670,7 @@
<li>Fixed issues in the SDK Manager
(<a href="http://code.google.com/p/android/issues/detail?id=20939">Issue 20939</a>,
<a href="http://code.google.com/p/android/issues/detail?id=20607">Issue 20607</a>).</li>
- <li>Fixed scrolling issue in the new Logcat panel of DDMS.</li>
+ <li>Fixed a scrolling issue in the new Logcat panel of DDMS.</li>
</ul>
</dd>
</dl>
@@ -585,12 +678,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 14.0.0</a> <em>(October 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 14.0.0</a> <em>(October 2011)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -703,12 +797,13 @@
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 12.0.0</a> <em>(July 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 12.0.0</a> <em>(July 2011)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -755,13 +850,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 11.0.0</a> <em>(June 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 11.0.0</a> <em>(June 2011)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -891,12 +986,13 @@
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 10.0.1</a> <em>(March 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 10.0.1</a> <em>(March 2011)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
@@ -911,7 +1007,7 @@
<ul>
<li>Temporary work-around to resolve the rare cases in which the layout editor will
not open.</li>
- <li>Fix issue in which ADT 10.0.0 would install on Eclipse 3.4 and lower, even though ADT
+ <li>Fixed an issue in which ADT 10.0.0 would install on Eclipse 3.4 and lower, even though ADT
requires Eclipse 3.5 or higher (as of 10.0.0).</li>
</ul>
</dd>
@@ -921,13 +1017,13 @@
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 10.0.0</a> <em>(February 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 10.0.0</a> <em>(February 2011)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -971,13 +1067,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 9.0.0</a> <em>(January 2011)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 9.0.0</a> <em>(January 2011)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -1080,13 +1176,13 @@
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 8.0.1</a> <em>(December 2010)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 8.0.1</a> <em>(December 2010)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -1109,13 +1205,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px"
-width="9px" />
-ADT 8.0.0</a> <em>(December 2010)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 8.0.0</a> <em>(December 2010)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -1146,9 +1242,9 @@
<li>Contextual menu with enum/flag type properties.</li>
<li>New zoom controls.</li>
</ul></li>
- <li>New HierarchyViewer plug-in integrated in Eclipse.</li>
- <li>Android launch configurations don't recompile the whole workspace on launch anymore.</li>
- <li><code>android.jar</code> source and javadoc location can now be configured.</li>
+ <li>New HierarchyViewer plugin for Eclipse.</li>
+ <li>Android launch configurations no longer recompile the whole workspace on launch.</li>
+ <li>The location of <code>android.jar</code> source and javadoc can now be configured.</li>
</ul>
</dd>
</dl>
@@ -1156,12 +1252,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
-ADT 0.9.9</a> <em>(September 2010)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 0.9.9</a> <em>(September 2010)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -1183,13 +1280,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
-ADT 0.9.8</a> <em>(September 2010)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 0.9.8</a> <em>(September 2010)</em>
+ </p>
-
+ <div class="toggle-content-toggleme">
</ul>
</dd>
@@ -1223,7 +1320,7 @@
Multiple Screens</a> are now available.</li>
<li>Fixes problems with handling of library project names that
contain characters that are incompatible with the Eclipse path variable.
-Now properly sets up the link between the main project and the library
+Now it properly sets up the link between the main project and the library
project.</li>
</ul>
</dd>
@@ -1232,12 +1329,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
-ADT 0.9.7</a> <em>(May 2010)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 0.9.7</a> <em>(May 2010)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Library projects:</dt>
<dd>
@@ -1257,12 +1355,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
-ADT 0.9.6</a> <em>(March 2010)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 0.9.6</a> <em>(March 2010)</em>
+ </p>
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -1316,20 +1415,22 @@
<ul>
<li>Applications launched from ADT now behave as if they were clicked from the
Home screen.</li>
-<li>Fixes issue where add-on with no optional library would not show up as valid
+<li>Fixes an issue where add-ons without an optional library would not show up as valid
targets for application launches.</li>
-<li>Resolves possible crash when launching applications.</li>
+<li>Resolves a possible crash when launching applications.</li>
</ul>
</dd>
</dl>
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
-ADT 0.9.5</a> <em>(December 2009)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 0.9.5</a> <em>(December 2009)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
@@ -1342,9 +1443,10 @@
<dt>General notes:</dt>
<dd>
<ul>
-<li>AVD Launch dialog now shows scale value.</li>
-<li>Fixes potential NPE in SDK Manager on AVD launch, for older AVD with no skin name specified.</li>
-<li>Fixes XML validation issue in on older Java versions.</li>
+<li>The AVD Launch dialog now allows you to set the scale value.</li>
+<li>Fixes a potential NullPointerException in the SDK Manager when you launch an AVD that does not
+ have a skin name specified.</li>
+<li>Fixes an XML validation issue in older Java versions.</li>
<li>.apk packaging now properly ignores vi swap files as well as hidden files.</li>
</ul>
</dd>
@@ -1352,11 +1454,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)">
- <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
-ADT 0.9.4</a> <em>(October 2009)</em>
- <div class="toggleme">
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>ADT 0.9.4</a> <em>(October 2009)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<dl>
<dt>Dependencies:</dt>
diff --git a/docs/html/tools/sdk/ndk/index.jd b/docs/html/tools/sdk/ndk/index.jd
index 064b2c3..ad4fd7c 100644
--- a/docs/html/tools/sdk/ndk/index.jd
+++ b/docs/html/tools/sdk/ndk/index.jd
@@ -1,22 +1,195 @@
ndk=true
-ndk.win_download=android-ndk-r8b-windows.zip
-ndk.win_bytes=188724991
-ndk.win_checksum=6d290d4f2729ef2063c5ae5b1e335622
+ndk.win_download=android-ndk-r8c-windows.zip
+ndk.win_bytes=233787657
+ndk.win_checksum=3ff1570fa4ea865b7702507ea43dbae4
-ndk.mac_download=android-ndk-r8b-darwin-x86.tar.bz2
-ndk.mac_bytes=181255568
-ndk.mac_checksum=94fe392194ea41f8a70cfce0dee3870f
+ndk.mac_download=android-ndk-r8c-darwin-x86.tar.bz2
+ndk.mac_bytes=214270840
+ndk.mac_checksum=74a23e9e058512121835e0d6932e72d5
-ndk.linux_download=android-ndk-r8b-linux-x86.tar.bz2
-ndk.linux_bytes=160466240
-ndk.linux_checksum=6694ccc04d543500f0661a75f6c46526
+ndk.linux_download=android-ndk-r8c-linux-x86.tar.bz2
+ndk.linux_bytes=179945337
+ndk.linux_checksum=b0851346ff90c9266bc050016a228319
page.title=Android NDK
@jd:body
+
+
+<div id="tos" style="display:none;width:760px;height:0;margin:0 auto">
+
+<div class="ndk" style="
+z-index: 99;
+width: 720px;
+position: absolute;
+margin: -70px 0;
+padding: 14px;
+background: white;
+border: 1px solid #999;
+box-shadow: -10px 10px 50px #888;
+-moz-box-shadow: -10px 10px 50px #888;
+-webkit-box-shadow: -10px 10px 50px #888;">
+<p>Before installing the Android NDK, you must agree to the following terms and conditions.</p>
+<div class="sdk-terms" style="width:auto" onfocus="this.blur()">
+<h2 class="norule">Terms and Conditions</h2>
+This is the Android Software Development Kit License Agreement
+
+<h3>1. Introduction</h3>
+1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Google in relation to your use of the SDK.
+
+1.2 “Android” means the Android software stack for devices, as made available under the Android Open Source Project, which is located at the following URL: http://source.android.com/, as updated from time to time.
+
+1.3 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+
+<h3>2. Accepting this License Agreement</h3>
+2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.
+
+2.2 By clicking to accept, you hereby agree to the terms of this License Agreement.
+
+2.3 You may not use the SDK and may not accept the License Agreement if you are a person barred from receiving the SDK under the laws of the United States or other countries including the country in which you are resident or from which you use the SDK.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the License Agreement or use the SDK on behalf of your employer or other entity.
+
+
+<h3>3. SDK License from Google</h3>
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law, and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.
+
+3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.
+
+3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.
+
+3.6 You agree that the form and nature of the SDK that Google provides may change without prior notice to you and that future versions of the SDK may be incompatible with applications developed on previous versions of the SDK. You agree that Google may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you or to users generally at Google's sole discretion, without prior notice to you.
+
+3.7 Nothing in this License Agreement gives you a right to use any of Google's trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.8 You agree that you will not remove, obscure, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+
+<h3>4. Use of the SDK by You</h3>
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under this License Agreement in or to any software applications that you develop using the SDK, including any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications for general public users, you will protect the privacy and legal rights of those users. If the users provide you with user names, passwords, or other login information or personal information, you must make the users aware that the information will be available to your application, and you must provide legally adequate privacy notice and protection for those users. If your application stores personal or sensitive information provided by users, it must do so securely. If the user provides your application with Google Account information, your application may only use that information to access the user's Google Account when, and for the limited purposes for which, the user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or distribution of an application, that interferes with, disrupts, damages, or accesses in an unauthorized manner the servers, networks, or other properties or services of any third party including, but not limited to, Google or any mobile communications carrier.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any data, content, or resources that you create, transmit or display through Android and/or applications for Android, and for the consequences of your actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.
+
+
+<h3>5. Your Developer Credentials</h3>
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer credentials that may be issued to you by Google or which you may choose yourself and that you will be solely responsible for all applications that are developed under your developer credentials.
+
+
+<h3>6. Privacy and Information</h3>
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage statistics from the software including but not limited to a unique identifier, associated IP address, version number of the software, and information on which tools and/or services in the SDK are being used and how they are being used. Before any of this information is collected, the SDK will notify you and seek your consent. If you withhold consent, the information will not be collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in accordance with Google's Privacy Policy.
+
+
+<h3>7. Third Party Applications</h3>
+7.1 If you use the SDK to run applications developed by a third party or that access data, content or resources provided by a third party, you agree that Google is not responsible for those applications, data, content, or resources. You understand that all data, content or resources which you may access through such third party applications are the sole responsibility of the person from which they originated and that Google is not liable for any loss or damage that you may experience as a result of the use or access of any of those third party applications, data, content, or resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party application may be protected by intellectual property rights which are owned by the providers (or by other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute or create derivative works based on these data, content, or resources (either in whole or in part) unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may be subject to separate terms between you and the relevant third party. In that case, this License Agreement does not affect your legal relationship with these third parties.
+
+
+<h3>8. Using Android APIs</h3>
+8.1 Google Data APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be protected by intellectual property rights which are owned by Google or those parties that provide the data (or by other persons or companies on their behalf). Your use of any such API may be subject to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create derivative works based on this data (either in whole or in part) unless allowed by the relevant Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you shall retrieve data only with the user's explicit consent and only when, and for the limited purposes for which, the user has given you permission to do so.
+
+
+<h3>9. Terminating this License Agreement</h3>
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+(A) you have breached any provision of this License Agreement; or
+(B) Google is required to do so by law; or
+(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated its relationship with Google or ceased to offer certain parts of the SDK to you; or
+(D) Google decides to no longer provide the SDK or certain parts of the SDK to users in the country in which you are resident or from which you use the service, or the provision of the SDK or certain SDK services to you by Google is, in Google's sole discretion, no longer commercially viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Google have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall continue to apply to such rights, obligations and liabilities indefinitely.
+
+
+<h3>10. DISCLAIMER OF WARRANTIES</h3>
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+
+<h3>11. LIMITATION OF LIABILITY</h3>
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+
+<h3>12. Indemnification</h3>
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.
+
+
+<h3>13. Changes to the License Agreement</h3>
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Google will make a new version of the License Agreement available on the website where the SDK is made available.
+
+
+<h3>14. General Legal Terms</h3>
+14.1 This License Agreement constitutes the whole legal agreement between you and Google and governs your use of the SDK (excluding any services which Google may provide to you under a separate written agreement), and completely replaces any prior agreements between you and Google in relation to the SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Google has the benefit of under any applicable law), this will not be taken to be a formal waiver of Google's rights and that those rights or remedies will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this License Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you or Google without the prior written approval of the other party. Neither you nor Google shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall be governed by the laws of the State of California without regard to its conflict of laws provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located within the county of Santa Clara, California to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+
+<em>November 13, 2012</em>
+</div>
+
+
+
+<div id="sdk-terms-form">
+<p>
+<input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" />
+<label id="agreeLabel" for="agree">I have read and agree with the above terms and conditions</label>
+</p>
+<p><a href="" class="button disabled ndk" id="downloadForRealz" onclick="return onDownloadNdkForRealz(this);"></a></p>
+</div>
+
+
+
+</div>
+</div>
+
+
+
+
+
+
+
+
+
+
<div id="qv-wrapper">
<div id="qv">
<h2>In this document</h2>
@@ -44,8 +217,8 @@
<p>The NDK is a toolset that allows you to implement parts
of your app using native-code languages such as C and C++. For certain types of apps,
- this can be helpful so that you may reuse existing code libraries written in these
- languages and possibly increased performance.</p>
+ this can be helpful so you can reuse existing code libraries written in these
+ languages, but most apps do not need the Android NDK.</p>
<p>Before downloading the NDK, you should understand that <strong>the NDK
will not benefit most apps</strong>. As a developer, you need to balance its benefits
@@ -73,51 +246,325 @@
<p>The sections below provide information and notes about successive releases of
the NDK, as denoted by revision number. </p>
-<script type="text/javascript">
-function toggleDiv(link) {
- var toggleable = $(link).parent();
- if (toggleable.hasClass("closed")) {
- //$(".toggleme", toggleable).slideDown("fast");
- toggleable.removeClass("closed");
- toggleable.addClass("open");
- $(".toggle-img", toggleable).attr("title", "hide").attr("src", "{@docRoot}assets/images/triangle-opened.png");
- } else {
- //$(".toggleme", toggleable).slideUp("fast");
- toggleable.removeClass("open");
- toggleable.addClass("closed");
- $(".toggle-img", toggleable).attr("title", "show").attr("src", "/assets/images/triangle-closed.png");
- }
- return false;
-}
-</script>
-<style>
-.toggleable {
-padding: 5px 0 0;
-}
-.toggleme {
- padding: 10px 0 0 20px;
-}
-.toggleable a {
- text-decoration:none;
-}
-.toggleme a {
- text-decoration:underline;
-}
-.toggleable.closed .toggleme {
- display:none;
-}
-#jd-content .toggle-img {
- margin:0 5px 3px 0;
-}
-</style>
+<div class="toggle-content opened">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 8c</a> <em>(November 2012)</em>
+ </p>
-<div class="toggleable open">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 8b</a> <em>(July 2012)</em>
+ <div class="toggle-content-toggleme">
+ <dl>
+ <dt>Important changes:</dt>
- <div class="toggleme">
+ <dd>
+ <ul>
+ <li>Added the Clang 3.1 compiler to the NDK. The GNU Compiler Collection (GCC) 4.6 is
+ still the default, so you must explicitly enable the Clang compiler option as follows:
+ <ul>
+ <li>For {@code ndk-build}, export {@code NDK_TOOLCHAIN_VERSION=clang3.1} <em>or</em>
+ add this environment variable setting to {@code Application.mk}.</li>
+ <li>For standalone builds, add {@code --llvm-version=3.1} to
+ {@code make-standalone-toolchain.sh} and replace {@code CC} and {@code CXX} in your
+ makefile with {@code <tool-path>/bin/clang} and
+ {@code <tool-path>/bin/clang++}. See {@code STANDALONE-TOOLCHAIN.html} for
+ details.</li>
+ </ul>
+ <p class="note"><strong>Note:</strong> This feature is experimental. Please try it and
+ <a href="http://code.google.com/p/android/issues/list">report any issues</a>.</p></li>
+ <li>Added Gold linker {@code ld.gold} for the Windows toolchain. Gold linker is also the
+ default for ARM and X86 on all hosts. You may override it to use the {@code ld.bfd}
+ linker by adding {@code LOCAL_LDFLAGS += -fuse-ld=bfd} to {@code Android.mk}, or by passing
+ {@code -fuse-ld=bfd} to the g++/clang++ command line that does the linking.</li>
+ <li>Added checks for spaces in the NDK path to the {@code ndk-build[.cmd]} and
+ {@code ndk-gdb} scripts, to prevent build errors that are difficult to diagnose.</li>
+ <li>Made the following changes to API level handling:
+ <ul>
+ <li>Modified build logic so that projects that specify {@code android-10} through
+ {@code android-13} in {@code APP_PLATFORM}, {@code project.properties} or
+ {@code default.properties} link against {@code android-9} instead of
+ {@code android-14}.
+ <li>Updated build so that executables using android-16 (Jelly Bean) or higher are
+ compiled with the {@code -fPIE} option for position-independent executables (PIE).
+ A new {@code APP_PIE} option allows you to control this behavior. See {@code
+ APPLICATION-MK.html} for details.
+ <p class="note">
+ <strong>Note:</strong> All API levels above 14 still link against {@code
+ platforms/android-14} and no new {@code platforms/android-N} have been added.
+ </p></li>
+ <li>Modified {@code ndk-build} to provide warnings if the adjusted API level is larger
+ than {@code android:minSdkVersion} in the project's {@code AndroidManifest.xml}.</li>
+ </ul>
+ </li>
+ <li>Updated the {@code cpu-features} helper library to include more ARM-specific features.
+ See {@code sources/android/cpufeatures/cpu-features.h} for details.</li>
+ <li>Modified the long double on the X86 platform to be 8 bytes. This data type is now the
+ same size as a double, but is still treated as a distinct type.</li>
+ <li>Updated build for {@code APP_ABI=armeabi-v7a}:
+ <ul>
+ <li>Modified this build type to pass the {@code -march=armv7-a} parameter
+ to the linker. This change ensures that v7-specific libraries and {@code crt*.o} are
+ linked correctly.</li>
+ <li>Added {@code -mfpu=vfpv3-d16} to {@code ndk-build} instead of the
+ {@code -mfpu=vfp} option used in previous releases.</li>
+ </ul>
+ </li>
+ </ul>
+ </dd>
+ </dl>
+
+ <dl>
+ <dt>Important bug fixes:</dt>
+
+ <dd>
+ <ul>
+ <li>Fixed an issue where running {@code make-standalone-toolchain.sh} with root privileges
+ resulted in the stand alone tool chain being inaccessible to some users.
+ (<a href="http://code.google.com/p/android/issues/detail?id=35279">Issue 35279</a>)
+ <ul>
+ <li>All files and executables in the NDK release package are set to have read and
+ execute permissions for all.</li>
+ <li>The ownership/group of {@code libstdc++.a} is now preserved when copied.</li>
+ </ul>
+ </li>
+ <li>Removed redundant {@code \r} from Windows prebuilt {@code echo.exe}. The redundant
+ {@code \r} caused {@code gdb.setup} to fail in the GNU Debugger (GDB) because it
+ incorrectly became part of the path.
+ (<a href="http://code.google.com/p/android/issues/detail?id=36054">Issue 36054</a>)</li>
+ <li>Fixed Windows parallel builds that sometimes failed due to timing issues in the
+ {@code host-mkdir} implementation.
+ (<a href="http://code.google.com/p/android/issues/detail?id=25875">Issue 25875</a>)</li>
+ <li>Fixed GCC 4.4.3 GNU {@code libstdc++} to <em>not</em> merge {@code typeinfo} names by
+ default. For more details, see
+ {@code toolchain repo gcc/gcc-4.4.3/libstdc++-v3/libsupc++/typeinfo}.
+ (<a href="http://code.google.com/p/android/issues/detail?id=22165">Issue 22165</a>)</li>
+ <li>Fixed problem on {@code null} context in GCC 4.6
+ {@code cp/mangle.c::write_unscoped_name}, where GCC may crash when the context is
+ {@code null} and dereferenced in {@code TREE_CODE}.</li>
+ <li>Fixed GCC 4.4.3 crashes on ARM NEON-specific type definitions for floats.
+ (<a href="http://code.google.com/p/android/issues/detail?id=34613">Issue 34613</a>)</li>
+ <li>Fixed the {@code STLport} internal {@code _IteWrapper::operator*()} implementation
+ where a stale stack location holding the dereferenced value was returned and caused
+ runtime crashes.
+ (<a href="http://code.google.com/p/android/issues/detail?id=38630">Issue 38630</a>)</li>
+
+ <li>ARM-specific fixes:
+ <ul>
+ <li>Fixed ARM GCC 4.4.3/4.6 {@code g++} to not warn that the <em>mangling of
+ <va_list> was changed in GCC 4.4</em>. The workaround using the
+ {@code -Wno-psabi} switch to avoid this warning is no longer required.</li>
+ <li>Fixed an issue when a project with {@code .arm} or {@code .neon} suffixes in
+ {@code LOCAL_SRC_FILES} also used {@code APP_STL}. With {@code APP_STL}, the
+ {@code ndk-build} script searches for C++ files in {@code LOCAL_SRC_FILES} before
+ adding STL {@code header/lib} paths to compilation. Modified {@code ndk-build} to
+ filter out {@code .arm} and {@code .neon} suffixes before the search, otherwise items
+ in {@code LOCAL_SRC_FILES} like {@code myfile.cpp.arm.neon} won't be compiled as C++
+ code.</li>
+ <li>Fixed {@code binutils-2.21/ld.bfd} to be capable of linking object from older
+ binutils without {@code tag_FP_arch}, which was producing <em>assertion fail</em>
+ error messages in GNU Binutils.
+ (<a href="http://code.google.com/p/android/issues/detail?id=35209">Issue 35209</a>)
+ </li>
+ <li>Removed <em>Unknown EABI object attribute 44</em> warning when
+ {@code binutils-2.19/ld} links prebuilt object by newer {@code binutils-2.21}</li>
+ <li>Fixed an issue in GNU {@code stdc++} compilation with both {@code -mthumb} and
+ {@code -march=armv7-a}, by modifying {@code make-standalone-toolchain.sh} to populate
+ {@code headers/libs} in sub-directory {@code armv7-a/thumb}.
+ (<a href="http://code.google.com/p/android/issues/detail?id=35616">Issue 35616</a>)
+ </li>
+ <li>Fixed <em>unresolvable R_ARM_THM_CALL relocation</em> error.
+ (<a href="http://code.google.com/p/android/issues/detail?id=35342">Issue 35342</a>)
+ </li>
+ <li>Fixed internal compiler error at {@code reload1.c:3633}, caused by the ARM
+ back-end expecting the wrong operand type when sign-extend from {@code char}.
+ (<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50099">GCC Issue 50099</a>)</li>
+ <li>Fixed internal compiler error with negative shift amount.
+ (<a href="http://gcc.gnu.org/ml/gcc-patches/2011-10/msg00594.html">GCC Issue</a>)</li>
+ </ul>
+ </li>
+
+ <li>Fixed {@code -fstack-protector} for X86, which is also the default for the
+ {@code ndk-build} x86 ABI target.</li>
+
+ <li>MIPS-specific fixes:
+ <ul>
+ <li>Fixed {@code STLport} endian-ness by setting {@code _STLP_LITTLE_ENDIAN} to 1 when
+ compiling MIPS {@code libstlport_*}.</li>
+ <li>Fixed GCC {@code __builtin_unreachable} issue when compiling LLVM.
+ (<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54369">GCC Issue 54369</a>)</li>
+ <li>Backported fix for {@code cc1} compile process consuming 100% CPU.
+ (<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50380">GCC Issue 50380</a>)</li>
+ </ul>
+ </li>
+
+ <li>GNU Debugger-specific fixes:
+ <ul>
+ <li>Disabled Python support in gdb-7.x at build, otherwise the gdb-7.x configure
+ function may pick up whatever Python version is available on the host and build
+ {@code gdb} with a hard-wired dependency on a specific version of Python.
+ (<a href="http://code.google.com/p/android/issues/detail?id=36120">Issue 36120</a>)
+ </li>
+ <li>Fixed {@code ndk-gdb} when {@code APP_ABI} contains {@code all} and matchs none
+ of the known architectures.
+ (<a href="http://code.google.com/p/android/issues/detail?id=35392">Issue 35392</a>)
+ </li>
+ <li>Fixed Windows pathname support, by keeping the {@code :} character if it looks
+ like it could be part of a Windows path starting with a drive letter.
+ (<a href="http://sourceware.org/bugzilla/show_bug.cgi?id=12843">GDB Issue 12843</a>)
+ </li>
+ <li>Fixed adding of hardware breakpoint support for ARM in {@code gdbserver}.
+ (<a href="http://sourceware.org/ml/gdb-patches/2011-09/msg00200.html">GDB Issue</a>)
+ </li>
+ <li>Added fix to only read the current {@code solibs} when the linker is consistent.
+ This change speeds up {@code solib} event handling.
+ (<a href="http://code.google.com/p/android/issues/detail?id=37677">Issue 37677</a>)
+ </li>
+ <li>Added fix to make repeated attempts to find {@code solib} breakpoints. GDB now
+ retries {@code enable_break()} during every call to {@code svr4_current_sos()} until
+ it succeeds.
+ (<a href="https://android-review.googlesource.com/#/c/43563">Change 43563</a>)</li>
+ <li>Fixed an issue where {@code gdb} would not stop on breakpoints placed in
+ {@code dlopen-ed} libraries.
+ (<a href="http://code.google.com/p/android/issues/detail?id=34856">Issue 34856</a>)
+ </li>
+ <li>Fixed {@code SIGILL} in dynamic linker when calling {@code dlopen()}, on system
+ where {@code /system/bin/linker} is stripped of symbols and
+ {@code rtld_db_dlactivity()} is implemented as {@code Thumb}, due to not preserving
+ {@code LSB} of {@code sym_addr}.
+ (<a href="http://code.google.com/p/android/issues/detail?id=37147">Issue 37147</a>)
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </dd>
+ </dl>
+
+ <dl>
+ <dt>Other bug fixes:</dt>
+
+ <dd>
+ <ul>
+ <li>Fixed NDK headers:
+ <ul>
+ <li>Fixed {@code arch-mips/include/asm/*} code that was incorrectly removed from
+ original kernel. (<a href="https://android-review.googlesource.com/#/c/43335">Change
+ 43335</a>)</li>
+ <li>Replaced struct member data {@code __unused} with {@code __linux_unused} in
+ {@code linux/sysctl.h} and {@code linux/icmp.h} to avoid conflict with
+ {@code #define __unused} in {@code sys/cdefs.h}.</li>
+ <li>Fixed {@code fenv.h} for enclosed C functions with {@code __BEGIN_DECLS} and
+ {@code __END_DECLS}.</li>
+ <li>Removed unimplemented functions in {@code malloc.h}.</li>
+ <li>Fixed {@code stdint.h} defintion of {@code uint64_t} for ANSI compilers.
+ (<a href="http://code.google.com/p/android/issues/detail?id=1952">Issue 1952</a>)</li>
+ <li>Fixed preprocessor macros in {@code <arch>/include/machine/*}.</li>
+ <li>Replaced {@code link.h} for MIPS with new version supporting all platforms.</li>
+ <li>Removed {@code linux-unistd.h}</li>
+ <li>Move GLibc-specific macros {@code LONG_LONG_MIN}, {@code LONG_LONG_MAX} and
+ {@code ULONG_LONG_MAX} from {@code <pthread.h>} to {@code <limits.h>}.</li>
+ </ul>
+ </li>
+ <li>Fixed a buffer overflow in {@code ndk-stack-parser}.</li>
+ <li>Fixed {@code _STLP_USE_EXCEPTIONS}, when not defined, to omit all declarations
+ and uses of {@code __Named_exception}. Compiling and use of {@code __Named_exception}
+ settings only occurs when {@code STLport} is allowed to use exceptions.</li>
+ <li>Fixed building of Linux-only NDK packages without also building Windows code. Use the
+ following settings to perform this type of build:
+ <pre>./build/tools/make-release.sh --force --systems=linux-x86</pre></li>
+ <li>Fixed {@code libc.so} so it does not export {@code atexit()} and {@code __do_handler}.
+ These symbols are exported for ARM builds by the system version of the C library to
+ support legacy native libraries. NDK-generated should never reference them directly.
+ Instead, each shared library or executable should embed its own version of these symbols,
+ provided by {@code crtbegin_*.o}.
+ <p>If your project is linked with the {@code -nostdlib -Wl,--no-undefined} options, you
+ must provide your own {@code __dso_handle} because {@code crtbegin_so.o} is not linked in
+ this case. The content of {@code __dso_handle} does not matter, as shown in the following
+ example code:</p>
+<pre>
+extern "C" {
+ extern void *__dso_handle __attribute__((__visibility__ ("hidden")));
+ void *__dso_handle;
+}
+</pre>
+ </li>
+ <li>Fixed symbol decoder for ARM used in {@code objdump} for {@code plt} entries to
+ generate a more readable form {@code function@plt}.</li>
+ <li>Removed the following symbols, introduced in GCC 4.6 {@code libgcc.a}, from
+ the X86 platform {@code libc.so} library: {@code __aeabi_idiv0}, {@code __aeabi_ldiv0},
+ {@code __aeabi_unwind_cpp_pr1}, and {@code __aeabi_unwind_cpp_pr2}.</li>
+ <li>Removed unused {@code .ctors}, {@code .dtors}, and {@code .eh_frame} in MIPS
+ {@code crt*_so.S}.</li>
+ <li>Updated {@code ndk-gdb} so that it only takes the last line of output for
+ {@code ndk-build} {@code DUMP_XXXX}. This change ensures that if {@code Application.mk} or
+ {@code Android.mk} print something with {@code $(info ...)} syntax, it does not get
+ injected into the result of {@code DUMP_XXXX}.
+ (<a href="https://groups.google.com/d/msg/android-ndk/-/ew0lTWGr1UEJ">More info</a>)</li>
+ </ul>
+ </dd>
+ </dl>
+
+ <dl>
+ <dt>Other changes:</dt>
+
+ <dd>
+ <ul>
+ <li>Removed {@code arch-x86} and {@code arch-mips} headers from
+ {@code platforms/android-[3,4,5,8]}. Those headers were incomplete, since both X86 and
+ MIPS ABIs are only supported at API 9 or higher.</li>
+ <li>Simplified c++ include path in standalone packages, as shown below.
+ (<a href="http://code.google.com/p/android/issues/detail?id=35279">Issue 35279</a>)
+<pre>
+<path>/arm-linux-androideabi/include/c++/4.6.x-google
+ to:
+<path>/include/c++/4.6/
+</pre></li>
+ <li>Fixed {@code ndk-build} to recognize more C++ file extensions by default:
+ {@code .cc .cp .cxx .cpp .CPP .c++ .C}. You may still use {@code LOCAL_CPP_EXTENSION} to
+ overwrite these extension settings.</li>
+ <li>Fixed an issue in {@code samples/san-angeles} that caused a black screen or freeze
+ frame on re-launch.</li>
+ <li>Replaced deprecated APIs in NDK samples.
+ (<a href="http://code.google.com/p/android/issues/detail?id=20017">Issue 20017</a>)
+ <ul>
+ <li>{@code hello-gl2} from android-5 to android-7</li>
+ <li>{@code native-activity} from android-9 to android-10</li>
+ <li>{@code native-audio} from android-9 to android-10</li>
+ <li>{@code native-plasma} from android-9 to android-10</li>
+ </ul>
+ </li>
+ <li>Added new branding for Android executables with a simpler scheme in section
+ {@code .note.android.ident} (defined in {@code crtbegin_static/dynamic.o}) so that
+ debugging tools can act accordingly. The structure member and values are defined as
+ follows:
+<pre>
+static const struct {
+ int32_t namesz; /* = 8, sizeof ("Android") */
+ int32_t descsz; /* = 1 * sizeof(int32_t) */
+ int32_t type; /* = 1, ABI_NOTETYPE */
+ char name[sizeof "Android"]; /* = "Android" */
+ int32_t android_api; /* = 3, 4, 5, 8, 9, 14 */
+}
+</pre>
+ <p>The previous branding options in section {@code .note.ABI-tag} are deprecated.</p>
+ </li>
+ <li>Added a new script {@code run-tests-all.sh} which calls {@code run-tests.sh} and
+ {@code standalone/run.sh} with various conditions. The script {@code run-tests.sh} runs
+ without the {@code --abi} option, and is enhanced to compile most of the tests for all
+ supported ABIs and run on all attached devices</li>
+ </ul>
+ </dd>
+ </dl>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 8b</a> <em>(July 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
<p>The main features of this release are a new GNU Compiler Collection (GCC) 4.6 toolchain and
GNU Debugger (GDB) 7.3.x which adds debugging support for the Android 4.1 (API Level 16) system
image.</p>
@@ -304,12 +751,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 8</a> <em>(May 2012)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 8</a> <em>(May 2012)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK includes support for MIPS ABI and a few additional fixes.</p>
<dl>
@@ -376,12 +824,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 7c</a> <em>(April 2012)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 7c</a> <em>(April 2012)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK includes an important fix for Tegra2-based devices, and a few
additional fixes and improvements:</p>
@@ -429,12 +878,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 7b</a> <em>(February 2012)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 7b</a> <em>(February 2012)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK includes fixes for native Windows builds, Cygwin and many other
improvements:</p>
@@ -500,7 +950,7 @@
first process listed by {@code ps}, which is usually a service process.</li>
<li>Fixed a rare bug where NDK r7 would fail to honor the {@code LOCAL_ARM_MODE} value
and always compile certain source files (but not all) to 32-bit instructions.</li>
- <li>{@code stlport}: Refresh the sources to match the Android platform version. This
+ <li>{@code STLport}: Refresh the sources to match the Android platform version. This
update fixes a few minor bugs:
<ul>
<li>Fixed instantiation of an incomplete type</li>
@@ -511,7 +961,7 @@
</ul>
<p>For complete details, see the commit log.</p>
</li>
- <li>{@code stlport}: Removed 5 unnecessary static initializers from the library.</li>
+ <li>{@code STLport}: Removed 5 unnecessary static initializers from the library.</li>
<li>The GNU libstdc++ libraries for armeabi-v7a were mistakenly compiled for
armeabi instead. This change had no impact on correctness, but using the right
ABI should provide slightly better performance.</li>
@@ -539,12 +989,13 @@
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 7</a> <em>(November 2011)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 7</a> <em>(November 2011)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK includes new features to support the Android 4.0 platform as well
as many other additions and improvements:</p>
@@ -842,13 +1293,13 @@
</div>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 6b</a> <em>(August 2011)</em>
+ </p>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 6b</a> <em>(August 2011)</em>
-
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK does not include any new features compared to r6. The r6b release
addresses the following issues in the r6 release:</p>
<dl>
@@ -876,12 +1327,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 6</a> <em>(July 2011)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 6</a> <em>(July 2011)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK includes support for the x86 ABI and other minor changes.
For detailed information describing the changes in this release, read the
<code>CHANGES.HTML</code> document included in the NDK package.
@@ -928,12 +1380,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#" onclick="return toggleDiv(this)"><img src=
- "{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px">
- Android NDK, Revision 5c</a> <em>(June 2011)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 5c</a> <em>(June 2011)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK does not include any new features compared to r5b. The r5c release
addresses the following problems in the r5b release:</p>
<dl>
@@ -1011,14 +1464,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#"
- onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png"
- class="toggle-img"
- height="9px"
- width="9px" /> Android NDK, Revision 5b</a> <em>(January 2011)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 5b</a> <em>(January 2011)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK does not include any new features compared to r5. The r5b release addresses the
following problems in the r5 release:
</p>
@@ -1063,14 +1515,13 @@
</div>
</div>
-<div class="toggleable closed">
- <a href="#"
- onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png"
- class="toggle-img"
- height="9px"
- width="9px" /> Android NDK, Revision 5</a> <em>(December 2010)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 5</a> <em>(December 2010)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>This release of the NDK includes many new APIs, most of which are introduced to
support the development of games and similar applications that make extensive use
of native code. Using the APIs, developers have direct native access to events, audio,
@@ -1142,14 +1593,13 @@
</div>
</div>
- <div class="toggleable closed">
- <a href="#"
- onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png"
- class="toggle-img"
- height="9px"
- width="9px" /> Android NDK, Revision 4b</a> <em>(June 2010)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 4b</a> <em>(June 2010)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<dl>
<dt>NDK r4b notes:</dt>
@@ -1216,14 +1666,13 @@
</div>
</div>
- <div class="toggleable closed">
- <a href="#"
- onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png"
- class="toggle-img"
- height="9px"
- width="9px" /> Android NDK, Revision 3</a> <em>(March 2010)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 3</a> <em>(March 2010)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<dl>
<dt>General notes:</dt>
@@ -1244,14 +1693,13 @@
</div>
</div>
- <div class="toggleable closed">
- <a href="#"
- onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png"
- class="toggle-img"
- height="9px"
- width="9px" /> Android NDK, Revision 2</a> <em>(September 2009)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 2</a> <em>(September 2009)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>Originally released as "Android 1.6 NDK, Release 1".</p>
<dl>
@@ -1270,14 +1718,13 @@
</div>
</div>
- <div class="toggleable closed">
- <a href="#"
- onclick="return toggleDiv(this)"><img src="{@docRoot}assets/images/triangle-closed.png"
- class="toggle-img"
- height="9px"
- width="9px" /> Android NDK, Revision 1</a> <em>(June 2009)</em>
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt="">Android NDK, Revision 1</a> <em>(June 2009)</em>
+ </p>
- <div class="toggleme">
+ <div class="toggle-content-toggleme">
<p>Originally released as "Android 1.5 NDK, Release 1".</p>
<dl>
diff --git a/docs/html/tools/sdk/tools-notes.jd b/docs/html/tools/sdk/tools-notes.jd
index f8b5d25..50fc24a 100644
--- a/docs/html/tools/sdk/tools-notes.jd
+++ b/docs/html/tools/sdk/tools-notes.jd
@@ -28,6 +28,91 @@
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+ alt=""/>SDK Tools, Revision 21</a> <em>(November 2012)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+
+ <dl>
+ <dt>Dependencies:</dt>
+ <dd>
+ <ul>
+ <li>Android SDK Platform-tools revision 15 or later.</li>
+ <li>If you are developing in Eclipse with ADT, note that the SDK Tools r21 is designed
+ for use with ADT 21.0.0 and later. If you haven't already, update your
+ <a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin</a> to 21.0.0.</li>
+ <li>If you are developing outside Eclipse, you must have
+ <a href="http://ant.apache.org/">Apache Ant</a> 1.8 or later.</li>
+ </ul>
+ </dd>
+ <dt>General Notes:</dt>
+ <dd>
+ <ul>
+ <li>Build System
+ <ul>
+ <li>Added a flag that sets <em>jumbo mode</em> for DEX files, which allows a larger
+ number of strings in the DEX files. Enable this mode by adding the following line to
+ the {@code project.properties} file of your project:
+ <pre>set dex.force.jumbo=true</pre></li>
+ <li>Improved the build time by pre-dexing libraries (both JAR files and library
+ projects).</li>
+ <li>Updated the build to generate {@code R} resource classes for library projects
+ with only the IDs needed by the libraries, reducing the risk of hitting DEX file
+ limits for fields and methods.</li>
+ <li>Improved the build so that several editing features (code completion, resource
+ chooser, go to declaration) properly handle library project resources.</li>
+ </ul>
+ </li>
+ <li>Lint
+ <ul>
+ <li>Added over 25 new lint rules for resources, locale settings, layout
+ files, incorrect use of {@link android.util.SparseArray} and
+ {@link android.os.PowerManager.WakeLock} and manifest issues.</li>
+ <li>Updated reporting to include errors in library projects if the library project is
+ in the list of projects to be checked.</li>
+ <li>Added a new {@code lint} target to the Ant build system for easier
+ integration with continuous build systems.</li>
+ <li>Added new {@code --sources} and {@code --classpath} arguments to point to sources
+ with different directory structures.</li>
+ <li>Improved the XML export function to support the <a
+ href="https://wiki.jenkins-ci.org/display/JENKINS/Android+Lint+Plugin">Jenkins Lint
+ plugin</a>.
+ </li>
+ <li>Added support for class file flow analysis.</li>
+ </ul>
+ </li>
+ <li>Android Virtual Devices (AVD)
+ <ul>
+ <li>Added new <strong>Device Definitions</strong> tab in the AVD Manager for configuring
+ standard size and Nexus virtual devices.</li>
+ <li>Improved emulators so that they launch with a skin that is dynamically generated and
+ reflects the actual hardware configured in the AVD Manager.</li>
+ <li>Improved support for developing Android apps on MIPS-based devices with new MIPS
+ System Images for Android Virtual Devices.</li>
+ </ul>
+ </li>
+ <li>Added {@code jobb} tool for creating and encrypting
+ <a href="{@docRoot}guide/google/play/expansion-files.html">APK Expansion Files</a>.
+ (<a href="{@docRoot}tools/help/jobb.html">more info</a>)
+ <li>Improved the Android JUnit test runner to allow a test to be run on all connected
+ devices simultaneously.</li>
+ </ul>
+ </dd>
+
+ <dt>Bug fixes:</dt>
+ <dd>
+ <ul>
+ <li>Fixed manifest merger to properly adapt library classes in the merged manifest.</li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
alt=""/>SDK Tools, Revision 20.0.3</a> <em>(August 2012)</em>
</p>
@@ -128,12 +213,12 @@
<li>Added automatic merging of library project manifest files into the including
project's manifest. Enable this feature with the {@code manifestmerger.enabled} property.</li>
<li>Added automatic ProGuard support for the {@code aapt -G} flag. This change causes
-the build system to generate a temporary ProGuard keep-rules file containing classes that
-are referenced from XML files (such as custom views) and pass this to ProGuard at shrink-time. This
+the build system to generate a temporary ProGuard {@code keep-rules} file containing classes that
+are referenced from XML files (such as custom views) and pass this to ProGuard at shrink time. This
can make the resulting APK much smaller when using just a small portion of a large library project
(such as the Android Support library), since the catch-all rules to keep all custom views from the
default ProGuard configuration file have also been removed.</li>
- <li>Added two ProGuard configuration files for use in projects: {@code
+ <li>Added two ProGuard configuration files for use in projects: {@code
proguard-android-optimize.txt} which enables optimizations and {@code proguard-android.txt} which
disables them.</li>
</ul>
@@ -141,9 +226,8 @@
<li>SDK Manager
<ul>
<li>Improved caching to reduce downloading of repository definitions.</li>
- <li>Added <strong>Tools > Manage Add-on Sites</strong> option to allow deactivation of
- third-party sites for improved performance (e.g., if one or more sites are temporarily slow to
- load.)</li>
+ <li>Added <strong>Tools > Manage Add-on Sites</strong> option to improve performance by
+ allowing temporary deactivation of third-party sites if they are loading slowly.</li>
<li>Added settings for the SDK Manager download cache (<strong>SDK Manager > Tools >
Options</strong>).</li>
</ul>
diff --git a/docs/html/tools/testing/testing_ui.jd b/docs/html/tools/testing/testing_ui.jd
new file mode 100644
index 0000000..0aa7b78
--- /dev/null
+++ b/docs/html/tools/testing/testing_ui.jd
@@ -0,0 +1,356 @@
+page.title=UI Testing
+parent.title=Testing
+parent.link=index.html
+@jd:body
+
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#overview">Overview</a></li>
+ <ul>
+ <li><a href="#workflow">Workflow</a></li>
+ </ul>
+ <li><a href="#uianalysis">Analyzing Your UI</a></li>
+ <li><a href="#prepare">Preparing to Test</a>
+ <ul>
+ <LI><a href="#loading">Load the App</a></LI>
+ <LI><a href="#identifyUI">Identify UI Components</a></LI>
+ <LI><a href="#accessibility">Ensure Accessibility</a></LI>
+ <LI><a href="#configure">Configure Development Environment</a></LI>
+ </ul>
+ </li>
+ <li><a href="#creating">Creating Tests</a>
+ <ul>
+ <LI><a href="#classes">uiautomator API</a></LI>
+ <li><a href="#sample">Sample Test Case</a>
+ </ul>
+ </li>
+ <li><a href="#builddeploy">Building and Deploying Tests</a></li>
+ <li><a href="#running">Running Tests</a></li>
+ <li><a href="#bestpractices">Best Practices</a></li>
+ </ol>
+ <h2>Key classes</h2>
+ <ol>
+ <li><a href="{@docRoot}tools/help/uiautomator/IAutomationSupport.html">IAutomationSupport</a></li>
+ <li><a href="{@docRoot}tools/help/uiautomator/UiAutomatorTestCase.html">UiAutomatorTestCase</a></li>
+ <li><a href="{@docRoot}tools/help/uiautomator/UiCollection.html">UiCollection</a></li>
+ <li><a href="{@docRoot}tools/help/uiautomator/UiDevice.html">UiDevice</a></li>
+ <li><a href="{@docRoot}tools/help/uiautomator/UiObject.html">UiObject</a></li>
+ <li><a href="{@docRoot}tools/help/uiautomator/UiScrollable.html">UiScrollable</a></li>
+ <li><a href="{@docRoot}tools/help/uiautomator/UiSelector.html">UiSelector</a></li>
+ </ol>
+ <h2>See Also</h2>
+ <ol>
+ <li>
+ <a href="{@docRoot}tools/help/uiautomator/index.html">uiautomator (reference)</a>
+ </li>
+ </ol>
+ </div>
+</div>
+
+<p>
+In addition to unit testing the individual components that make up your Android application (such as activities, services, and content providers), it is also important that you test the behavior of your application’s user interface (UI) when it is running on a device. UI testing ensures that your application returns the correct UI output in response to a sequence of user actions on a device, such as entering keyboard input or pressing toolbars, menus, dialogs, images, and other UI controls.
+</p>
+<p>
+Functional or black-box UI testing does not require testers to know the internal implementation details of the app, only its expected output when a user performs a specific action or enters a specific input. This approach allows for better separation of development and testing roles in your organization.
+</p>
+<p>One common approach to UI testing is to run tests manually and verify that the app is behaving as expected. However, this approach can be time-consuming, tedious, and error-prone. A more efficient and reliable approach is to automate the UI testing with a software testing framework. Automated testing involves creating programs to perform testing tasks (test cases) to cover specific usage scenarios, and then using the testing framework to run the test cases automatically and in a repeatable manner.</p>
+
+<h2 id="overview">Overview</h2>
+<p>The Android SDK provides the following tools to support automated, functional UI testing on your application:
+<ul>
+<LI>{@code uiautomatorviewer} - A GUI tool to scan and analyze the UI components of an Android application.</LI>
+<LI>{@code uiautomator} - A Java library containing APIs to create customized functional UI tests, and an execution engine to automate and run the tests.</LI>
+</ul></p>
+
+<p>To use these tools, you must have the following versions of the Android development tools installed:
+<ul>
+<LI>Android SDK Tools, Revision 21 or higher</LI>
+<LI>Android SDK Platform, API 16 or higher</LI>
+</ul>
+</p>
+
+<h3 id="workflow">Workflow for the the uiautomator testing framework</h3>
+<p>Here's a short overview of the steps required to automate UI testing:
+<ol>
+<LI>Prepare to test by installing the app on a test device, analyzing the app’s UI components, and ensuring that your application is accessible by the test automation framework.</LI>
+<li>Create automated tests to simulate specific user interactions on your application.</li>
+<li>Compile your test cases into a JAR file and install it on your test device along with your app.</li>
+<li>Run the tests and view the test results.</li>
+<li>Correct any bugs or defects discovered in testing.</li>
+</ol>
+</p>
+
+<h2 id="uianalysis">Analyzing Your Application's UI</h2>
+<p>Before you start writing your test cases, it's helpful to familiarize yourself with the UI components (including the views and controls) of the targeted application. You can use the {@code uiautomatorviewer} tool to take a snapshot of the foreground UI screen on any Android device that is connected to your development machine. The {@code uiautomatorviewer} tool provides a convenient visual interface to inspect the layout hierarchy and view the properties of the individual UI components that are displayed on the test device. Using this information, you can later create {@code uiautomator} tests with selector objects that target specific UI components to test.</p>
+
+<a href="{@docRoot}images/testing/UIAutomatorViewer.png">
+ <img src="{@docRoot}images/testing/UIAutomatorViewer.png"
+ alt="User interface of uiautomatorviewer tool" height="327px" id="figure1"/>
+</a>
+<p class="img-caption">
+ <strong>Figure 1.</strong> The {@code uiautomatorviewer} showing the captured interface of a test deviice.
+</p>
+
+<p>To analyze the UI components of the application that you want to test:</p>
+<ol>
+<li>Connect your Android device to your development machine.</li>
+<li>Open a terminal window and navigate to {@code <android-sdk>/tools/}.</li>
+<LI>Run the tool with this command:<pre>$ uiautomatorviewer</pre></LI>
+<li><p>To capture a screen for analysis, click the <strong>Device Screenshot</strong> button in the GUI of the {@code uiautomatorviewer} tool.</p>
+<p class="note"><strong>Note: </strong>If you have more than one device connected, specify the device for screen capture by setting the {@code ANDROID_SERIAL} environment variable:
+ <ol type="a">
+ <li>Find the serial numbers for your connected devices by running this command:<pre>$ adb devices</pre> </li>
+ <li>Set the {@code ANDROID_SERIAL} environment variable to select the device to test:
+ <ul>
+ <li>In Windows: <pre>set ANDROID_SERIAL=<device serial number></pre></li>
+ <li>In UNIX: <pre>export ANDROID_SERIAL=<device serial number></pre></li>
+ </ul>
+ </li>
+ </ol>
+If you are connected to only a single device, you do not need to set the ANDROID_SERIAL environment variable.</p>
+</li>
+<li>View the UI properties for your application:
+ <ul>
+ <LI>Hover over the snapshot in the left-hand panel to see the UI components identified by the {@code uiautomatorviewer} tool. You can view the component’s properties listed in the lower right-hand panel, and the layout hierarchy in the upper right-hand panel.</LI>
+ <li>Optionally, click on the <strong>Toggle NAF Nodes</strong> button to see UI components that are not accessible to the {@code uiautomator} testing framework. Only limited information may be available for these components.</li>
+ </ul>
+</li>
+</ol>
+
+<h2 id="prepare">Preparing to Test</h2>
+<p>Before using the {@code uiautomator} testing framework, complete these pre-flight tasks:
+</p>
+<h3 id="loading">Load the application to a device</h3>
+<p>If you are reading this document, chances are that the Android application that you want to test has not been published yet. If you have a copy of the APK file, you can install the APK onto a test device by using the {@code adb} tool. To learn how to install an APK file using the {@code adb} tool, see the <a href="@docRoot}/tools/help/adb.html#move">{@code adb}</a> documentation. </p>
+
+<h3 id="identifyUI">Identify the application’s UI components</h3>
+<p>Before writing your {@code uiautomator} tests, first identify the UI components in the application that you want to test. Typically, good candidates for testing are UI components that are visible and that users can interact with. The UI components should also have visible text labels, <a href="{@docRoot}reference/android/view/View.html#attr_android:contentDescription">{@code android:contentDescription}</a> values, or both.
+
+<p>You can inspect the visible screen objects in an application conveniently by using the {@code uiautomatorviewer} tool. For more information about how to analyze an application screen with this tool, see the section <a href="#uianalaysis">Analyzing Your Application’s UI</a>. For more information about the common types of UI components provided by Android, see <a href="{@docRoot}guide/topics/ui/index.html">User Interface</a>.</p>
+
+<h3 id="accessibility">Ensure that the application is accessible</h3>
+<p>This step is required because the {@code uiautomator} tool depends on the accessibility features of the Android framework to execute your functional UI tests. You should include these minimum optimizations to support the {@code uiautomator} tool:
+<ul>
+<LI>Use the <a href="{@docRoot}reference/android/view/View.html#attr_android:contentDescription">{@code android:contentDescription}</a> attribute to label the {@link android.widget.ImageButton}, {@link android.widget.ImageView}, {@link android.widget.CheckBox} and other user interface controls.</LI>
+<li>Provide an <a href="{@docRoot}reference/android/widget/TextView.html#attr_android:hint">{@code android:hint}</a> attribute <em>instead</em> of a content description for {@link android.widget.EditText} fields</li>
+<li>Associate an <a href="{@docRoot}reference/android/widget/TextView.html#attr_android:hint">{@code android:hint}</a> attribute with any graphical icons used by controls that provide feedback to the user (for example, status or state information).</li>
+<li>Make sure that all the user interface elements are accessible with a directional controller, such as a trackball or D-pad.</li>
+<li>Use the {@code uiautomatorviewer} tool to ensure that the UI component is accessible to the testing framework. You can also test the application by turning on accessibility services like TalkBack and Explore by Touch, and try using your application using only directional controls. </li>
+</ul>
+</p>
+
+<p>For more information about implementing and testing accessibility, see <a href="{@docRoot}/guide/topics/ui/accessibility/apps.html">Making Applications Accessible</a>.</p>
+
+<p class="note"><strong>Note: </strong>To identify the non-accessible components in the UI, click on the <strong>Toggle NAF Nodes</strong> option in the {@code uiautomatorviewer} tool.</p>
+
+<p>Generally, Android application developers get accessibility support for free, courtesy of the {@link android.view.View} and {@link android.view.ViewGroup} classes. However, some applications use custom view components to provide a richer user experience. Such custom components won't get the accessibility support that is provided by the standard Android UI components. If this applies to your application, ensure that the application developer exposes the custom drawn UI components to Android accessibility services, by implementing the {@link android.view.accessibility.AccessibilityNodeProvider} class. For more information about making custom view components accessible, see <a href="{@docRoot}/guide/topics/ui/accessibility/apps.html#custom-views">Making Applications Accessible</a>.</p>
+
+<h3 id="configure">Configure your development environment</h3>
+<p>If you're developing in Eclipse, the Android SDK provides additional tools that help you write test cases using {@code uiautomator} and buiild your JAR file. In order to set up Eclipse to assist you, you need to create a project that includes the {@code uiautomator} client library, along with the Android SDK library. To configure Eclipse:</p>
+<ol>
+<li>Create a new Java project in Eclipse, and give your project a name that is relevant to the tests you’re about to create (for example, "MyAppNameTests"). In the project, you will create the test cases that are specific to the application that you want to test.</li>
+<li>From the <strong>Project Explorer</strong>, right-click on the new project that you created, then select <strong>Properties > Java Build Path</strong>, and do the following:
+ <ol type="a">
+ <LI>Click <strong>Add Library > JUnit</strong> then select <strong>JUnit3</strong> to add JUnit support.</LI>
+ <li>Click <strong>Add External JARs...</strong> and navigate to the SDK directory. Under the platforms directory, select the latest SDK version and add both the {@code uiautomator.jar} and {@code android.jar} files.</li>
+ </ol>
+</li>
+</ol>
+<p>If you did not configure Eclipse as your development environment, make sure that the {@code uiautomator.jar} and {@code android.jar} files from the {@code <android-sdk>/platforms/<sdk>} directory are in your Java class path.</p>
+<p>Once you have completed these prerequisite tasks, you're almost ready to start creating your {@code uiautomator} tests. </li>
+
+<h2 id="creating">Creating uiautomator Tests</h2>
+<p>To build a test that runs in the {@code uiautomator} framework, create a test case that extends the <a href="{@docRoot}tools/help/uiautomator/UiAutomatorTestCase.html">{@code UiAutomatorTestCase}</a> class. In Eclipse, the test case file goes under the {@code src} directory in your project. Later, you will build the test case as a JAR file, then copy this file to the test device. The test JAR file is not an APK file and resides separately from the application that you want to test on the device.</p>
+
+<p>Because the <a href="{@docRoot}tools/help/uiautomator/UiAutomatorTestCase.html">{@code UiAutomatorTestCase}</a> class extends {@code junit.framework.TestCase}, you can use the JUnit {@code Assert} class to test that UI components in the app return the expected results. To learn more about JUnit, you can read the documentation on the <a href="http://www.junit.org/">junit.org</a> home page.</p>
+
+<p>The first thing your test case should do is access the device that contains the target app. It’s also good practice to start the test from the Home screen of the device. From the Home screen (or some other starting location you’ve chosen in the target app), you can use the classes provided by the {@code uiautomator} API to simulate user actions and to test specific UI components. For an example of how to put together a {@code uiautomator} test case, see the <a href="#sample">sample test case</a>.</p>
+
+<h3 id="classes">uiautomator API</h3>
+<p>The {@code uiautomator} API is bundled in the {@code uiautomator.jar} file under the {@code <android-sdk>/platforms/} directory. The API includes these key classes that allow you to capture and manipulate UI components on the target app:</p>
+<dl>
+<DT><a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code UiDevice}</a></DT>
+<dd><p>Represents the device state. In your tests, you can call methods on the <a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code UiDevice}</a> instance to check for the state of various properties, such as current orientation or display size. Your tests also can use the <a href="{@docRoot}tools/help/uiautomator/UiDevice.html">{@code UiDevice}</a> instance to perform device level actions, such as forcing the device into a specific rotation, pressing the d-pad hardware button, or pressing the Home and Menu buttons.</p>
+<p>To get an instance of <a href="{@docRoot}tools/help/UiDevice.html">{@code UiDevice}</a> and simulate a Home button press:
+<pre>
+getUiDevice().pressHome();
+</pre></p></dd>
+
+<dt><a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a></dt>
+<dd>Represents a search criteria to query and get a handle on specific elements in the currently displayed UI.
+If more than one matching element is found, the first matching element in the layout hierarchy is returned as the target {@code UiObject}. When constructing a <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a>, you can chain together multiple properties to refine your search. If no matching UI element is found, a <a href="{@docRoot}tools/help/uiautomator/UiAutomatorObjectNotFoundException.html">{@code UiAutomatorObjectNotFoundException}</a> is thrown. You can use the <a href="{@docRoot}tools/help/uiautomator/UiSelector.html#childSelector(com.android.uiautomator.core.UiSelector)">{@code childSelector()}</a> method to nest multiple <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a> instances. For example, the following code example shows how to specify a search to find the first {@link android.widget.ListView} in the currently displayed UI, then search within that {@link android.widget.ListView} to find a UI element with the text property {@code Apps}.
+<pre>
+UiObject appItem = new UiObject(new UiSelector()
+ .className("android.widget.ListView").instance(1)
+ .childSelector(new UiSelector().text("Apps")));
+</pre>
+</dd>
+
+<dt><a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a></dt>
+<dd>Represents a UI element. To create a <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instance, use a {@code UiSelector} that describes how to search for, or select, the UI element.
+<p>The following code example shows how to construct <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instances that represent a <strong>Cancel</strong> button and a <strong>OK</strong> button in your application.</p>
+<pre>
+UiObject cancelButton = new UiObject(new UiSelector().text("Cancel"));
+UiObject okButton = new UiObject(new UiSelector().text("OK"));
+</pre>
+<p>You can reuse the <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instances that you have created in other parts of your app testing, as needed. Note that the {@code uiautomator} test framework searches the current display for a match every time your test uses a <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a> instance to click on a UI element or query a property.</p>
+<p>In the following code example, the {@code uiautomator} test framework searches for a UI element with the text property {@code OK}. If a match is found and if the element is enabled, the framework simulates a user click action on the element.</p>
+<pre>
+if(okButton.exists() && okButton.isEnabled())
+{
+ okButton.click();
+}
+</pre>
+<p>You can also restrict the search to find only elements of a specific class. For example, to find matches of the {@link android.widget.Button} class:</p>
+<pre>
+UiObject cancelButton = new UiObject(new UiSelector().text("Cancel")
+ .className("android.widget.Button"));
+UiObject okButton = new UiObject(new UiSelector().text("OK")
+ .className("android.widget.Button"));
+</pre>
+</dd>
+
+<dt><a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a></dt>
+<dd>Represents a collection of items, for example songs in a music album or a list of emails in an inbox. Similar to a <a href="{@docRoot}tools/help/uiautomator/UiObject.html">{@code UiObject}</a>, you construct a <a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a> instance by specifying a <a href="{@docRoot}tools/help/UiSelector.html">{@code UiSelector}</a>. The <a href="{@docRoot}tools/help/uiautomator/UiSelector.html">{@code UiSelector}</a> for a <a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a> should search for a UI element that is a container or wrapper of other child UI elements (such as a layout view that contains child UI elements). For example, the following code snippet shows how to construct a <a href="{@docRoot}tools/help/uiautomator/UiCollection.html">{@code UiCollection}</a> to represent a video album that is displayed within a {@link android.widget.FrameLayout}:
+<pre>
+UiCollection videos = new UiCollection(new UiSelector()
+ .className("android.widget.FrameLayout"));
+</pre>
+<p>If the videos are listed within a {@link android.widget.LinearLayout} view, and you want to to retrieve the number of videos in this collection:</p>
+<pre>
+int count = videos.getChildCount(new UiSelector()
+ .className("android.widget.LinearLayout"));
+</pre>
+<p>If you want to find a specific video that is labeled with the text element {@code Cute Baby Laughing} from the collection and simulate a user-click on the video:</p>
+<pre>
+UiObject video = videos.getChildByText(new UiSelector()
+ .className("android.widget.LinearLayout"), "Cute Baby Laughing");
+video.click();
+</pre>
+<p>Similarly, you can simulate other user actions on the UI object. For example, if you want
+to simulate selecting a checkbox that is associated with the video:</p>
+<pre>
+UiObject checkBox = video.getChild(new UiSelector()
+ .className("android.widget.Checkbox"));
+if(!checkBox.isSelected()) checkbox.click();
+</pre>
+</dd>
+
+<dt><a href="{@docRoot}tools/help/uiautomator/UiScrollable.html">{@code UiScrollable}</a></dt>
+<dd>Represents a scrollable collection of UI elements. You can use the <a href="{@docRoot}tools/help/uiautomator/UiScrollable.html">{@code UiScrollable}</a> class to simulate vertical or horizontal scrolling across a display. This technique is helpful when a UI element is positioned off-screen and you need to scroll to bring it into view.
+<p>For example, the following code shows how to simulate scrolling down the Settings menu and clicking on an <strong>About tablet</strong> option:</p>
+<pre>
+UiScrollable settingsItem = new UiScrollable(new UiSelector()
+ .className("android.widget.ListView"));
+UiObject about = settingsItem.getChildByText(new UiSelector()
+ .className("android.widget.LinearLayout"), "About tablet");
+about.click()
+</pre>
+</dd>
+</dl>
+<p>For more information about these APIs, see the <a href="{@docRoot}tools/help/uiautomator/index.html">{@code uiautomator}</a> reference.</p>
+
+<h3 id="sample">A sample uiautomator test case</h3>
+<p>The following code example shows a simple test case which simulates a user bringing up the Settings app in a stock Android device. The test case mimics all the steps that a user would typically take to perform this task, including opening the Home screen, launching the <strong>All Apps</strong> screen, scrolling to the <strong>Settings</strong> app icon, and clicking on the icon to enter the Settings app.</p>
+<pre>
+package com.uia.example.my;
+
+// Import the uiautomator libraries
+import com.android.uiautomator.core.UiObject;
+import com.android.uiautomator.core.UiObjectNotFoundException;
+import com.android.uiautomator.core.UiScrollable;
+import com.android.uiautomator.core.UiSelector;
+import com.android.uiautomator.testrunner.UiAutomatorTestCase;
+
+public class LaunchSettings extends UiAutomatorTestCase {
+
+ public void testDemo() throws UiObjectNotFoundException {
+
+ // Simulate a short press on the HOME button.
+ getUiDevice().pressHome();
+
+ // We’re now in the home screen. Next, we want to simulate
+ // a user bringing up the All Apps screen.
+ // If you use the uiautomatorviewer tool to capture a snapshot
+ // of the Home screen, notice that the All Apps button’s
+ // content-description property has the value “Apps”. We can
+ // use this property to create a UiSelector to find the button.
+ UiObject allAppsButton = new UiObject(new UiSelector()
+ .description("Apps"));
+
+ // Simulate a click to bring up the All Apps screen.
+ allAppsButton.clickAndWaitForNewWindow();
+
+ // In the All Apps screen, the Settings app is located in
+ // the Apps tab. To simulate the user bringing up the Apps tab,
+ // we create a UiSelector to find a tab with the text
+ // label “Apps”.
+ UiObject appsTab = new UiObject(new UiSelector()
+ .text("Apps"));
+
+ // Simulate a click to enter the Apps tab.
+ appsTab.click();
+
+ // Next, in the apps tabs, we can simulate a user swiping until
+ // they come to the Settings app icon. Since the container view
+ // is scrollable, we can use a UiScrollable object.
+ UiScrollable appViews = new UiScrollable(new UiSelector()
+ .scrollable(true));
+
+ // Set the swiping mode to horizontal (the default is vertical)
+ appViews.setAsHorizontalList();
+
+ // Create a UiSelector to find the Settings app and simulate
+ // a user click to launch the app.
+ UiObject settingsApp = appViews.getChildByText(new UiSelector()
+ .className(android.widget.TextView.class.getName()),
+ "Settings");
+ settingsApp.clickAndWaitForNewWindow();
+
+ // Validate that the package name is the expected one
+ UiObject settingsValidation = new UiObject(new UiSelector()
+ .packageName("com.android.settings"));
+ assertTrue("Unable to detect Settings",
+ settingsValidation.exists());
+ }
+}
+</pre>
+
+<h2 id="builddeploy">Building and Deploying Your uiautomator Tests</h2>
+<p>Once you have coded your test, follow these steps to build and deploy your test JAR to your target Android test device:</p>
+<ol>
+<li>Create the required build configuration files to build the output JAR. To generate the build configuration files, open a terminal and run the following command:
+<pre><android-sdk>/tools/android uitest-project -n <name> -t 1 -p <path></pre>
+The {@code <name>} is the name of the project that contains your {@code uiautomator} test source files, and the {@code <path>} is the path to the corresponding project directory.
+</li>
+<LI>From the command line, set the {@code ANDROID_HOME} variable:
+<ul>
+<li>In Windows:
+<pre>set ANDROID_HOME=<path_to_your_sdk></pre>
+</li>
+<li>In UNIX:
+<pre>export ANDROID_HOME=<path_to_your_sdk></pre>
+</li>
+</ul>
+</LI>
+<li>Go to the project directory where your {@code build.xml} file is located and build your test JAR. <pre>ant build</pre></li>
+<li>Deploy your generated test JAR file to the test device by using the {@code adb push} command: <pre>adb push <path_to_output_jar> /data/local/tmp/</pre>
+<p>Here’s an example: <pre>adb push ~/dev/workspace/LaunchSettings/bin/LaunchSettings.jar /data/local/tmp/</pre></p>
+</li>
+</ol>
+
+<h2 id="running">Running uiautomator Tests</h2>
+<p>Here’s an example of how to run a test that is implemented in the {@code LaunchSettings.jar} file. The tests are bundled in the {@code com.uia.example.my} package:</p>
+<pre>adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings</pre>
+<p>To learn more about the syntax, subcommands, and options for {@code uiautomator}, see the <a href="{@docRoot}tools/help/uiautomator/index.html">{@code uiautomator}</a> reference.</p>
+
+
+<h2 id="bestpractices">Best Practices</h2>
+<p>Here are some best practices for functional UI testing with the {@code uiautomator} framework: </p>
+<ul>
+<LI>Ensure that you validate the same UI functions on your application across the various types of devices that your application might run on (for example, devices with different screen densities).</LI>
+<li>You should also test your UI against common scenarios such as in-coming phone calls, network interruptions, and user-initiated switching to other applications on the device.</li>
+</ul>
+
diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs
index cca9433..46665b2 100644
--- a/docs/html/tools/tools_toc.cs
+++ b/docs/html/tools/tools_toc.cs
@@ -10,22 +10,22 @@
<div class="nav-section-header"><a href="<?cs var:toroot
?>sdk/index.html"><span class="en">Download</span></a></div>
<ul>
+ <li><a href="<?cs var:toroot ?>sdk/installing/bundle.html">
+ <span class="en">Setting Up the ADT Bundle</span></a></li>
<li class="nav-section">
<div class="nav-section-header">
- <a href="<?cs var:toroot ?>sdk/installing/index.html"><span class="en">Installing
- the SDK</span></a></div>
+ <a href="<?cs var:toroot ?>sdk/installing/index.html"><span class="en">Setting Up
+ an Existing IDE</span></a></div>
<ul>
- <li><a href="<?cs var:toroot ?>sdk/installing/adding-packages.html">
- <span class="en">Adding Platforms and Packages</span></a></li>
<li><a href="<?cs var:toroot ?>sdk/installing/installing-adt.html">
<span class="en">Installing the Eclipse Plugin</span></a></li>
- <li><a href="<?cs var:toroot ?>sdk/installing/next.html">
- <span class="en">Next Steps</span></a></li>
+ <li><a href="<?cs var:toroot ?>sdk/installing/adding-packages.html">
+ <span class="en">Adding Platforms and Packages</span></a></li>
</ul>
</li>
- <li><a href="<?cs var:toroot ?>sdk/exploring.html">
- <span class="en">Exploring the SDK</span></a></li>
- <li><a href="<?cs var:toroot ?>tools/sdk/ndk/index.html">NDK</a>
+ <li><a href="<?cs var:toroot ?>sdk/exploring.html">
+ <span class="en">Exploring the SDK</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/sdk/ndk/index.html">Download the NDK</a>
</li>
</ul>
</li>
@@ -93,6 +93,10 @@
<a href="<?cs var:toroot?>tools/testing/testing_accessibility.html">
<span class="en">Accessibility Testing</span></a>
</li>
+ <li>
+ <a href="<?cs var:toroot?>tools/testing/testing_ui.html">
+ <span class="en">UI Testing</span></a>
+ </li>
<li>
<a href="<?cs var:toroot ?>tools/testing/what_to_test.html">
<span class="en">What To Test</span></a>
@@ -135,6 +139,7 @@
<li><a href="<?cs var:toroot ?>tools/help/adb.html">adb</a></li>
<li><a href="<?cs var:toroot ?>tools/help/adt.html">ADT</a></li>
<li><a href="<?cs var:toroot ?>tools/help/android.html">android</a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/avd-manager.html">AVD Manager</a></li>
<li><a href="<?cs var:toroot ?>tools/help/bmgr.html">bmgr</a>
<li><a href="<?cs var:toroot ?>tools/help/monitor.html">Device Monitor</a></li>
<li><a href="<?cs var:toroot ?>tools/help/dmtracedump.html">dmtracedump</a></li>
@@ -143,6 +148,7 @@
<li><a href="<?cs var:toroot ?>tools/help/etc1tool.html">etc1tool</a></li>
<li><a href="<?cs var:toroot ?>tools/help/hierarchy-viewer.html">Hierarchy Viewer</a></li>
<li><a href="<?cs var:toroot ?>tools/help/hprof-conv.html">hprof-conv</a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/jobb.html">jobb</a></li>
<li><a href="<?cs var:toroot ?>tools/help/lint.html">lint</span></a></li>
<li><a href="<?cs var:toroot ?>tools/help/logcat.html">logcat</a></li>
<li><a href="<?cs var:toroot ?>tools/help/mksdcard.html">mksdcard</a></li>
@@ -160,9 +166,24 @@
</ul>
</li>
<li><a href="<?cs var:toroot ?>tools/help/proguard.html">ProGuard</a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/sdk-manager.html">SDK Manager</a></li>
<li><a href="<?cs var:toroot ?>tools/help/systrace.html">Systrace</a></li>
<li><a href="<?cs var:toroot ?>tools/help/gltracer.html">Tracer for OpenGL ES</a></li>
<li><a href="<?cs var:toroot ?>tools/help/traceview.html">Traceview</a></li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>tools/help/uiautomator/index.html"><span class="en">uiautomator</span></a></div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/IAutomationSupport.html"><span class="en">IAutomationSupport</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiAutomatorTestCase.html"><span class="en">UiAutomatorTestCase</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiCollection.html"><span class="en">UiCollection</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiDevice.html"><span class="en">UiDevice</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiObject.html"><span class="en">UiObject</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiObjectNotFoundException.html"><span class="en">UiObjectNotFoundException</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiScrollable.html"><span class="en">UiScrollable</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiSelector.html"><span class="en">UiSelector</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/help/uiautomator/UiWatcher.html"><span class="en">UiWatcher</span></a></li>
+ </ul>
+ </li>
<li><a href="<?cs var:toroot ?>tools/help/zipalign.html">zipalign</a></li>
</ul>
</li>
diff --git a/docs/html/training/articles/perf-anr.jd b/docs/html/training/articles/perf-anr.jd
new file mode 100644
index 0000000..864fb34
--- /dev/null
+++ b/docs/html/training/articles/perf-anr.jd
@@ -0,0 +1,196 @@
+page.title=Keeping Your App Responsive
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>In this document</h2>
+<ol>
+ <li><a href="#anr">What Triggers ANR?</a></li>
+ <li><a href="#Avoiding">How to Avoid ANRs</a></li>
+ <li><a href="#Reinforcing">Reinforcing Responsiveness</a></li>
+</ol>
+
+</div>
+</div>
+
+<div class="figure" style="width:280px">
+<img src="{@docRoot}images/anr.png" alt=""/>
+<p class="img-caption"><strong>Figure 1.</strong> An ANR dialog displayed to the user.</p>
+</div>
+
+<p>It's possible to write code that wins every performance test in the world,
+but still feels sluggish, hang or freeze for significant periods, or take too
+long to process input. The worst thing that can happen to your app's responsiveness
+is an "Application Not Responding" (ANR) dialog.</p>
+
+<p>In Android, the system guards against applications that are insufficiently
+responsive for a period of time by displaying a dialog that says your app has
+stopped responding, such as the dialog
+in Figure 1. At this point, your app has been unresponsive for a considerable
+period of time so the system offers the user an option to quit the app. It's critical
+to design responsiveness into your application so the system never displays
+an ANR dialog to the user. </p>
+
+<p>This document describes how the Android system determines whether an
+application is not responding and provides guidelines for ensuring that your
+application stays responsive. </p>
+
+
+<h2 id="anr">What Triggers ANR?</h2>
+
+<p>Generally, the system displays an ANR if an application cannot respond to
+user input. For example, if an application blocks on some I/O operation
+(frequently a network access) on the UI thread so the system can't
+process incoming user input events. Or perhaps the app
+spends too much time building an elaborate in-memory
+structure or computing the next move in a game on the UI thread. It's always important to make
+sure these computations are efficient, but even the
+most efficient code still takes time to run.</p>
+
+<p>In any situation in which your app performs a potentially lengthy operation,
+<strong>you should not perform the work on the UI thread</strong>, but instead create a
+worker thread and do most of the work there. This keeps the UI thread (which drives the user
+interface event loop) running and prevents the system from concluding that your code
+has frozen. Because such threading usually is accomplished at the class
+level, you can think of responsiveness as a <em>class</em> problem. (Compare
+this with basic code performance, which is a <em>method</em>-level
+concern.)</p>
+
+<p>In Android, application responsiveness is monitored by the Activity Manager
+and Window Manager system services. Android will display the ANR dialog
+for a particular application when it detects one of the following
+conditions:</p>
+<ul>
+ <li>No response to an input event (such as key press or screen touch events)
+ within 5 seconds.</li>
+ <li>A {@link android.content.BroadcastReceiver BroadcastReceiver}
+ hasn't finished executing within 10 seconds.</li>
+</ul>
+
+
+
+<h2 id="Avoiding">How to Avoid ANRs</h2>
+
+<p>Android applications normally run entirely on a single thread by default
+the "UI thread" or "main thread").
+This means anything your application is doing in the UI thread that
+takes a long time to complete can trigger the ANR dialog because your
+application is not giving itself a chance to handle the input event or intent
+broadcasts.</p>
+
+<p>Therefore, any method that runs in the UI thread should do as little work
+as possible on that thread. In particular, activities should do as little as possible to set
+up in key life-cycle methods such as {@link android.app.Activity#onCreate onCreate()}
+and {@link android.app.Activity#onResume onResume()}.
+Potentially long running operations such as network
+or database operations, or computationally expensive calculations such as
+resizing bitmaps should be done in a worker thread (or in the case of databases
+operations, via an asynchronous request).</p>
+
+<p>The most effecive way to create a worker thread for longer
+operations is with the {@link android.os.AsyncTask}
+class. Simply extend {@link android.os.AsyncTask} and implement the
+{@link android.os.AsyncTask#doInBackground doInBackground()} method to perform the work.
+To post progress changes to the user, you can call
+ {@link android.os.AsyncTask#publishProgress publishProgress()}, which invokes the
+ {@link android.os.AsyncTask#onProgressUpdate onProgressUpdate()} callback method. From your
+ implementation of {@link android.os.AsyncTask#onProgressUpdate onProgressUpdate()} (which
+ runs on the UI thread), you can notify the user. For example:</p>
+
+<pre>
+private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
+ // Do the long-running work in here
+ protected Long doInBackground(URL... urls) {
+ int count = urls.length;
+ long totalSize = 0;
+ for (int i = 0; i < count; i++) {
+ totalSize += Downloader.downloadFile(urls[i]);
+ publishProgress((int) ((i / (float) count) * 100));
+ // Escape early if cancel() is called
+ if (isCancelled()) break;
+ }
+ return totalSize;
+ }
+
+ // This is called each time you call publishProgress()
+ protected void onProgressUpdate(Integer... progress) {
+ setProgressPercent(progress[0]);
+ }
+
+ // This is called when doInBackground() is finished
+ protected void onPostExecute(Long result) {
+ showNotification("Downloaded " + result + " bytes");
+ }
+}
+</pre>
+
+ <p>To execute this worker thread, simply create an instance and
+ call {@link android.os.AsyncTask#execute execute()}:</p>
+
+<pre>
+new DownloadFilesTask().execute(url1, url2, url3);
+</pre>
+
+
+<p>Although it's more complicated than {@link android.os.AsyncTask}, you might want to instead
+create your own {@link java.lang.Thread} or {@link android.os.HandlerThread} class. If you do,
+you should set the thread priority to "background" priority by calling {@link
+android.os.Process#setThreadPriority Process.setThreadPriority()} and passing {@link
+android.os.Process#THREAD_PRIORITY_BACKGROUND}. If you don't set the thread to a lower priority
+this way, then the thread could still slow down your app because it operates at the same priority
+as the UI thread by default.</p>
+
+<p>If you implement {@link java.lang.Thread} or {@link android.os.HandlerThread},
+be sure that your UI thread does not block while waiting for the worker thread to
+complete—do not call {@link java.lang.Thread#wait Thread.wait()} or
+{@link java.lang.Thread#sleep Thread.sleep()}. Instead of blocking while waiting for a worker
+thread to complete, your main thread should provide a {@link
+android.os.Handler} for the other threads to post back to upon completion.
+Designing your application in this way will allow your app's UI thread to remain
+responsive to input and thus avoid ANR dialogs caused by the 5 second input
+event timeout.</p>
+
+<p>The specific constraint on {@link android.content.BroadcastReceiver} execution time
+emphasizes what broadcast receivers are meant to do:
+small, discrete amounts of work in the background such
+as saving a setting or registering a {@link android.app.Notification}. So as with other methods
+called in the UI thread, applications should avoid potentially long-running
+operations or calculations in a broadcast receiver. But instead of doing intensive
+tasks via worker threads, your
+application should start an {@link android.app.IntentService} if a
+potentially long running action needs to be taken in response to an intent
+broadcast.</p>
+
+<p class="note"><strong>Tip:</strong>
+You can use {@link android.os.StrictMode} to help find potentially
+long running operations such as network or database operations that
+you might accidentally be doing your main thread.</p>
+
+
+
+<h2 id="Reinforcing">Reinforce Responsiveness</h2>
+
+<p>Generally, 100 to 200ms is the threshold beyond which users will perceive
+slowness in an application. As such, here
+are some additional tips beyond what you should do to avoid ANR and
+make your application seem responsive to users:</p>
+
+<ul>
+ <li>If your application is doing work in the background in response to
+ user input, show that progress is being made (such as with a {@link
+ android.widget.ProgressBar} in your UI).</li>
+
+ <li>For games specifically, do calculations for moves in a worker
+ thread.</li>
+
+ <li>If your application has a time-consuming initial setup phase, consider
+ showing a splash screen or rendering the main view as quickly as possible, indicate that
+ loading is in progress and fill the information asynchronously. In either case, you should
+ indicate somehow that progress is being made, lest the user perceive that
+ the application is frozen.</li>
+
+ <li>Use performance tools such as <a href="{@docRoot}tools/help/systrace.html">Systrace</a>
+ and <a href="{@docRoot}tools/help/traceview.html">Traceview</a> to determine bottlenecks
+ in your app's responsiveness.</li>
+</ul>
diff --git a/docs/html/guide/practices/jni.jd b/docs/html/training/articles/perf-jni.jd
similarity index 99%
rename from docs/html/guide/practices/jni.jd
rename to docs/html/training/articles/perf-jni.jd
index ddfa0e3..26b06b4 100644
--- a/docs/html/guide/practices/jni.jd
+++ b/docs/html/training/articles/perf-jni.jd
@@ -1,8 +1,8 @@
page.title=JNI Tips
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
+<div id="tb-wrapper">
+<div id="tb">
<h2>In this document</h2>
<ol>
diff --git a/docs/html/training/articles/perf-tips.jd b/docs/html/training/articles/perf-tips.jd
new file mode 100644
index 0000000..33b4b87
--- /dev/null
+++ b/docs/html/training/articles/perf-tips.jd
@@ -0,0 +1,433 @@
+page.title=Performance Tips
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>In this document</h2>
+<ol>
+ <li><a href="#ObjectCreation">Avoid Creating Unnecessary Objects</a></li>
+ <li><a href="#PreferStatic">Prefer Static Over Virtual</a></li>
+ <li><a href="#UseFinal">Use Static Final For Constants</a></li>
+ <li><a href="#GettersSetters">Avoid Internal Getters/Setters</a></li>
+ <li><a href="#Loops">Use Enhanced For Loop Syntax</a></li>
+ <li><a href="#PackageInner">Consider Package Instead of Private Access with Private Inner Classes</a></li>
+ <li><a href="#AvoidFloat">Avoid Using Floating-Point</a></li>
+ <li><a href="#UseLibraries">Know and Use the Libraries</a></li>
+ <li><a href="#NativeMethods">Use Native Methods Carefully</a></li>
+ <li><a href="#library">Know And Use The Libraries</a></li>
+ <li><a href="#native_methods">Use Native Methods Judiciously</a></li>
+ <li><a href="#closing_notes">Closing Notes</a></li>
+</ol>
+
+</div>
+</div>
+
+<p>This document primarily covers micro-optimizations that can improve overall app performance
+when combined, but it's unlikely that these changes will result in dramatic
+performance effects. Choosing the right algorithms and data structures should always be your
+priority, but is outside the scope of this document. You should use the tips in this document
+as general coding practices that you can incorporate into your habits for general code
+efficiency.</p>
+
+<p>There are two basic rules for writing efficient code:</p>
+<ul>
+ <li>Don't do work that you don't need to do.</li>
+ <li>Don't allocate memory if you can avoid it.</li>
+</ul>
+
+<p>One of the trickiest problems you'll face when micro-optimizing an Android
+app is that your app is certain to be running on multiple types of
+hardware. Different versions of the VM running on different
+processors running at different speeds. It's not even generally the case
+that you can simply say "device X is a factor F faster/slower than device Y",
+and scale your results from one device to others. In particular, measurement
+on the emulator tells you very little about performance on any device. There
+are also huge differences between devices with and without a
+<acronym title="Just In Time compiler">JIT</acronym>: the best
+code for a device with a JIT is not always the best code for a device
+without.</p>
+
+<p>To ensure your app performs well across a wide variety of devices, ensure
+your code is efficient at all levels and agressively optimize your performance.</p>
+
+
+<h2 id="ObjectCreation">Avoid Creating Unnecessary Objects</h2>
+
+<p>Object creation is never free. A generational garbage collector with per-thread allocation
+pools for temporary objects can make allocation cheaper, but allocating memory
+is always more expensive than not allocating memory.</p>
+
+<p>As you allocate more objects in your app, you will force a periodic
+garbage collection, creating little "hiccups" in the user experience. The
+concurrent garbage collector introduced in Android 2.3 helps, but unnecessary work
+should always be avoided.</p>
+
+<p>Thus, you should avoid creating object instances you don't need to. Some
+examples of things that can help:</p>
+
+<ul>
+ <li>If you have a method returning a string, and you know that its result
+ will always be appended to a {@link java.lang.StringBuffer} anyway, change your signature
+ and implementation so that the function does the append directly,
+ instead of creating a short-lived temporary object.</li>
+ <li>When extracting strings from a set of input data, try
+ to return a substring of the original data, instead of creating a copy.
+ You will create a new {@link java.lang.String} object, but it will share the {@code char[]}
+ with the data. (The trade-off being that if you're only using a small
+ part of the original input, you'll be keeping it all around in memory
+ anyway if you go this route.)</li>
+</ul>
+
+<p>A somewhat more radical idea is to slice up multidimensional arrays into
+parallel single one-dimension arrays:</p>
+
+<ul>
+ <li>An array of {@code int}s is a much better than an array of {@link java.lang.Integer}
+ objects,
+ but this also generalizes to the fact that two parallel arrays of ints
+ are also a <strong>lot</strong> more efficient than an array of {@code (int,int)}
+ objects. The same goes for any combination of primitive types.</li>
+
+ <li>If you need to implement a container that stores tuples of {@code (Foo,Bar)}
+ objects, try to remember that two parallel {@code Foo[]} and {@code Bar[]} arrays are
+ generally much better than a single array of custom {@code (Foo,Bar)} objects.
+ (The exception to this, of course, is when you're designing an API for
+ other code to access. In those cases, it's usually better to make a small
+ compromise to the speed in order to achieve a good API design. But in your own internal
+ code, you should try and be as efficient as possible.)</li>
+</ul>
+
+<p>Generally speaking, avoid creating short-term temporary objects if you
+can. Fewer objects created mean less-frequent garbage collection, which has
+a direct impact on user experience.</p>
+
+
+
+
+<h2 id="PreferStatic">Prefer Static Over Virtual</h2>
+
+<p>If you don't need to access an object's fields, make your method static.
+Invocations will be about 15%-20% faster.
+It's also good practice, because you can tell from the method
+signature that calling the method can't alter the object's state.</p>
+
+
+
+
+
+<h2 id="UseFinal">Use Static Final For Constants</h2>
+
+<p>Consider the following declaration at the top of a class:</p>
+
+<pre>
+static int intVal = 42;
+static String strVal = "Hello, world!";
+</pre>
+
+<p>The compiler generates a class initializer method, called
+<code><clinit></code>, that is executed when the class is first used.
+The method stores the value 42 into <code>intVal</code>, and extracts a
+reference from the classfile string constant table for <code>strVal</code>.
+When these values are referenced later on, they are accessed with field
+lookups.</p>
+
+<p>We can improve matters with the "final" keyword:</p>
+
+<pre>
+static final int intVal = 42;
+static final String strVal = "Hello, world!";
+</pre>
+
+<p>The class no longer requires a <code><clinit></code> method,
+because the constants go into static field initializers in the dex file.
+Code that refers to <code>intVal</code> will use
+the integer value 42 directly, and accesses to <code>strVal</code> will
+use a relatively inexpensive "string constant" instruction instead of a
+field lookup.</p>
+
+<p class="note"><strong>Note:</strong> This optimization applies only to primitive types and
+{@link java.lang.String} constants, not arbitrary reference types. Still, it's good
+practice to declare constants <code>static final</code> whenever possible.</p>
+
+
+
+
+
+<h2 id="GettersSetters">Avoid Internal Getters/Setters</h2>
+
+<p>In native languages like C++ it's common practice to use getters
+(<code>i = getCount()</code>) instead of accessing the field directly (<code>i
+= mCount</code>). This is an excellent habit for C++ and is often practiced in other
+object oriented languages like C# and Java, because the compiler can
+usually inline the access, and if you need to restrict or debug field access
+you can add the code at any time.</p>
+
+<p>However, this is a bad idea on Android. Virtual method calls are expensive,
+much more so than instance field lookups. It's reasonable to follow
+common object-oriented programming practices and have getters and setters
+in the public interface, but within a class you should always access
+fields directly.</p>
+
+<p>Without a <acronym title="Just In Time compiler">JIT</acronym>,
+direct field access is about 3x faster than invoking a
+trivial getter. With the JIT (where direct field access is as cheap as
+accessing a local), direct field access is about 7x faster than invoking a
+trivial getter.</p>
+
+<p>Note that if you're using <a href="{@docRoot}tools/help/proguard.html">ProGuard</a>,
+you can have the best of both worlds because ProGuard can inline accessors for you.</p>
+
+
+
+
+
+<h2 id="Loops">Use Enhanced For Loop Syntax</h2>
+
+<p>The enhanced <code>for</code> loop (also sometimes known as "for-each" loop) can be used
+for collections that implement the {@link java.lang.Iterable} interface and for arrays.
+With collections, an iterator is allocated to make interface calls
+to {@code hasNext()} and {@code next()}. With an {@link java.util.ArrayList},
+a hand-written counted loop is
+about 3x faster (with or without JIT), but for other collections the enhanced
+for loop syntax will be exactly equivalent to explicit iterator usage.</p>
+
+<p>There are several alternatives for iterating through an array:</p>
+
+<pre>
+static class Foo {
+ int mSplat;
+}
+
+Foo[] mArray = ...
+
+public void zero() {
+ int sum = 0;
+ for (int i = 0; i < mArray.length; ++i) {
+ sum += mArray[i].mSplat;
+ }
+}
+
+public void one() {
+ int sum = 0;
+ Foo[] localArray = mArray;
+ int len = localArray.length;
+
+ for (int i = 0; i < len; ++i) {
+ sum += localArray[i].mSplat;
+ }
+}
+
+public void two() {
+ int sum = 0;
+ for (Foo a : mArray) {
+ sum += a.mSplat;
+ }
+}
+</pre>
+
+<p><code>zero()</code> is slowest, because the JIT can't yet optimize away
+the cost of getting the array length once for every iteration through the
+loop.</p>
+
+<p><code>one()</code> is faster. It pulls everything out into local
+variables, avoiding the lookups. Only the array length offers a performance
+benefit.</p>
+
+<p><code>two()</code> is fastest for devices without a JIT, and
+indistinguishable from <strong>one()</strong> for devices with a JIT.
+It uses the enhanced for loop syntax introduced in version 1.5 of the Java
+programming language.</p>
+
+<p>So, you should use the enhanced <code>for</code> loop by default, but consider a
+hand-written counted loop for performance-critical {@link java.util.ArrayList} iteration.</p>
+
+<p class="note"><strong>Tip:</strong>
+Also see Josh Bloch's <em>Effective Java</em>, item 46.</p>
+
+
+
+<h2 id="PackageInner">Consider Package Instead of Private Access with Private Inner Classes</h2>
+
+<p>Consider the following class definition:</p>
+
+<pre>
+public class Foo {
+ private class Inner {
+ void stuff() {
+ Foo.this.doStuff(Foo.this.mValue);
+ }
+ }
+
+ private int mValue;
+
+ public void run() {
+ Inner in = new Inner();
+ mValue = 27;
+ in.stuff();
+ }
+
+ private void doStuff(int value) {
+ System.out.println("Value is " + value);
+ }
+}</pre>
+
+<p>What's important here is that we define a private inner class
+(<code>Foo$Inner</code>) that directly accesses a private method and a private
+instance field in the outer class. This is legal, and the code prints "Value is
+27" as expected.</p>
+
+<p>The problem is that the VM considers direct access to <code>Foo</code>'s
+private members from <code>Foo$Inner</code> to be illegal because
+<code>Foo</code> and <code>Foo$Inner</code> are different classes, even though
+the Java language allows an inner class to access an outer class' private
+members. To bridge the gap, the compiler generates a couple of synthetic
+methods:</p>
+
+<pre>
+/*package*/ static int Foo.access$100(Foo foo) {
+ return foo.mValue;
+}
+/*package*/ static void Foo.access$200(Foo foo, int value) {
+ foo.doStuff(value);
+}</pre>
+
+<p>The inner class code calls these static methods whenever it needs to
+access the <code>mValue</code> field or invoke the <code>doStuff()</code> method
+in the outer class. What this means is that the code above really boils down to
+a case where you're accessing member fields through accessor methods.
+Earlier we talked about how accessors are slower than direct field
+accesses, so this is an example of a certain language idiom resulting in an
+"invisible" performance hit.</p>
+
+<p>If you're using code like this in a performance hotspot, you can avoid the
+overhead by declaring fields and methods accessed by inner classes to have
+package access, rather than private access. Unfortunately this means the fields
+can be accessed directly by other classes in the same package, so you shouldn't
+use this in public API.</p>
+
+
+
+
+<h2 id="AvoidFloat">Avoid Using Floating-Point</h2>
+
+<p>As a rule of thumb, floating-point is about 2x slower than integer on
+Android-powered devices.</p>
+
+<p>In speed terms, there's no difference between <code>float</code> and
+<code>double</code> on the more modern hardware. Space-wise, <code>double</code>
+is 2x larger. As with desktop machines, assuming space isn't an issue, you
+should prefer <code>double</code> to <code>float</code>.</p>
+
+<p>Also, even for integers, some processors have hardware multiply but lack
+hardware divide. In such cases, integer division and modulus operations are
+performed in software—something to think about if you're designing a
+hash table or doing lots of math.</p>
+
+
+
+
+<h2 id="UseLibraries">Know and Use the Libraries</h2>
+
+<p>In addition to all the usual reasons to prefer library code over rolling
+your own, bear in mind that the system is at liberty to replace calls
+to library methods with hand-coded assembler, which may be better than the
+best code the JIT can produce for the equivalent Java. The typical example
+here is {@link java.lang.String#indexOf String.indexOf()} and
+related APIs, which Dalvik replaces with
+an inlined intrinsic. Similarly, the {@link java.lang.System#arraycopy
+System.arraycopy()} method
+is about 9x faster than a hand-coded loop on a Nexus One with the JIT.</p>
+
+
+<p class="note"><strong>Tip:</strong>
+Also see Josh Bloch's <em>Effective Java</em>, item 47.</p>
+
+
+
+
+<h2 id="NativeMethods">Use Native Methods Carefully</h2>
+
+<p>Developing your app with native code using the
+<a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK</a>
+isn't necessarily more efficient than programming with the
+Java language. For one thing,
+there's a cost associated with the Java-native transition, and the JIT can't
+optimize across these boundaries. If you're allocating native resources (memory
+on the native heap, file descriptors, or whatever), it can be significantly
+more difficult to arrange timely collection of these resources. You also
+need to compile your code for each architecture you wish to run on (rather
+than rely on it having a JIT). You may even have to compile multiple versions
+for what you consider the same architecture: native code compiled for the ARM
+processor in the G1 can't take full advantage of the ARM in the Nexus One, and
+code compiled for the ARM in the Nexus One won't run on the ARM in the G1.</p>
+
+<p>Native code is primarily useful when you have an existing native codebase
+that you want to port to Android, not for "speeding up" parts of your Android app
+written with the Java language.</p>
+
+<p>If you do need to use native code, you should read our
+<a href="{@docRoot}guide/practices/jni.html">JNI Tips</a>.</p>
+
+<p class="note"><strong>Tip:</strong>
+Also see Josh Bloch's <em>Effective Java</em>, item 54.</p>
+
+
+
+
+
+<h2 id="Myths">Performance Myths</h2>
+
+
+<p>On devices without a JIT, it is true that invoking methods via a
+variable with an exact type rather than an interface is slightly more
+efficient. (So, for example, it was cheaper to invoke methods on a
+<code>HashMap map</code> than a <code>Map map</code>, even though in both
+cases the map was a <code>HashMap</code>.) It was not the case that this
+was 2x slower; the actual difference was more like 6% slower. Furthermore,
+the JIT makes the two effectively indistinguishable.</p>
+
+<p>On devices without a JIT, caching field accesses is about 20% faster than
+repeatedly accesssing the field. With a JIT, field access costs about the same
+as local access, so this isn't a worthwhile optimization unless you feel it
+makes your code easier to read. (This is true of final, static, and static
+final fields too.)
+
+
+
+<h2 id="Measure">Always Measure</h2>
+
+<p>Before you start optimizing, make sure you have a problem that you
+need to solve. Make sure you can accurately measure your existing performance,
+or you won't be able to measure the benefit of the alternatives you try.</p>
+
+<p>Every claim made in this document is backed up by a benchmark. The source
+to these benchmarks can be found in the <a
+href="http://code.google.com/p/dalvik/source/browse/#svn/trunk/benchmarks">code.google.com
+"dalvik" project</a>.</p>
+
+<p>The benchmarks are built with the
+<a href="http://code.google.com/p/caliper/">Caliper</a> microbenchmarking
+framework for Java. Microbenchmarks are hard to get right, so Caliper goes out
+of its way to do the hard work for you, and even detect some cases where you're
+not measuring what you think you're measuring (because, say, the VM has
+managed to optimize all your code away). We highly recommend you use Caliper
+to run your own microbenchmarks.</p>
+
+<p>You may also find
+<a href="{@docRoot}tools/debugging/debugging-tracing.html">Traceview</a> useful
+for profiling, but it's important to realize that it currently disables the JIT,
+which may cause it to misattribute time to code that the JIT may be able to win
+back. It's especially important after making changes suggested by Traceview
+data to ensure that the resulting code actually runs faster when run without
+Traceview.</p>
+
+<p>For more help profiling and debugging your apps, see the following documents:</p>
+
+<ul>
+ <li><a href="{@docRoot}tools/debugging/debugging-tracing.html">Profiling with
+ Traceview and dmtracedump</a></li>
+ <li><a href="{@docRoot}tools/debugging/systrace.html">Analysing Display and Performance
+ with Systrace</a></li>
+</ul>
+
diff --git a/docs/html/training/articles/security-tips.jd b/docs/html/training/articles/security-tips.jd
new file mode 100644
index 0000000..88d6017
--- /dev/null
+++ b/docs/html/training/articles/security-tips.jd
@@ -0,0 +1,759 @@
+page.title=Security Tips
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+<h2>In this document</h2>
+<ol>
+ <li><a href="#StoringData">Storing Data</a></li>
+ <li><a href="#Permissions">Using Permissions</a></li>
+ <li><a href="#Networking">Using Networking</a></li>
+ <li><a href="#InputValidation">Performing Input Validation</a></li>
+ <li><a href="#UserData">Handling User Data</a></li>
+ <li><a href="#WebView">Using WebView</a></li>
+ <li><a href="#Crypto">Using Cryptography</a></li>
+ <li><a href="#IPC">Using Interprocess Communication</a></li>
+ <li><a href="#DynamicCode">Dynamically Loading Code</a></li>
+ <li><a href="#Dalvik">Security in a Virtual Machine</a></li>
+ <li><a href="#Native">Security in Native Code</a></li>
+</ol>
+<h2>See also</h2>
+<ol>
+<li><a href="http://source.android.com/tech/security/index.html">Android
+Security Overview</a></li>
+<li><a href="{@docRoot}guide/topics/security/permissions.html">Permissions</a></li>
+</ol>
+</div></div>
+
+
+<p>Android has security features built
+into the operating system that significantly reduce the frequency and impact of
+application security issues. The system is designed so you can typically build your apps with
+default system and file permissions and avoid difficult decisions about security.</p>
+
+<p>Some of the core security features that help you build secure apps
+include:
+<ul>
+<li>The Android Application Sandbox, which isolates your app data and code execution
+from other apps.</li>
+<li>An application framework with robust implementations of common
+security functionality such as cryptography, permissions, and secure
+<acronym title="Interprocess Communication">IPC</acronym>.</li>
+<li>Technologies like ASLR, NX, ProPolice, safe_iop, OpenBSD dlmalloc, OpenBSD
+calloc, and Linux mmap_min_addr to mitigate risks associated with common memory
+management errors.</li>
+<li>An encrypted filesystem that can be enabled to protect data on lost or
+stolen devices.</li>
+<li>User-granted permissions to restrict access to system features and user data.</li>
+<li>Application-defined permissions to control application data on a per-app basis.</li>
+</ul>
+
+<p>Nevertheless, it is important that you be familiar with the Android
+security best practices in this document. Following these practices as general coding habits
+will reduce the likelihood of inadvertently introducing security issues that
+adversely affect your users.</p>
+
+
+
+<h2 id="StoringData">Storing Data</h2>
+
+<p>The most common security concern for an application on Android is whether the data
+that you save on the device is accessible to other apps. There are three fundamental
+ways to save data on the device:</p>
+
+<h3 id="InternalStorage">Using internal storage</h3>
+
+<p>By default, files that you create on <a
+href="{@docRoot}guide/topics/data/data-storage.html#filesInternal">internal
+storage</a> are accessible only to your app. This
+protection is implemented by Android and is sufficient for most
+applications.</p>
+
+<p>You should generally avoid using the {@link android.content.Context#MODE_WORLD_WRITEABLE} or
+{@link android.content.Context#MODE_WORLD_READABLE} modes for
+<acronym title="Interprocess Communication">IPC</acronym> files because they do not provide
+the ability to limit data access to particular applications, nor do they
+provide any control on data format. If you want to share your data with other
+app processes, you might instead consider using a
+<a href="{@docRoot}guide/topics/providers/content-providers.html">content provider</a>, which
+offers read and write permissions to other apps and can make
+dynamic permission grants on a case-by-case basis.</p>
+
+<p>To provide additional protection for sensitive data, you might
+choose to encrypt local files using a key that is not directly accessible to the
+application. For example, a key can be placed in a {@link java.security.KeyStore}
+and protected with a user password that is not stored on the device. While this
+does not protect data from a root compromise that can monitor the user
+inputting the password, it can provide protection for a lost device without <a
+href="http://source.android.com/tech/encryption/index.html">file system
+encryption</a>.</p>
+
+
+<h3 id="ExternalStorage">Using external storage</h3>
+
+<p>Files created on <a
+href="{@docRoot}guide/topics/data/data-storage.html#filesExternal">external
+storage</a>, such as SD Cards, are globally readable and writable. Because
+external storage can be removed by the user and also modified by any
+application, you should not store sensitive information using
+external storage.</p>
+
+<p>As with data from any untrusted source, you should <a href="#InputValidation">perform input
+validation</a> when handling data from external storage.
+We strongly recommend that you not store executables or
+class files on external storage prior to dynamic loading. If your app
+does retrieve executable files from external storage, the files should be signed and
+cryptographically verified prior to dynamic loading.</p>
+
+
+<h3 id="ContentProviders">Using content providers</h3>
+
+<p><a href="{@docRoot}guide/topics/providers/content-providers.html">Content providers</a>
+offer a structured storage mechanism that can be limited
+to your own application or exported to allow access by other applications.
+If you do not intend to provide other
+applications with access to your {@link android.content.ContentProvider}, mark them as <code><a
+href="{@docRoot}guide/topics/manifest/provider-element.html#exported">
+android:exported=false</a></code> in the application manifest. Otherwise, set the <code><a
+href="{@docRoot}guide/topics/manifest/provider-element.html#exported">android:exported</a></code>
+attribute {@code "true"} to allow other apps to access the stored data.
+</p>
+
+<p>When creating a {@link android.content.ContentProvider}
+that will be exported for use by other applications, you can specify a single
+<a href="{@docRoot}guide/topics/manifest/provider-element.html#prmsn">permission
+</a> for reading and writing, or distinct permissions for reading and writing
+within the manifest. We recommend that you limit your permissions to those
+required to accomplish the task at hand. Keep in mind that it’s usually
+easier to add permissions later to expose new functionality than it is to take
+them away and break existing users.</p>
+
+<p>If you are using a content provider
+for sharing data between only your own apps, it is preferable to use the
+<a href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">{@code
+android:protectionLevel}</a> attribute set to {@code "signature"} protection.
+Signature permissions do not require user confirmation,
+so they provide a better user experience and more controlled access to the
+content provider data when the apps accessing the data are
+<a href="{@docRoot}tools/publishing/app-signing.html">signed</a> with
+the same key.</p>
+
+<p>Content providers can also provide more granular access by declaring the <a
+href="{@docRoot}guide/topics/manifest/provider-element.html#gprmsn">{@code
+android:grantUriPermissions}</a> attribute and using the {@link
+android.content.Intent#FLAG_GRANT_READ_URI_PERMISSION} and {@link
+android.content.Intent#FLAG_GRANT_WRITE_URI_PERMISSION} flags in the
+{@link android.content.Intent} object
+that activates the component. The scope of these permissions can be further
+limited by the <code><a
+href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">
+<grant-uri-permission element></a></code>.</p>
+
+<p>When accessing a content provider, use parameterized query methods such as
+{@link android.content.ContentProvider#query(Uri,String[],String,String[],String) query()},
+{@link android.content.ContentProvider#update(Uri,ContentValues,String,String[]) update()}, and
+{@link android.content.ContentProvider#delete(Uri,String,String[]) delete()} to avoid
+potential SQL injection from untrusted sources. Note that using parameterized methods is not
+sufficient if the <code>selection</code> argument is built by concatenating user data
+prior to submitting it to the method.</p>
+
+<p>Do not have a false sense of security about the write permission. Consider
+that the write permission allows SQL statements which make it possible for some
+data to be confirmed using creative <code>WHERE</code> clauses and parsing the
+results. For example, an attacker might probe for presence of a specific phone
+number in a call-log by modifying a row only if that phone number already
+exists. If the content provider data has predictable structure, the write
+permission may be equivalent to providing both reading and writing.</p>
+
+
+
+
+
+
+
+<h2 id="Permissions">Using Permissions</h2>
+
+<p>Because Android sandboxes applications from each other, applications must explicitly
+share resources and data. They do this by declaring the permissions they need for additional
+capabilities not provided by the basic sandbox, including access to device features such as
+the camera.</p>
+
+
+<h3 id="RequestingPermissions">Requesting Permissions</h3>
+
+<p>We recommend minimizing the number of permissions that your app requests
+Not having access to sensitive permissions reduces the risk of
+inadvertently misusing those permissions, can improve user adoption, and makes
+your app less for attackers. Generally,
+if a permission is not required for your app to function, do not request it.</p>
+
+<p>If it's possible to design your application in a way that does not require
+any permissions, that is preferable. For example, rather than requesting access
+to device information to create a unique identifier, create a <a
+href="{@docRoot}reference/java/util/UUID.html">GUID</a> for your application
+(see the section about <a href="#UserData">Handling User Data</a>). Or, rather than
+using external storage (which requires permission), store data
+on the internal storage.</p>
+
+<p>In addition to requesting permissions, your application can use the <a
+href="{@docRoot}guide/topics/manifest/permission-element.html">{@code <permissions>}</a>
+to protect IPC that is security sensitive and will be exposed to other
+applications, such as a {@link android.content.ContentProvider}.
+In general, we recommend using access controls
+other than user confirmed permissions where possible because permissions can
+be confusing for users. For example, consider using the <a
+href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">signature
+protection level</a> on permissions for IPC communication between applications
+provided by a single developer.</p>
+
+<p>Do not leak permission-protected data. This occurs when your app exposes data
+over IPC that is only available because it has a specific permission, but does
+not require that permission of any clients of it’s IPC interface. More
+details on the potential impacts, and frequency of this type of problem is
+provided in this research paper published at USENIX: <a
+href="http://www.cs.berkeley.edu/~afelt/felt_usenixsec2011.pdf">http://www.cs.be
+rkeley.edu/~afelt/felt_usenixsec2011.pdf</a></p>
+
+
+
+<h3 id="CreatingPermissions">Creating Permissions</h3>
+
+<p>Generally, you should strive to define as few permissions as possible while
+satisfying your security requirements. Creating a new permission is relatively
+uncommon for most applications, because the <a
+href="{@docRoot}reference/android/Manifest.permission.html">system-defined
+permissions</a> cover many situations. Where appropriate,
+perform access checks using existing permissions.</p>
+
+<p>If you must create a new permission, consider whether you can accomplish
+your task with a <a
+href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">"signature"
+protection level</a>. Signature permissions are transparent
+to the user and only allow access by applications signed by the same developer
+as application performing the permission check.</p>
+
+<p>If you create a permission with the <a
+href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">"dangerous"
+protection level</a>, there are a number of complexities
+that you need to consider:
+<ul>
+<li>The permission must have a string that concisely expresses to a user the
+security decision they will be required to make.</li>
+<li>The permission string must be localized to many different languages.</li>
+<li>Users may choose not to install an application because a permission is
+confusing or perceived as risky.</li>
+<li>Applications may request the permission when the creator of the permission
+has not been installed.</li>
+</ul>
+
+<p>Each of these poses a significant non-technical challenge for you as the developer
+while also confusing your users,
+which is why we discourage the use of the "dangerous" permission level.</p>
+
+
+
+
+
+<h2 id="Networking">Using Networking</h2>
+
+<p>Network transactions are inherently risky for security, because it involves transmitting
+data that is potentially private to the user. People are increasingly aware of the privacy
+concerns of a mobile device, especially when the device performs network transactions,
+so it's very important that your app implement all best practices toward keeping the user's
+data secure at all times.</p>
+
+<h3 id="IPNetworking">Using IP Networking</h3>
+
+<p>Networking on Android is not significantly different from other Linux
+environments. The key consideration is making sure that appropriate protocols
+are used for sensitive data, such as {@link javax.net.ssl.HttpsURLConnection} for
+secure web traffic. We prefer use of HTTPS over HTTP anywhere that HTTPS is
+supported on the server, because mobile devices frequently connect on networks
+that are not secured, such as public Wi-Fi hotspots.</p>
+
+<p>Authenticated, encrypted socket-level communication can be easily
+implemented using the {@link javax.net.ssl.SSLSocket}
+class. Given the frequency with which Android devices connect to unsecured
+wireless networks using Wi-Fi, the use of secure networking is strongly
+encouraged for all applications that communicate over the network.</p>
+
+<p>We have seen some applications use <a
+href="http://en.wikipedia.org/wiki/Localhost">localhost</a> network ports for
+handling sensitive IPC. We discourage this approach since these interfaces are
+accessible by other applications on the device. Instead, you should use an Android IPC
+mechanism where authentication is possible such as with a {@link android.app.Service}. (Even
+worse than using loopback is to bind to INADDR_ANY since then your application
+may receive requests from anywhere.)</p>
+
+<p>Also, one common issue that warrants repeating is to make sure that you do
+not trust data downloaded from HTTP or other insecure protocols. This includes
+validation of input in {@link android.webkit.WebView} and
+any responses to intents issued against HTTP.</p>
+
+
+<h3>Using Telephony Networking</h3>
+
+<p>The <acronym title="Short Message Service">SMS</acronym> protocol was primarily designed for
+user-to-user communication and is not well-suited for apps that want to transfer data.
+Due to the limitations of SMS, we strongly recommend the use of <a
+href="{@docRoot}guide/google/gcm/index.html">Google Cloud Messaging</a> (GCM)
+and IP networking for sending data messages from a web server to your app on a user device.</p>
+
+<p>Beware that SMS is neither encrypted nor strongly
+authenticated on either the network or the device. In particular, any SMS receiver
+should expect that a malicious user may have sent the SMS to your application—Do
+not rely on unauthenticated SMS data to perform sensitive commands.
+Also, you should be aware that SMS may be subject to spoofing and/or
+interception on the network. On the Android-powered device itself, SMS
+messages are transmitted as broadcast intents, so they may be read or captured
+by other applications that have the {@link android.Manifest.permission#READ_SMS}
+permission.</p>
+
+
+
+
+
+<h2 id="InputValidation">Performing Input Validation</h2>
+
+<p>Insufficient input validation is one of the most common security problems
+affecting applications, regardless of what platform they run on. Android does
+have platform-level countermeasures that reduce the exposure of applications to
+input validation issues and you should use those features where possible. Also
+note that selection of type-safe languages tends to reduce the likelihood of
+input validation issues.</p>
+
+<p>If you are using native code, then any data read from files, received over
+the network, or received from an IPC has the potential to introduce a security
+issue. The most common problems are <a
+href="http://en.wikipedia.org/wiki/Buffer_overflow">buffer overflows</a>, <a
+href="http://en.wikipedia.org/wiki/Double_free#Use_after_free">use after
+free</a>, and <a
+href="http://en.wikipedia.org/wiki/Off-by-one_error">off-by-one errors</a>.
+Android provides a number of technologies like <acronym
+title="Address Space Layout Randomization">ASLR</acronym> and <acronym
+title="Data Execution Prevention">DEP</acronym> that reduce the
+exploitability of these errors, but they do not solve the underlying problem.
+You can prevent these vulneratbilities by careful handling pointers and managing
+buffers.</p>
+
+<p>Dynamic, string based languages such as JavaScript and SQL are also subject
+to input validation problems due to escape characters and <a
+href="http://en.wikipedia.org/wiki/Code_injection">script injection</a>.</p>
+
+<p>If you are using data within queries that are submitted to an SQL database or a
+content provider, SQL injection may be an issue. The best defense is to use
+parameterized queries, as is discussed in the above section about <a
+href="#ContentProviders">content providers</a>.
+Limiting permissions to read-only or write-only can also reduce the potential
+for harm related to SQL injection.</p>
+
+<p>If you cannot use the security features above, we strongly recommend the use
+of well-structured data formats and verifying that the data conforms to the
+expected format. While blacklisting of characters or character-replacement can
+be an effective strategy, these techniques are error-prone in practice and
+should be avoided when possible.</p>
+
+
+
+
+
+<h2 id="UserData">Handling User Data</h2>
+
+<p>In general, the best approach for user data security is to minimize the use of APIs that access
+sensitive or personal user data. If you have access to user data and can avoid
+storing or transmitting the information, do not store or transmit the data.
+Finally, consider if there is a way that your application logic can be
+implemented using a hash or non-reversible form of the data. For example, your
+application might use the hash of an an email address as a primary key, to
+avoid transmitting or storing the email address. This reduces the chances of
+inadvertently exposing data, and it also reduces the chance of attackers
+attempting to exploit your application.</p>
+
+<p>If your application accesses personal information such as passwords or
+usernames, keep in mind that some jurisdictions may require you to provide a
+privacy policy explaining your use and storage of that data. So following the
+security best practice of minimizing access to user data may also simplify
+compliance.</p>
+
+<p>You should also consider whether your application might be inadvertently
+exposing personal information to other parties such as third-party components
+for advertising or third-party services used by your application. If you don't
+know why a component or service requires a personal information, don’t
+provide it. In general, reducing the access to personal information by your
+application will reduce the potential for problems in this area.</p>
+
+<p>If access to sensitive data is required, evaluate whether that information
+must be transmitted to a server, or whether the operation can be performed on
+the client. Consider running any code using sensitive data on the client to
+avoid transmitting user data.</p>
+
+<p>Also, make sure that you do not inadvertently expose user data to other
+application on the device through overly permissive IPC, world writable files,
+or network sockets. This is a special case of leaking permission-protected data,
+discussed in the <a href="#RequestingPermissions">Requesting Permissions</a> section.</p>
+
+<p>If a <acronym title="Globally Unique Identifier">GUID</acronym>
+is required, create a large, unique number and store it. Do not
+use phone identifiers such as the phone number or IMEI which may be associated
+with personal information. This topic is discussed in more detail in the <a
+href="http://android-developers.blogspot.com/2011/03/identifying-app-installations.html">Android
+Developer Blog</a>.</p>
+
+<p>Be careful when writing to on-device logs.
+In Android, logs are a shared resource, and are available
+to an application with the {@link android.Manifest.permission#READ_LOGS} permission.
+Even though the phone log data
+is temporary and erased on reboot, inappropriate logging of user information
+could inadvertently leak user data to other applications.</p>
+
+
+
+
+
+
+<h2 id="WebView">Using WebView</h2>
+
+<p>Because {@link android.webkit.WebView} consumes web content that can include HTML and JavaScript,
+improper use can introduce common web security issues such as <a
+href="http://en.wikipedia.org/wiki/Cross_site_scripting">cross-site-scripting</a>
+(JavaScript injection). Android includes a number of mechanisms to reduce
+the scope of these potential issues by limiting the capability of {@link android.webkit.WebView} to
+the minimum functionality required by your application.</p>
+
+<p>If your application does not directly use JavaScript within a {@link android.webkit.WebView}, do
+<em>not</em> call {@link android.webkit.WebSettings#setJavaScriptEnabled setJavaScriptEnabled()}.
+Some sample code uses this method, which you might repurpose in production
+application, so remove that method call if it's not required. By default,
+{@link android.webkit.WebView} does
+not execute JavaScript so cross-site-scripting is not possible.</p>
+
+<p>Use {@link android.webkit.WebView#addJavascriptInterface
+addJavaScriptInterface()} with
+particular care because it allows JavaScript to invoke operations that are
+normally reserved for Android applications. If you use it, expose
+{@link android.webkit.WebView#addJavascriptInterface addJavaScriptInterface()} only to
+web pages from which all input is trustworthy. If untrusted input is allowed,
+untrusted JavaScript may be able to invoke Android methods within your app. In general, we
+recommend exposing {@link android.webkit.WebView#addJavascriptInterface
+addJavaScriptInterface()} only to JavaScript that is contained within your application APK.</p>
+
+<p>If your application accesses sensitive data with a
+{@link android.webkit.WebView}, you may want to use the
+{@link android.webkit.WebView#clearCache clearCache()} method to delete any files stored
+locally. Server-side
+headers like <code>no-cache</code> can also be used to indicate that an application should
+not cache particular content.</p>
+
+
+
+
+<h3 id="Credentials">Handling Credentials</h3>
+
+<p>In general, we recommend minimizing the frequency of asking for user
+credentials—to make phishing attacks more conspicuous, and less likely to be
+successful. Instead use an authorization token and refresh it.</p>
+
+<p>Where possible, username and password should not be stored on the device.
+Instead, perform initial authentication using the username and password
+supplied by the user, and then use a short-lived, service-specific
+authorization token.</p>
+
+<p>Services that will be accessible to multiple applications should be accessed
+using {@link android.accounts.AccountManager}. If possible, use the
+{@link android.accounts.AccountManager} class to invoke a cloud-based service and do not store
+passwords on the device.</p>
+
+<p>After using {@link android.accounts.AccountManager} to retrieve an
+{@link android.accounts.Account}, {@link android.accounts.Account#CREATOR}
+before passing in any credentials, so that you do not inadvertently pass
+credentials to the wrong application.</p>
+
+<p>If credentials are to be used only by applications that you create, then you
+can verify the application which accesses the {@link android.accounts.AccountManager} using
+{@link android.content.pm.PackageManager#checkSignatures checkSignature()}.
+Alternatively, if only one application will use the credential, you might use a
+{@link java.security.KeyStore} for storage.</p>
+
+
+
+
+
+<h2 id="Crypto">Using Cryptography</h2>
+
+<p>In addition to providing data isolation, supporting full-filesystem
+encryption, and providing secure communications channels, Android provides a
+wide array of algorithms for protecting data using cryptography.</p>
+
+<p>In general, try to use the highest level of pre-existing framework
+implementation that can support your use case. If you need to securely
+retrieve a file from a known location, a simple HTTPS URI may be adequate and
+requires no knowledge of cryptography. If you need a secure
+tunnel, consider using {@link javax.net.ssl.HttpsURLConnection} or
+{@link javax.net.ssl.SSLSocket}, rather than writing your own protocol.</p>
+
+<p>If you do find yourself needing to implement your own protocol, we strongly
+recommend that you <em>not</em> implement your own cryptographic algorithms. Use
+existing cryptographic algorithms such as those in the implementation of AES or
+RSA provided in the {@link javax.crypto.Cipher} class.</p>
+
+<p>Use a secure random number generator, {@link java.security.SecureRandom},
+to initialize any cryptographic keys, {@link javax.crypto.KeyGenerator}.
+Use of a key that is not generated with a secure random
+number generator significantly weakens the strength of the algorithm, and may
+allow offline attacks.</p>
+
+<p>If you need to store a key for repeated use, use a mechanism like
+ {@link java.security.KeyStore} that
+provides a mechanism for long term storage and retrieval of cryptographic
+keys.</p>
+
+
+
+
+
+<h2 id="IPC">Using Interprocess Communication</h2>
+
+<p>Some apps attempt to implement IPC using traditional Linux
+techniques such as network sockets and shared files. We strongly encourage you to instead
+use Android system functionality for IPC such as {@link android.content.Intent},
+{@link android.os.Binder} or {@link android.os.Messenger} with a {@link
+android.app.Service}, and {@link android.content.BroadcastReceiver}.
+The Android IPC mechanisms allow you to verify the identity of
+the application connecting to your IPC and set security policy for each IPC
+mechanism.</p>
+
+<p>Many of the security elements are shared across IPC mechanisms.
+If your IPC mechanism is not intended for use by other applications, set the
+{@code android:exported} attribute to {@code "false"} in the component's manifest element,
+such as for the <a
+href="{@docRoot}guide/topics/manifest/service-element.html#exported">{@code <service>}</a>
+element. This is useful for applications that consist of multiple processes
+within the same UID, or if you decide late in development that you do not
+actually want to expose functionality as IPC but you don’t want to rewrite
+the code.</p>
+
+<p>If your IPC is intended to be accessible to other applications, you can
+apply a security policy by using the <a
+href="{@docRoot}guide/topics/manifest/permission-element.html">{@code <permission>}</a>
+element. If IPC is between your own separate apps that are signed with the same key,
+it is preferable to use {@code "signature"} level permission in the <a
+href="{@docRoot}guide/topics/manifest/permission-element.html#plevel">{@code
+android:protectionLevel}</a>.</p>
+
+
+
+
+<h3>Using intents</h3>
+
+<p>Intents are the preferred mechanism for asynchronous IPC in Android.
+Depending on your application requirements, you might use {@link
+android.content.Context#sendBroadcast sendBroadcast()}, {@link
+android.content.Context#sendOrderedBroadcast sendOrderedBroadcast()},
+or an explicit intent to a specific application component.</p>
+
+<p>Note that ordered broadcasts can be “consumed” by a recipient, so they
+may not be delivered to all applications. If you are sending an intent that muse be delivered
+to a specific receiver, then you must use an explicit intent that declares the receiver
+by nameintent.</p>
+
+<p>Senders of an intent can verify that the recipient has a permission
+specifying a non-Null permission with the method call. Only applications with that
+permission will receive the intent. If data within a broadcast intent may be
+sensitive, you should consider applying a permission to make sure that
+malicious applications cannot register to receive those messages without
+appropriate permissions. In those circumstances, you may also consider
+invoking the receiver directly, rather than raising a broadcast.</p>
+
+<p class="note"><strong>Note:</strong> Intent filters should not be considered
+a security feature—components
+can be invoked with explicit intents and may not have data that would conform to the intent
+filter. You should perform input validation within your intent receiver to
+confirm that it is properly formatted for the invoked receiver, service, or
+activity.</p>
+
+
+
+
+<h3 id="Services">Using services</h3>
+
+<p>A {@link android.app.Service} is often used to supply functionality for other applications to
+use. Each service class must have a corresponding <a
+href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> declaration in its
+manifest file.</p>
+
+<p>By default, services are not exported and cannot be invoked by any other
+application. However, if you add any intent filters to the service declaration, then it is exported
+by default. It's best if you explicitly declare the <a
+href="{@docRoot}guide/topics/manifest/service-element.html#exported">{@code
+android:exported}</a> attribute to be sure it behaves as you'd like.
+Services can also be protected using the <a
+href="{@docRoot}guide/topics/manifest/service-element.html#prmsn">{@code android:permission}</a>
+attribute. By doing so, other applications will need to declare
+a corresponding <code><a
+href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a>
+</code> element in their own manifest to be
+able to start, stop, or bind to the service.</p>
+
+<p>A service can protect individual IPC calls into it with permissions, by
+calling {@link android.content.Context#checkCallingPermission
+checkCallingPermission()} before executing
+the implementation of that call. We generally recommend using the
+declarative permissions in the manifest, since those are less prone to
+oversight.</p>
+
+
+
+<h3>Using binder and messenger interfaces</h3>
+
+<p>Using {@link android.os.Binder} or {@link android.os.Messenger} is the
+preferred mechanism for RPC-style IPC in Android. They provide a well-defined
+interface that enables mutual authentication of the endpoints, if required.</p>
+
+<p>We strongly encourage designing interfaces in a manner that does not require
+interface specific permission checks. {@link android.os.Binder} and
+{@link android.os.Messenger} objects are not declared within the
+application manifest, and therefore you cannot apply declarative permissions
+directly to them. They generally inherit permissions declared in the
+application manifest for the {@link android.app.Service} or {@link
+android.app.Activity} within which they are
+implemented. If you are creating an interface that requires authentication
+and/or access controls, those controls must be
+explicitly added as code in the {@link android.os.Binder} or {@link android.os.Messenger}
+interface.</p>
+
+<p>If providing an interface that does require access controls, use {@link
+android.content.Context#checkCallingPermission checkCallingPermission()}
+to verify whether the
+caller has a required permission. This is especially important
+before accessing a service on behalf of the caller, as the identify of your
+application is passed to other interfaces. If invoking an interface provided
+by a {@link android.app.Service}, the {@link
+android.content.Context#bindService bindService()}
+ invocation may fail if you do not have permission to access the given service.
+ If calling an interface provided locally by your own application, it may be
+useful to use the {@link android.os.Binder#clearCallingIdentity clearCallingIdentity()}
+to satisfy internal security checks.</p>
+
+<p>For more information about performing IPC with a service, see
+<a href="{@docRoot}guide/components/bound-services.html">Bound Services</a>.</p>
+
+
+
+<h3 id="BroadcastReceivers">Using broadcast receivers</h3>
+
+<p>A {@link android.content.BroadcastReceiver} handles asynchronous requests initiated by
+an {@link android.content.Intent}.</p>
+
+<p>By default, receivers are exported and can be invoked by any other
+application. If your {@link android.content.BroadcastReceiver}
+is intended for use by other applications, you
+may want to apply security permissions to receivers using the <code><a
+href="{@docRoot}guide/topics/manifest/receiver-element.html">
+<receiver></a></code> element within the application manifest. This will
+prevent applications without appropriate permissions from sending an intent to
+the {@link android.content.BroadcastReceiver}.</p>
+
+
+
+
+
+
+
+
+<h2 id="DynamicCode">Dynamically Loading Code</h2>
+
+<p>We strongly discourage loading code from outside of your application APK.
+Doing so significantly increases the likelihood of application compromise due
+to code injection or code tampering. It also adds complexity around version
+management and application testing. Finally, it can make it impossible to
+verify the behavior of an application, so it may be prohibited in some
+environments.</p>
+
+<p>If your application does dynamically load code, the most important thing to
+keep in mind about dynamically loaded code is that it runs with the same
+security permissions as the application APK. The user made a decision to
+install your application based on your identity, and they are expecting that
+you provide any code run within the application, including code that is
+dynamically loaded.</p>
+
+<p>The major security risk associated with dynamically loading code is that the
+code needs to come from a verifiable source. If the modules are included
+directly within your APK, then they cannot be modified by other applications.
+This is true whether the code is a native library or a class being loaded using
+{@link dalvik.system.DexClassLoader}. We have seen many instances of applications
+attempting to load code from insecure locations, such as downloaded from the
+network over unencrypted protocols or from world writable locations such as
+external storage. These locations could allow someone on the network to modify
+the content in transit, or another application on a users device to modify the
+content on the device, respectively.</p>
+
+
+
+
+
+<h2 id="Dalvik">Security in a Virtual Machine</h2>
+
+<p>Dalvik is Android's runtime virtual machine (VM). Dalvik was built specifically for Android,
+but many of the concerns regarding secure code in other virtual machines also apply to Android.
+In general, you shouldn't concern yourself with security issues relating to the virtual machine.
+Your application runs in a secure sandbox environment, so other processes on the system cannnot
+access your code or private data.</p>
+
+<p>If you're interested in diving deeper on the subject of virtual machine security,
+we recommend that you familiarize yourself with some
+existing literature on the subject. Two of the more popular resources are:
+<ul>
+<li><a href="http://www.securingjava.com/toc.html">
+http://www.securingjava.com/toc.html</a></li>
+<li><a
+href="https://www.owasp.org/index.php/Java_Security_Resources">
+https://www.owasp.org/index.php/Java_Security_Resources</a></li>
+</ul></p>
+
+<p>This document is focused on the areas which are Android specific or
+different from other VM environments. For developers experienced with VM
+programming in other environments, there are two broad issues that may be
+different about writing apps for Android:
+<ul>
+<li>Some virtual machines, such as the JVM or .net runtime, act as a security
+boundary, isolating code from the underlying operating system capabilities. On
+Android, the Dalvik VM is not a security boundary—the application sandbox is
+implemented at the OS level, so Dalvik can interoperate with native code in the
+same application without any security constraints.</li>
+
+<li>Given the limited storage on mobile devices, it’s common for developers
+to want to build modular applications and use dynamic class loading. When
+doing this, consider both the source where you retrieve your application logic
+and where you store it locally. Do not use dynamic class loading from sources
+that are not verified, such as unsecured network sources or external storage,
+because that code might be modified to include malicious behavior.</li>
+</ul>
+
+
+
+<h2 id="Native">Security in Native Code</h2>
+
+<p>In general, we encourage developers to use the Android SDK for
+application development, rather than using native code with the
+<a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK</a>. Applications built
+with native code are more complex, less portable, and more like to include
+common memory corruption errors such as buffer overflows.</p>
+
+<p>Android is built using the Linux kernel and being familiar with Linux
+development security best practices is especially useful if you are going to
+use native code. Linux security practices are beyond the scope of this document,
+but one of the most popular resources is “Secure Programming for
+Linux and Unix HOWTO”, available at <a
+href="http://www.dwheeler.com/secure-programs">
+http://www.dwheeler.com/secure-programs</a>.</p>
+
+<p>An important difference between Android and most Linux environments is the
+Application Sandbox. On Android, all applications run in the Application
+Sandbox, including those written with native code. At the most basic level, a
+good way to think about it for developers familiar with Linux is to know that
+every application is given a unique <acronym title="User Identifier">UID</acronym>
+with very limited permissions. This is discussed in more detail in the <a
+href="http://source.android.com/tech/security/index.html">Android Security
+Overview</a> and you should be familiar with application permissions even if
+you are using native code.</p>
+
diff --git a/docs/html/training/best-performance.jd b/docs/html/training/best-performance.jd
new file mode 100644
index 0000000..8ea6fd5
--- /dev/null
+++ b/docs/html/training/best-performance.jd
@@ -0,0 +1,8 @@
+page.title=Best Practices for Performance
+page.trainingcourse=true
+
+@jd:body
+
+
+<p>These classes and articles help you build an app that's smooth, responsive,
+and uses as little battery as possible.</p>
\ No newline at end of file
diff --git a/docs/html/training/best-security.jd b/docs/html/training/best-security.jd
new file mode 100644
index 0000000..ddd0cf6
--- /dev/null
+++ b/docs/html/training/best-security.jd
@@ -0,0 +1,9 @@
+page.title=Best Practices for Security & Privacy
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>These classes and articles provide information about how to
+keep your app's data secure.</p>
\ No newline at end of file
diff --git a/docs/html/training/best-ux.jd b/docs/html/training/best-ux.jd
new file mode 100644
index 0000000..5f109f6
--- /dev/null
+++ b/docs/html/training/best-ux.jd
@@ -0,0 +1,12 @@
+page.title=Best Practices for User Experience & UI
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>These classes focus on the best Android user experience for your app.
+In some cases, the success of your app on Android is heavily
+affected by whether your app conforms to the user's expectations for
+UI and navigation on an Android device. Follow these recommendations to ensure that
+your app looks and behaves in a way that satisfies Android users.</p>
\ No newline at end of file
diff --git a/docs/html/training/building-connectivity.jd b/docs/html/training/building-connectivity.jd
new file mode 100644
index 0000000..8b145ad
--- /dev/null
+++ b/docs/html/training/building-connectivity.jd
@@ -0,0 +1,10 @@
+page.title=Building Apps with Connectivity & the Cloud
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>These classes teach you how to connect your app to the world beyond the user's device.
+You'll learn how to connect to other devices in the area, connect to the Internet, backup and
+sync your app's data, and more.</p>
\ No newline at end of file
diff --git a/docs/html/training/building-graphics.jd b/docs/html/training/building-graphics.jd
new file mode 100644
index 0000000..ee79a5b
--- /dev/null
+++ b/docs/html/training/building-graphics.jd
@@ -0,0 +1,11 @@
+page.title=Building Apps with Graphics & Animation
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>These classes teach you how to accomplish tasks with graphics
+that can give your app an edge on the competition.
+If you want to go beyond the basic user interface to create a beautiful visual experience,
+these classes will help you get there.</p>
\ No newline at end of file
diff --git a/docs/html/training/building-multimedia.jd b/docs/html/training/building-multimedia.jd
new file mode 100644
index 0000000..95e7811
--- /dev/null
+++ b/docs/html/training/building-multimedia.jd
@@ -0,0 +1,9 @@
+page.title=Building Apps with Multimedia
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>These classes teach you how to
+create rich multimedia apps that behave the way users expect.</p>
\ No newline at end of file
diff --git a/docs/html/training/building-userinfo.jd b/docs/html/training/building-userinfo.jd
new file mode 100644
index 0000000..f9d77f7
--- /dev/null
+++ b/docs/html/training/building-userinfo.jd
@@ -0,0 +1,9 @@
+page.title=Building Apps with User Info & Location
+page.trainingcourse=true
+
+@jd:body
+
+
+<p>These classes teach you how to add user personalization to your app. Some of the ways
+you can do this is by identifying users, providing
+information that's relevant to them, and providing information about the world around them.</p>
\ No newline at end of file
diff --git a/docs/html/training/distribute.jd b/docs/html/training/distribute.jd
new file mode 100644
index 0000000..4b21020
--- /dev/null
+++ b/docs/html/training/distribute.jd
@@ -0,0 +1,9 @@
+page.title=Using Google Play to Distribute & Monetize
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>These classes focus on the business aspects of your app strategy, including techniques
+for distributing your app on Google Play and techniques for building revenue.</p>
\ No newline at end of file
diff --git a/docs/html/training/index.jd b/docs/html/training/index.jd
index 3c67af9..72ad018 100644
--- a/docs/html/training/index.jd
+++ b/docs/html/training/index.jd
@@ -1,14 +1,14 @@
-page.title=Android Training
+page.title=Getting Started
+page.trainingcourse=true
page.metaDescription=Android Training provides a collection of classes that aim to help you build great apps for Android. Each class explains the steps required to solve a problem or implement a feature using code snippets and sample code for you to use in your apps.
@jd:body
-<p>Welcome to Android Training. Here you'll find a collection of classes that aim to help you
-build great apps for Android, using best practices in a variety of framework topics.</p>
-<p>Each class explains the steps required to solve a problem or implement a feature using code
-snippets and sample code for you to use in your apps.</p>
+<p>Welcome to Training for Android developers. Here you'll find sets of lessons within classes
+that describe how to accomplish a specific task with code samples you can re-use in your app.
+Classes are organized into several groups you can see at the top-level of the left navigation.</p>
-<p>This first section is focused on teaching you the bare essentials. If you're a new developer
-on Android, you should walk through each of these classes, beginning with
-<a href="{@docRoot}training/basics/firstapp/index.html">Building Your First App</a>.</p></a>
+<p>This first group, <em>Getting Started</em>, teaches you the bare
+essentials for Android app development.
+If you're a new Android app developer, you should complete each of these classes in order:</p>
\ No newline at end of file
diff --git a/docs/html/training/notify-user/build-notification.jd b/docs/html/training/notify-user/build-notification.jd
new file mode 100644
index 0000000..ba66028
--- /dev/null
+++ b/docs/html/training/notify-user/build-notification.jd
@@ -0,0 +1,160 @@
+page.title=Building a Notification
+parent.title=Notifying the User
+parent.link=index.html
+
+trainingnavtop=true
+next.title=Preserving Navigation when Starting an Activity
+next.link=navigation.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- table of contents -->
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#builder">Create a Notification Builder</a></li>
+ <li><a href="#action">Define the Notification's Action</a></li>
+ <li><a href="#click">Set the Notification's Click Behavior</a></li>
+ <li><a href="#notify">Issue the Notification</a></li>
+</ol>
+
+<!-- other docs (NOT javadocs) -->
+<h2>You should also read</h2>
+
+<ul>
+ <li>
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
+ </li>
+ <li>
+ <a href="{@docRoot}guide/components/intents-filters.html">
+ Intents and Intent Filters
+ </a>
+ </li>
+ <li>
+ <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+ </li>
+</ul>
+
+
+</div>
+</div>
+
+
+<p>This lesson explains how to create and issue a notification.</p>
+
+<p>The examples in this class are based on the
+{@link android.support.v4.app.NotificationCompat.Builder} class.
+{@link android.support.v4.app.NotificationCompat.Builder}
+is in the <a href="{@docRoot}">Support Library</a>. You should use
+{@link android.support.v4.app.NotificationCompat} and its subclasses,
+particularly {@link android.support.v4.app.NotificationCompat.Builder}, to
+provide the best notification support for a wide range of platforms. </p>
+
+<h2 id="builder">Create a Notification Builder</h2>
+
+<p>When creating a notification, specify the UI content and actions with a
+{@link android.support.v4.app.NotificationCompat.Builder} object. At bare minimum,
+a {@link android.support.v4.app.NotificationCompat.Builder Builder}
+object must include the following:</p>
+
+<ul>
+ <li>
+ A small icon, set by
+ {@link android.support.v4.app.NotificationCompat.Builder#setSmallIcon setSmallIcon()}
+ </li>
+ <li>
+ A title, set by
+ {@link android.support.v4.app.NotificationCompat.Builder#setContentTitle setContentTitle()}
+ </li>
+ <li>
+ Detail text, set by
+ {@link android.support.v4.app.NotificationCompat.Builder#setContentText setContentText()}
+ </li>
+</ul>
+<p> For example: </p>
+<pre>
+NotificationCompat.Builder mBuilder =
+ new NotificationCompat.Builder(this)
+ .setSmallIcon(R.drawable.notification_icon)
+ .setContentTitle("My notification")
+ .setContentText("Hello World!");
+</pre>
+
+<h2 id="action">Define the Notification's Action</h2>
+
+
+<p>Although actions are optional, you should add at least one action to your
+notification. An action takes users directly from the notification to an
+{@link android.app.Activity} in your application, where they can look at the
+event that caused the notification or do further work. Inside a notification, the action itself is
+defined by a {@link android.app.PendingIntent} containing an {@link
+android.content.Intent} that starts an {@link android.app.Activity} in your
+application.</p>
+
+<p>How you construct the {@link android.app.PendingIntent} depends on what type
+of {@link android.app.Activity} you're starting. When you start an {@link
+android.app.Activity} from a notification, you must preserve the user's expected
+navigation experience. In the snippet below, clicking the notification opens a
+new activity that effectively extends the behavior of the notification. In this
+case there is no need to create an artificial back stack (see
+<a href="navigation.html">Preserving Navigation when Starting an Activity</a> for
+more information):</p>
+
+<pre>Intent resultIntent = new Intent(this, ResultActivity.class);
+...
+// Because clicking the notification opens a new ("special") activity, there's
+// no need to create an artificial back stack.
+PendingIntent resultPendingIntent =
+ PendingIntent.getActivity(
+ this,
+ 0,
+ resultIntent,
+ PendingIntent.FLAG_UPDATE_CURRENT
+);
+</pre>
+
+<h2 id="click">Set the Notification's Click Behavior</h2>
+
+<p>
+To associate the {@link android.app.PendingIntent} created in the previous
+step with a gesture, call the appropriate method of {@link
+android.support.v4.app.NotificationCompat.Builder}. For example, to start an
+activity when the user clicks the notification text in the notification drawer,
+add the {@link android.app.PendingIntent} by calling {@link
+android.support.v4.app.NotificationCompat.Builder#setContentIntent
+setContentIntent()}. For example:</p>
+
+<pre>PendingIntent resultPendingIntent;
+...
+mBuilder.setContentIntent(resultPendingIntent);</pre>
+
+<h2 id="notify">Issue the Notification</h2>
+
+<p>To issue the notification:</p>
+<ul>
+<li>Get an instance of {@link android.app.NotificationManager}.</li>
+
+<li>Use the {@link android.app.NotificationManager#notify notify()} method to issue the
+notification. When you call {@link android.app.NotificationManager#notify notify()}, specify a notification ID.
+You can use this ID to update the notification later on. This is described in more detail in
+<a href="managing.html">Managing Notifications</a>.</li>
+
+<li>Call {@link
+android.support.v4.app.NotificationCompat.Builder#build() build()}, which
+returns a {@link android.app.Notification} object containing your
+specifications.</li>
+
+<p>For example:</p>
+
+<pre>
+// Sets an ID for the notification
+int mNotificationId = 001;
+// Gets an instance of the NotificationManager service
+NotificationManager mNotifyMgr =
+ (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+// Builds the notification and issues it.
+mNotifyMgr.notify(mNotificationId, builder.build());
+</pre>
+
diff --git a/docs/html/training/notify-user/display-progress.jd b/docs/html/training/notify-user/display-progress.jd
new file mode 100644
index 0000000..2b2b3ae
--- /dev/null
+++ b/docs/html/training/notify-user/display-progress.jd
@@ -0,0 +1,182 @@
+page.title=Displaying Progress in a Notification
+parent.title=Notifying the User
+parent.link=index.html
+
+trainingnavtop=true
+previous.title=Using Expanded Notification Styles
+previous.link=expanded.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- table of contents -->
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#FixedProgress">Display a Fixed-duration progress Indicator</a></li>
+ <li><a href="#ActivityIndicator">Display a Continuing Activity Indicator</a></li>
+</ol>
+
+<!-- other docs (NOT javadocs) -->
+<h2>You should also read</h2>
+
+<ul>
+ <li>
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
+ </li>
+ <li>
+ <a href="{@docRoot}guide/components/intents-filters.html">
+ Intents and Intent Filters
+ </a>
+ </li>
+ <li>
+ <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+ </li>
+</ul>
+
+
+</div>
+</div>
+
+
+
+<p>
+ Notifications can include an animated progress indicator that shows users the status
+ of an ongoing operation. If you can estimate how long the operation takes and how much of it
+ is complete at any time, use the "determinate" form of the indicator
+ (a progress bar). If you can't estimate the length of the operation, use the
+ "indeterminate" form of the indicator (an activity indicator).
+</p>
+<p>
+ Progress indicators are displayed with the platform's implementation of the
+ {@link android.widget.ProgressBar} class.
+</p>
+<p>
+ To use a progress indicator, call
+ {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress()}. The
+ determinate and indeterminate forms are described in the following sections.
+</p>
+<!-- ------------------------------------------------------------------------------------------ -->
+<h2 id="FixedProgress">Display a Fixed-duration Progress Indicator</h2>
+<p>
+ To display a determinate progress bar, add the bar to your notification by calling
+ {@link android.support.v4.app.NotificationCompat.Builder#setProgress
+ setProgress(max, progress, false)} and then issue the notification.
+ The third argument is a boolean that indicates whether the
+ progress bar is indeterminate (<strong>true</strong>) or determinate (<strong>false</strong>).
+ As your operation proceeds,
+ increment <code>progress</code>, and update the notification. At the end of the operation,
+ <code>progress</code> should equal <code>max</code>. A common way to call
+ {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress()}
+ is to set <code>max</code> to 100 and then increment <code>progress</code> as a
+ "percent complete" value for the operation.
+</p>
+<p>
+ You can either leave the progress bar showing when the operation is done, or remove it. In
+ either case, remember to update the notification text to show that the operation is complete.
+ To remove the progress bar, call
+ {@link android.support.v4.app.NotificationCompat.Builder#setProgress
+ setProgress(0, 0, false)}. For example:
+</p>
+<pre>
+...
+mNotifyManager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+mBuilder = new NotificationCompat.Builder(this);
+mBuilder.setContentTitle("Picture Download")
+ .setContentText("Download in progress")
+ .setSmallIcon(R.drawable.ic_notification);
+// Start a lengthy operation in a background thread
+new Thread(
+ new Runnable() {
+ @Override
+ public void run() {
+ int incr;
+ // Do the "lengthy" operation 20 times
+ for (incr = 0; incr <= 100; incr+=5) {
+ // Sets the progress indicator to a max value, the
+ // current completion percentage, and "determinate"
+ // state
+ mBuilder.setProgress(100, incr, false);
+ // Displays the progress bar for the first time.
+ mNotifyManager.notify(0, mBuilder.build());
+ // Sleeps the thread, simulating an operation
+ // that takes time
+ try {
+ // Sleep for 5 seconds
+ Thread.sleep(5*1000);
+ } catch (InterruptedException e) {
+ Log.d(TAG, "sleep failure");
+ }
+ }
+ // When the loop is finished, updates the notification
+ mBuilder.setContentText("Download complete")
+ // Removes the progress bar
+ .setProgress(0,0,false);
+ mNotifyManager.notify(ID, mBuilder.build());
+ }
+ }
+// Starts the thread by calling the run() method in its Runnable
+).start();
+</pre>
+<p>
+ The resulting notifications are shown in figure 1. On the left side is a snapshot of the
+ notification during the operation; on the right side is a snapshot of it after the operation
+ has finished.
+</p>
+<img
+ id="figure1"
+ src="{@docRoot}images/ui/notifications/progress_bar_summary.png"
+ height="84"
+ alt="" />
+<p class="img-caption">
+<strong>Figure 1.</strong> The progress bar during and after the operation.</p>
+<!-- ------------------------------------------------------------------------------------------ -->
+<h2 id="ActivityIndicator">Display a Continuing Activity Indicator</h2>
+<p>
+ To display a continuing (indeterminate) activity indicator, add it to your notification with
+ {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress(0, 0, true)}
+ and issue the notification. The first two arguments are ignored, and the third argument
+ declares that the indicator is indeterminate. The result is an indicator
+ that has the same style as a progress bar, except that its animation is ongoing.
+</p>
+<p>
+ Issue the notification at the beginning of the operation. The animation will run until you
+ modify your notification. When the operation is done, call
+ {@link android.support.v4.app.NotificationCompat.Builder#setProgress
+ setProgress(0, 0, false)} and then update the notification to remove the activity indicator.
+ Always do this; otherwise, the animation will run even when the operation is complete. Also
+ remember to change the notification text to indicate that the operation is complete.
+</p>
+<p>
+ To see how continuing activity indicators work, refer to the preceding snippet. Locate the following lines:
+</p>
+<pre>
+// Sets the progress indicator to a max value, the current completion
+// percentage, and "determinate" state
+mBuilder.setProgress(100, incr, false);
+// Issues the notification
+mNotifyManager.notify(0, mBuilder.build());
+</pre>
+<p>
+ Replace the lines you've found with the following lines. Notice that the third parameter
+ in the {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress()}
+ call is set to {@code true} to indicate that the progress bar is
+ indeterminate:
+</p>
+<pre>
+ // Sets an activity indicator for an operation of indeterminate length
+mBuilder.setProgress(0, 0, true);
+// Issues the notification
+mNotifyManager.notify(0, mBuilder.build());
+</pre>
+<p>
+ The resulting indicator is shown in figure 2:
+</p>
+<img
+ id="figure2"
+ src="{@docRoot}images/ui/notifications/activity_indicator.png"
+ height="99"
+ alt="" />
+<p class="img-caption"><strong>Figure 2.</strong> An ongoing activity indicator.</p>
diff --git a/docs/html/training/notify-user/expanded.jd b/docs/html/training/notify-user/expanded.jd
new file mode 100644
index 0000000..a3cc6ad
--- /dev/null
+++ b/docs/html/training/notify-user/expanded.jd
@@ -0,0 +1,167 @@
+page.title=Using Big View Styles
+Styles parent.title=Notifying the User
+parent.link=index.html
+
+trainingnavtop=true
+next.title=Displaying Progress in a Notification
+next.link=display-progress.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- table of contents -->
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#activity">Set Up the Notification to Launch a New Activity</a></li>
+ <li><a href="#big-view">Construct the Big View</a></li>
+</ol>
+
+<!-- other docs (NOT javadocs) -->
+<h2>You should also read</h2>
+
+<ul>
+ <li>
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
+ </li>
+ <li>
+ <a href="{@docRoot}guide/components/intents-filters.html">
+ Intents and Intent Filters
+ </a>
+ </li>
+ <li>
+ <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+ </li>
+</ul>
+
+
+</div>
+</div>
+
+<p>Notifications in the notification drawer appear in two main visual styles,
+normal view and big view. The big view of a notification only appears when the
+notification is expanded. This happens when the notification is at the top of
+the drawer, or the user clicks the notification. </p>
+
+<p>Big views were introduced in
+Android 4.1, and they're not supported on older devices. This lesson describes
+how to incorporate big view notifications into your app while still providing
+full functionality via the normal view. See the <a
+href="{@docRoot}guide/topics/ui/notifiers/notifications.html#BigNotify">
+Notifications API guide</a> for more discussion of big views.</p>
+
+<p>Here is an example of a normal view: </p>
+
+<img src="{@docRoot}images/training/notifications-normalview.png" width="300" height="58" alt="normal view" />
+
+<p class="img-caption">
+ <strong>Figure 1.</strong> Normal view notification.
+</p>
+
+
+<p>Here is an example of a big view:</p>
+
+<img src="{@docRoot}images/training/notifications-bigview.png" width="300" height="143" alt="big view" />
+<p class="img-caption">
+ <strong>Figure 2.</strong> Big view notification.
+</p>
+
+
+<p> In the sample application shown in this lesson, both the normal view and the
+big view give users access to same functionality:</p>
+
+<ul>
+ <li>The ability to snooze or dismiss the notification.</li>
+ <li>A way to view the reminder text the user set as part of the timer.</li>
+</ul>
+
+<p>The normal view provides these features through a new activity that launches
+when the user clicks the notification. Keep this in mind as you design your notifications—first
+provide the functionality in the normal view, since
+this is how many users will interact with the notification.</p>
+
+<h2 id="activity">Set Up the Notification to Launch a New Activity</h2>
+
+<p>The sample application uses an {@link android.app.IntentService} subclass ({@code PingService})
+to construct and issue the notification.</p>
+
+
+<p>In this snippet, the
+{@link android.app.IntentService} method
+{@link android.app.IntentService#onHandleIntent onHandleIntent()} specifies the new activity
+that will be launched if the user
+clicks the notification itself. The method
+{@link android.support.v4.app.NotificationCompat.Builder#setContentIntent setContentIntent()}
+defines a pending intent that should be fired when the user
+clicks the notification, thereby launching the activity.</p>
+
+<pre>Intent resultIntent = new Intent(this, ResultActivity.class);
+resultIntent.putExtra(CommonConstants.EXTRA_MESSAGE, msg);
+resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
+ Intent.FLAG_ACTIVITY_CLEAR_TASK);
+
+// Because clicking the notification launches a new ("special") activity,
+// there's no need to create an artificial back stack.
+PendingIntent resultPendingIntent =
+ PendingIntent.getActivity(
+ this,
+ 0,
+ resultIntent,
+ PendingIntent.FLAG_UPDATE_CURRENT
+);
+
+// This sets the pending intent that should be fired when the user clicks the
+// notification. Clicking the notification launches a new activity.
+builder.setContentIntent(resultPendingIntent);
+</pre>
+
+<h2 id="big-view">Construct the Big View</h2>
+
+<p>This snippet shows how to set up the buttons that will appear in the big view:</p>
+
+<pre>
+// Sets up the Snooze and Dismiss action buttons that will appear in the
+// big view of the notification.
+Intent dismissIntent = new Intent(this, PingService.class);
+dismissIntent.setAction(CommonConstants.ACTION_DISMISS);
+PendingIntent piDismiss = PendingIntent.getService(this, 0, dismissIntent, 0);
+
+Intent snoozeIntent = new Intent(this, PingService.class);
+snoozeIntent.setAction(CommonConstants.ACTION_SNOOZE);
+PendingIntent piSnooze = PendingIntent.getService(this, 0, snoozeIntent, 0);
+</pre>
+
+<p>This snippet shows how to construct the
+{@link android.support.v4.app.NotificationCompat.Builder Builder} object.
+It sets the style for the big
+view to be "big text," and sets its content to be the reminder message. It uses
+{@link android.support.v4.app.NotificationCompat.Builder#addAction addAction()}
+to add the <strong>Snooze</strong> and <strong>Dismiss</strong> buttons (and
+their associated pending intents) that will appear in the notification's
+big view:</p>
+
+<pre>// Constructs the Builder object.
+NotificationCompat.Builder builder =
+ new NotificationCompat.Builder(this)
+ .setSmallIcon(R.drawable.ic_stat_notification)
+ .setContentTitle(getString(R.string.notification))
+ .setContentText(getString(R.string.ping))
+ .setDefaults(Notification.DEFAULT_ALL) // requires VIBRATE permission
+ /*
+ * Sets the big view "big text" style and supplies the
+ * text (the user's reminder message) that will be displayed
+ * in the detail area of the expanded notification.
+ * These calls are ignored by the support library for
+ * pre-4.1 devices.
+ */
+ .setStyle(new NotificationCompat.BigTextStyle()
+ .bigText(msg))
+ .addAction (R.drawable.ic_stat_dismiss,
+ getString(R.string.dismiss), piDismiss)
+ .addAction (R.drawable.ic_stat_snooze,
+ getString(R.string.snooze), piSnooze);
+</pre>
+
+
+
diff --git a/docs/html/training/notify-user/index.jd b/docs/html/training/notify-user/index.jd
new file mode 100644
index 0000000..510f2c4
--- /dev/null
+++ b/docs/html/training/notify-user/index.jd
@@ -0,0 +1,102 @@
+page.title=Notifying the User
+trainingnavtop=true
+startpage=true
+next.title=Build a Notification
+next.link=build-notification.html
+
+
+@jd:body
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
+<h2>Dependencies and prerequisites</h2>
+
+<ul>
+ <li>Android 1.6 (API Level 4) or higher</li>
+</ul>
+<h2>You should also read</h2>
+<ul>
+ <li>
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
+ </li>
+ <li>
+ <a href="{@docRoot}guide/components/intents-filters.html">
+ Intents and Intent Filters
+ </a>
+ </li>
+ <li>
+ <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+ </li>
+</ul>
+
+<h2>Try it out</h2>
+
+<div class="download-box">
+ <a href="{@docRoot}shareables/training/NotifyUser.zip"
+class="button">Download the sample</a>
+ <p class="filename">NotifyUser.zip</p>
+</div>
+
+</div>
+</div>
+
+<p>
+ A notification is a user interface element that you display outside your app's normal UI to indicate
+ that an event has occurred. Users can choose to view the notification while using other apps and respond
+ to it when it's convenient for them.
+
+</p>
+
+<p>
+ The <a href="{@docRoot}design/patterns/notifications.html">Notifications design guide</a> shows
+ you how to design effective notifications and when to use them. This class shows you how to
+ implement the most common notification designs.
+</p>
+<h2>Lessons</h2>
+
+<dl>
+ <dt>
+ <strong><a href="build-notification.html">Building a Notification</a></strong>
+ </dt>
+ <dd>
+ Learn how to create a notification
+ {@link android.support.v4.app.NotificationCompat.Builder Builder}, set the
+ required features, and issue the notification.
+ </dd>
+ <dt>
+ <strong><a href="navigation.html">Preserving Navigation when Starting an Activity</a></strong>
+ </dt>
+ <dd>
+ Learn how to enforce the proper
+ navigation for an {@link android.app.Activity} started from a notification.
+ </dd>
+ <dt>
+ <strong>
+ <a href="managing.html">Updating Notifications</a>
+ </strong>
+ </dt>
+ <dd>
+ Learn how to update and remove notifications.
+ </dd>
+ <dt>
+ <strong>
+ <a href="expanded.html">Using Big View Styles</a>
+ </strong>
+ </dt>
+ <dd>
+ Learn how to create a big view within an expanded notification, while still maintaining
+ backward compatibility.
+ </dd>
+
+ <dt>
+ <strong>
+ <a href="display-progress.html">Displaying Progress in a Notification</a>
+ </strong>
+ </dt>
+ <dd>
+ Learn how to display the progress of an operation in a notification, both for
+ operations where you can estimate how much has been completed (determinate progress) and
+ operations where you don't know how much has been completed (indefinite progress).
+ </dd>
+</dl>
diff --git a/docs/html/training/notify-user/managing.jd b/docs/html/training/notify-user/managing.jd
new file mode 100644
index 0000000..4782734
--- /dev/null
+++ b/docs/html/training/notify-user/managing.jd
@@ -0,0 +1,107 @@
+page.title=Updating Notifications
+parent.title=Notifying the User
+parent.link=index.html
+
+trainingnavtop=true
+next.title=Creating Expanded Notifications
+next.link=expanded.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- table of contents -->
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#Updating">Modify a Notification</a></li>
+ <li><a href="#Removing">Remove Notifications</a></li>
+</ol>
+
+<!-- other docs (NOT javadocs) -->
+<h2>You should also read</h2>
+
+<ul>
+ <li>
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
+ </li>
+ <li>
+ <a href="{@docRoot}guide/components/intents-filters.html">
+ Intents and Intent Filters
+ </a>
+ </li>
+ <li>
+ <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+ </li>
+</ul>
+
+
+</div>
+</div>
+<p>
+ When you need to issue a notification multiple times for the same type of event, you
+ should avoid making a completely new notification. Instead, you should consider updating a
+ previous notification, either by changing some of its values or by adding to it, or both.
+</p>
+
+<p>
+ The following section describes how to update notifications and also how to remove them.
+</p>
+<h2 id="Updating">Modify a Notification</h2>
+<p>
+ To set up a notification so it can be updated, issue it with a notification ID by
+ calling {@link android.app.NotificationManager#notify(int, Notification)
+ NotificationManager.notify(ID, notification)}. To update this notification once you've issued
+ it, update or create a {@link android.support.v4.app.NotificationCompat.Builder} object,
+ build a {@link android.app.Notification} object from it, and issue the
+ {@link android.app.Notification} with the same ID you used previously.
+</p>
+<p>
+ The following snippet demonstrates a notification that is updated to reflect the
+ number of events that have occurred. It stacks the notification, showing a summary:
+</p>
+<pre>
+mNotificationManager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+// Sets an ID for the notification, so it can be updated
+int notifyID = 1;
+mNotifyBuilder = new NotificationCompat.Builder(this)
+ .setContentTitle("New Message")
+ .setContentText("You've received new messages.")
+ .setSmallIcon(R.drawable.ic_notify_status)
+numMessages = 0;
+// Start of a loop that processes data and then notifies the user
+...
+ mNotifyBuilder.setContentText(currentText)
+ .setNumber(++numMessages);
+ // Because the ID remains unchanged, the existing notification is
+ // updated.
+ mNotificationManager.notify(
+ notifyID,
+ mNotifyBuilder.build());
+...
+</pre>
+
+<!-- ------------------------------------------------------------------------------------------ -->
+<h2 id="Removing">Remove Notifications</h2>
+<p>
+ Notifications remain visible until one of the following happens:
+</p>
+<ul>
+ <li>
+ The user dismisses the notification either individually or by using "Clear All" (if
+ the notification can be cleared).
+ </li>
+ <li>
+ The user touches the notification, and you called
+ {@link android.support.v4.app.NotificationCompat.Builder#setAutoCancel setAutoCancel()} when
+ you created the notification.
+ </li>
+ <li>
+ You call {@link android.app.NotificationManager#cancel(int) cancel()} for a specific
+ notification ID. This method also deletes ongoing notifications.
+ </li>
+ <li>
+ You call {@link android.app.NotificationManager#cancelAll() cancelAll()}, which removes
+ all of the notifications you previously issued.
+ </li>
diff --git a/docs/html/training/notify-user/navigation.jd b/docs/html/training/notify-user/navigation.jd
new file mode 100644
index 0000000..ac4689a
--- /dev/null
+++ b/docs/html/training/notify-user/navigation.jd
@@ -0,0 +1,228 @@
+page.title=Preserving Navigation when Starting an Activity
+parent.title=Notifying the User
+parent.link=index.html
+
+trainingnavtop=true
+next.title=Updating Notifications
+next.link=managing.html
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- table of contents -->
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#DirectEntry">Set up a regular activity PendingIntent</a></li>
+ <li><a href="#ExtendedNotification">Set up a special activity PendingIntent</a></li>
+</ol>
+
+<!-- other docs (NOT javadocs) -->
+<h2>You should also read</h2>
+
+<ul>
+ <li>
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a> API Guide
+ </li>
+ <li>
+ <a href="{@docRoot}guide/components/intents-filters.html">
+ Intents and Intent Filters
+ </a>
+ </li>
+ <li>
+ <a href="{@docRoot}design/patterns/notifications.html">Notifications</a> Design Guide
+ </li>
+</ul>
+
+
+</div>
+</div>
+<p>
+ Part of designing a notification is preserving the user's expected navigation experience.
+ For a detailed discussion of this topic, see the
+ <a href="{@docRoot}guide/topics/ui/notifiers/notifications.html#NotificationResponse">Notifications</a>
+ API guide.
+ There are two general situations:
+</p>
+<dl>
+ <dt>
+ Regular activity
+ </dt>
+ <dd>
+ You're starting an {@link android.app.Activity} that's part of the application's normal
+ workflow.
+ </dd>
+ <dt>
+ Special activity
+ </dt>
+ <dd>
+ The user only sees this {@link android.app.Activity} if it's started from a notification.
+ In a sense, the {@link android.app.Activity} extends the notification by providing
+ information that would be hard to display in the notification itself.
+ </dd>
+</dl>
+<!-- ------------------------------------------------------------------------------------------ -->
+<h2 id="DirectEntry">Set Up a Regular Activity PendingIntent</h2>
+<p>
+ To set up a {@link android.app.PendingIntent} that starts a direct entry
+ {@link android.app.Activity}, follow these steps:
+</p>
+<ol>
+ <li>
+ Define your application's {@link android.app.Activity} hierarchy in the manifest. The final XML should look like this:
+ </p>
+<pre>
+<activity
+ android:name=".MainActivity"
+ android:label="@string/app_name" >
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+</activity>
+<activity
+ android:name=".ResultActivity"
+ android:parentActivityName=".MainActivity">
+ <meta-data
+ android:name="android.support.PARENT_ACTIVITY"
+ android:value=".MainActivity"/>
+</activity>
+</pre>
+ </li>
+ <li>
+ Create a back stack based on the {@link android.content.Intent} that starts the
+ {@link android.app.Activity}. For example:
+</p>
+<pre>
+...
+Intent resultIntent = new Intent(this, ResultActivity.class);
+TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
+// Adds the back stack
+stackBuilder.addParentStack(ResultActivity.class);
+// Adds the Intent to the top of the stack
+stackBuilder.addNextIntent(resultIntent);
+// Gets a PendingIntent containing the entire back stack
+PendingIntent resultPendingIntent =
+ stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
+...
+NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+builder.setContentIntent(resultPendingIntent);
+NotificationManager mNotificationManager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+mNotificationManager.notify(id, builder.build());
+</pre>
+<!-- ------------------------------------------------------------------------------------------ -->
+<h2 id="ExtendedNotification">Set Up a Special Activity PendingIntent</h2>
+
+<p>
+ A special {@link android.app.Activity} doesn't need a back stack, so you don't have to
+ define its {@link android.app.Activity} hierarchy in the manifest, and you don't have
+ to call
+ {@link android.support.v4.app.TaskStackBuilder#addParentStack addParentStack()} to build a
+ back stack. Instead, use the manifest to set up the {@link android.app.Activity} task options,
+ and create the {@link android.app.PendingIntent} by calling
+ {@link android.app.PendingIntent#getActivity getActivity()}:
+</p>
+<ol>
+ <li>
+ In your manifest, add the following attributes to the
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>
+ element for the {@link android.app.Activity}:
+ <dl>
+ <dt>
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#nm">android:name</a>="<i>activityclass</i>"</code>
+ </dt>
+ <dd>
+ The activity's fully-qualified class name.
+ </dd>
+ <dt>
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">android:taskAffinity</a>=""</code>
+ </dt>
+ <dd>
+ Combined with the
+ {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_NEW_TASK} flag
+ that you set in code, this ensures that this {@link android.app.Activity} doesn't
+ go into the application's default task. Any existing tasks that have the
+ application's default affinity are not affected.
+ </dd>
+ <dt>
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#exclude">android:excludeFromRecents</a>="true"</code>
+ </dt>
+ <dd>
+ Excludes the new task from <i>Recents</i>, so that the user can't accidentally
+ navigate back to it.
+ </dd>
+ </dl>
+ <p>
+ This snippet shows the element:
+ </p>
+<pre>
+<activity
+ android:name=".ResultActivity"
+...
+ android:launchMode="singleTask"
+ android:taskAffinity=""
+ android:excludeFromRecents="true">
+</activity>
+...
+</pre>
+ </li>
+ <li>
+ Build and issue the notification:
+ <ol style="list-style-type: lower-alpha;">
+ <li>
+ Create an {@link android.content.Intent} that starts the
+ {@link android.app.Activity}.
+ </li>
+ <li>
+ Set the {@link android.app.Activity} to start in a new, empty task by calling
+ {@link android.content.Intent#setFlags setFlags()} with the flags
+ {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_NEW_TASK}
+ and
+ {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TASK FLAG_ACTIVITY_CLEAR_TASK}.
+ </li>
+ <li>
+ Set any other options you need for the {@link android.content.Intent}.
+ </li>
+ <li>
+ Create a {@link android.app.PendingIntent} from the {@link android.content.Intent}
+ by calling {@link android.app.PendingIntent#getActivity getActivity()}.
+ You can then use this {@link android.app.PendingIntent} as the argument to
+ {@link android.support.v4.app.NotificationCompat.Builder#setContentIntent
+ setContentIntent()}.
+ </li>
+ </ol>
+ <p>
+ The following code snippet demonstrates the process:
+ </p>
+<pre>
+// Instantiate a Builder object.
+NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
+// Creates an Intent for the Activity
+Intent notifyIntent =
+ new Intent(new ComponentName(this, ResultActivity.class));
+// Sets the Activity to start in a new, empty task
+notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
+ Intent.FLAG_ACTIVITY_CLEAR_TASK);
+// Creates the PendingIntent
+PendingIntent notifyIntent =
+ PendingIntent.getActivity(
+ this,
+ 0,
+ notifyIntent,
+ PendingIntent.FLAG_UPDATE_CURRENT
+);
+
+// Puts the PendingIntent into the notification builder
+builder.setContentIntent(notifyIntent);
+// Notifications are issued by sending them to the
+// NotificationManager system service.
+NotificationManager mNotificationManager =
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+// Builds an anonymous Notification object from the builder, and
+// passes it to the NotificationManager
+mNotificationManager.notify(id, builder.build());
+</pre>
+ </li>
+</ol>
diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs
index 1c85ae8..88ecaec 100644
--- a/docs/html/training/training_toc.cs
+++ b/docs/html/training/training_toc.cs
@@ -4,741 +4,999 @@
<li class="nav-section">
<div class="nav-section-header">
<a href="<?cs var:toroot ?>training/index.html">
- <span class="en">Get Started</span>
+ Getting Started
</a>
</div>
<ul>
<li class="nav-section">
<div class="nav-section-header">
- <a href="<?cs var:toroot ?>training/basics/firstapp/index.html">
- <span class="en">Building Your First App</span>
- </a>
+ <a href="<?cs var:toroot ?>training/basics/firstapp/index.html"
+ description=
+ "After you've installed the Android SDK, start with this class
+ to learn the basics about Android app development."
+ >Building Your First App</a>
</div>
<ul>
<li><a href="<?cs var:toroot ?>training/basics/firstapp/creating-project.html">
- <span class="en">Creating an Android Project</span>
+ Creating an Android Project
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/firstapp/running-app.html">
- <span class="en">Running Your Application</span>
+ Running Your Application
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/firstapp/building-ui.html">
- <span class="en">Building a Simple User Interface</span>
+ Building a Simple User Interface
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/firstapp/starting-activity.html">
- <span class="en">Starting Another Activity</span>
+ Starting Another Activity
</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html">
- <span class="en">Managing the Activity Lifecycle</span>
- </a></div>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/basics/activity-lifecycle/index.html"
+ description=
+ "How Android activities live and die and how to create
+ a seamless user experience by implementing lifecycle callback methods."
+ >Managing the Activity Lifecycle</a>
+ </div>
<ul>
<li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/starting.html">
- <span class="en">Starting an Activity</span>
+ Starting an Activity
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/pausing.html">
- <span class="en">Pausing and Resuming an Activity</span>
+ Pausing and Resuming an Activity
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/stopping.html">
- <span class="en">Stopping and Restarting an Activity</span>
+ Stopping and Restarting an Activity
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/activity-lifecycle/recreating.html">
- <span class="en">Recreating an Activity</span>
+ Recreating an Activity
</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html">
- <span class="en">Supporting Different Devices</span>
- </a></div>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/basics/supporting-devices/index.html"
+ description=
+ "How to build your app with alternative resources that provide an
+ optimized user experience on multiple device form factors using a single APK."
+ >Supporting Different Devices</a>
+ </div>
<ul>
<li><a href="<?cs var:toroot ?>training/basics/supporting-devices/languages.html">
- <span class="en">Supporting Different Languages</span>
+ Supporting Different Languages
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/supporting-devices/screens.html">
- <span class="en">Supporting Different Screens</span>
+ Supporting Different Screens
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/supporting-devices/platforms.html">
- <span class="en">Supporting Different Platform Versions</span>
+ Supporting Different Platform Versions
</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/basics/fragments/index.html">
- <span class="en">Building a Dynamic UI with Fragments</span>
- </a></div>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/basics/fragments/index.html"
+ description=
+ "How to build a user interface for your app that is flexible enough
+ to present multiple UI components on large screens and a more constrained set of
+ UI components on smaller screens—essential for building a single APK for both
+ phones and tablets."
+ >Building a Dynamic UI with Fragments</a>
+ </div>
<ul>
<li><a href="<?cs var:toroot ?>training/basics/fragments/support-lib.html">
- <span class="en">Using the Support Library</span>
+ Using the Support Library
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/fragments/creating.html">
- <span class="en">Creating a Fragment</span>
+ Creating a Fragment
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/fragments/fragment-ui.html">
- <span class="en">Building a Flexible UI</span>
+ Building a Flexible UI
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/fragments/communicating.html">
- <span class="en">Communicating with Other Fragments</span>
+ Communicating with Other Fragments
</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html">
- <span class="en">Saving Data</span>
- </a></div>
+ <div class="nav-section-header"><a href="<?cs var:toroot?>training/basics/data-storage/index.html"
+ description=
+ "How to save data on the device, whether it's temporary files, downloaded
+ app assets, user media, structured data, or something else."
+ >Saving Data</a>
+ </div>
<ul>
<li><a href="<?cs var:toroot ?>training/basics/data-storage/shared-preferences.html">
- <span class="en">Saving Key-Value Sets</span>
+ Saving Key-Value Sets
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/data-storage/files.html">
- <span class="en">Saving Files</span>
+ Saving Files
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/data-storage/databases.html">
- <span class="en">Saving Data in SQL Databases</span>
+ Saving Data in SQL Databases
</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/basics/intents/index.html">
- <span class="en">Interacting with Other Apps</span>
- </a></div>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/basics/intents/index.html"
+ description=
+ "How to build a user experience that leverages other apps available
+ on the device to perform advanced user tasks, such as capture a photo or view
+ an address on a map."
+ >Interacting with Other Apps</a>
+ </div>
<ul>
<li><a href="<?cs var:toroot ?>training/basics/intents/sending.html">
- <span class="en">Sending the User to Another App</span>
+ Sending the User to Another App
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/intents/result.html">
- <span class="en">Getting a Result from the Activity</span>
+ Getting a Result from the Activity
</a>
</li>
<li><a href="<?cs var:toroot ?>training/basics/intents/filters.html">
- <span class="en">Allowing Other Apps to Start Your Activity</span>
+ Allowing Other Apps to Start Your Activity
</a>
</li>
</ul>
</li>
-
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/sharing/index.html"
+ description=
+ "How to take your app interaction to the next level by sharing
+ information with other apps, receive information back, and provide a simple and
+ scalable way to perform Share actions with user content."
+ >Sharing Content</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/sharing/send.html">
+ Sending Content to Other Apps
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/sharing/receive.html">
+ Receiving Content from Other Apps
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/sharing/shareaction.html">
+ Adding an Easy Share Action
+ </a>
+ </li>
+ </ul>
+ </li>
</ul>
- </li><!-- end basic training -->
+ </li><!-- end getting started -->
+
+
<li class="nav-section">
<div class="nav-section-header">
- <a href="<?cs var:toroot ?>training/advanced.html">
- <span class="en">Advanced Training</span>
+ <a href="<?cs var:toroot ?>training/building-multimedia.html">
+ <span class="small">Building Apps with</span><br/>Multimedia
+ </a>
+ </div>
+ <ul>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/managing-audio/index.html"
+ description=
+ "How to respond to hardware audio key presses, request audio focus
+ when playing audio, and respond appropriately to changes in audio focus."
+ >Managing Audio Playback</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html">
+ Controlling Your App's Volume and Playback
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html">
+ Managing Audio Focus
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html">
+ Dealing with Audio Output Hardware
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/camera/index.html"
+ description=
+ "How to leverage existing camera apps on the user's device to capture
+ photos or control the camera hardware directly and build your own camera app."
+ >Capturing Photos</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/camera/photobasics.html">
+ Taking Photos Simply
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/camera/videobasics.html">
+ Recording Videos Simply
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html">
+ Controlling the Camera
+ </a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <!-- End multimedia -->
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/building-graphics.html">
+ <span class="small">Building Apps with</span><br/>Graphics & Animation
+ </a>
+ </div>
+ <ul>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html"
+ description=
+ "How to load and process bitmaps while keeping your user interface
+ responsive and avoid exceeding memory limits."
+ >Displaying Bitmaps Efficiently</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html">
+ Loading Large Bitmaps Efficiently
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html">
+ Processing Bitmaps Off the UI Thread
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html">
+ Caching Bitmaps
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html">
+ Displaying Bitmaps in Your UI
+ </a></li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot?>training/graphics/opengl/index.html"
+ description=
+ "How to create OpenGL graphics within the Android app framework
+ and respond to touch input."
+ >Displaying Graphics with OpenGL ES</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html">
+ Building an OpenGL ES Environment
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html">
+ Defining Shapes
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html">
+ Drawing Shapes
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html">
+ Applying Projection and Camera Views
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html">
+ Adding Motion
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html">
+ Responding to Touch Events
+ </a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html"
+ description=
+ "How to add transitional animations to your user interface.">
+ Adding Animations
+ </a></div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/animation/crossfade.html">
+ Crossfading Two Views
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html">
+ Using ViewPager for Screen Slide
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/animation/cardflip.html">
+ Displaying Card Flip Animations
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/animation/zoom.html">
+ Zooming a View
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/animation/layout.html">
+ Animating Layout Changes
+ </a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <!-- End graphics and animation -->
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/building-connectivity.html">
+ <span class="small">Building Apps with</span><br/>
+ Connectivity & the Cloud
+ </a>
+ </div>
+ <ul>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html"
+ description=
+ "How to find and connect to local devices using Network Service
+ Discovery and Wi-Fi Direct in order to create peer-to-peer connections."
+ >Connecting Devices Wirelessly</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html">
+ Using Network Service Discovery
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html">
+ Connecting with Wi-Fi Direct
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html">
+ Using Wi-Fi Direct for Service Discovery
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/basics/network-ops/index.html"
+ description=
+ "How to create a network connection, monitor the connection for changes
+ in connectivity, and perform transactions with XML data."
+ >Performing Network Operations</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html">
+ Connecting to the Network
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html">
+ Managing Network Usage
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html">
+ Parsing XML Data
+ </a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/efficient-downloads/index.html"
+ description=
+ "How to minimize your app's impact on the battery when performing downloads
+ and other network transactions."
+ >Transferring Data Without Draining the Battery</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html">
+ Optimizing Downloads for Efficient Network Access
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html">
+ Minimizing the Effect of Regular Updates
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html">
+ Redundant Downloads are Redundant
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html">
+ Modifying Patterns Based on the Connectivity Type
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/cloudsync/index.html"
+ description=
+ "How to sync and back up app and user data to remote web services in the
+ cloud and how to restore the data back to multiple devices."
+ >Syncing to the Cloud</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html">
+ Using the Backup API
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html">
+ Making the Most of Google Cloud Messaging
+ </a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <!-- End connectivity and cloud -->
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/building-userinfo.html">
+ <span class="small">Building Apps with</span><br/>
+ User Info & Location
+ </a>
+ </div>
+ <ul>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/id-auth/index.html"
+ description=
+ "How to remember the user by account, authenticate the user, acquire user permission
+ for the user's online data, and create custom accounts on the device."
+ >Remembering Users</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/id-auth/identify.html">
+ Remembering Your User
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/id-auth/authenticate.html">
+ Authenticating to OAuth2 Services
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/id-auth/custom_auth.html">
+ Creating a Custom Account Type
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/basics/location/index.html"
+ description=
+ "How to add location-aware features to your app by aqcuiring the user's current
+ location."
+ >Making Your App Location Aware</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/basics/location/locationmanager.html">
+ Using the Location Manager
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/basics/location/currentlocation.html">
+ Obtaining the Current Location
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/basics/location/geocoding.html">
+ Displaying a Location Address
+ </a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <!-- End privacy and location -->
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/best-ux.html">
+ <span class="small">Best Practices for</span><br/>
+ User Experience & UI
</a>
</div>
<ul>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/basics/location/index.html">
- <span class="en">Making Your App Location Aware</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/basics/location/locationmanager.html">
- <span class="en">Using the Location Manager</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/basics/location/currentlocation.html">
- <span class="en">Obtaining the Current Location</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/basics/location/geocoding.html">
- <span class="en">Displaying a Location Address</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/basics/network-ops/index.html">
- <span class="en">Performing Network Operations</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/basics/network-ops/connecting.html">
- <span class="en">Connecting to the Network</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/basics/network-ops/managing.html">
- <span class="en">Managing Network Usage</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/basics/network-ops/xml.html">
- <span class="en">Parsing XML Data</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/efficient-downloads/index.html">
- <span class="en">Transferring Data Without Draining the Battery</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/efficient-downloads/efficient-network-access.html">
- <span class="en">Optimizing Downloads for Efficient Network Access</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/efficient-downloads/regular_updates.html">
- <span class="en">Minimizing the Effect of Regular Updates</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/efficient-downloads/redundant_redundant.html">
- <span class="en">Redundant Downloads are Redundant</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/efficient-downloads/connectivity_patterns.html">
- <span class="en">Modifying Patterns Based on the Connectivity Type</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/cloudsync/index.html">
- <span class="en">Syncing to the Cloud</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/cloudsync/backupapi.html">
- <span class="en">Using the Backup API</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/cloudsync/gcm.html">
- <span class="en">Making the Most of Google Cloud Messaging</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/multiscreen/index.html"
- zh-CN-lang="针对多种屏幕进行设计"
- ja-lang="複数画面のデザイン"
- es-lang="Cómo diseñar aplicaciones para varias pantallas"
- >Designing for Multiple Screens</a>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/design-navigation/index.html"
+ description=
+ "How to plan your app's screen hierarchy and forms of navigation so users can
+ effectively and intuitively traverse your app content using various navigation
+ patterns."
+ >Designing Effective Navigation</a>
</div>
<ul>
- <li><a href="<?cs var:toroot ?>training/multiscreen/screensizes.html"
+ <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html">
+ Planning Screens and Their Relationships
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html">
+ Planning for Multiple Touchscreen Sizes
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html">
+ Providing Descendant and Lateral Navigation
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html">
+ Providing Ancestral and Temporal Navigation
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html">
+ Putting it All Together: Wireframing the Example App
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/implementing-navigation/index.html"
+ description=
+ "How to implement various navigation patterns such as swipe views and up navigation."
+ >Implementing Effective Navigation</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html">
+ Implementing Lateral Navigation
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html">
+ Implementing Ancestral Navigation
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html">
+ Implementing Temporal Navigation
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html">
+ Implementing Descendant Navigation
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/notify-user/index.html"
+ description=
+ "How to display messages called notifications outside of
+ your application's UI."
+ >Notifying the User</a>
+ </div>
+ <ul>
+ <li>
+ <a href="<?cs var:toroot ?>training/notify-user/build-notification.html">
+ Building a Notification
+ </a>
+ </li>
+ <li>
+ <a href="<?cs var:toroot ?>training/notify-user/navigation.html">
+ Preserving Navigation when Starting an Activity
+ </a>
+ </li>
+ <li>
+ <a href="<?cs var:toroot ?>training/notify-user/managing.html">
+ Updating Notifications
+ </a>
+ </li>
+ <li>
+ <a href="<?cs var:toroot ?>training/notify-user/expanded.html">
+ Using Big View Styles
+ </a>
+ </li>
+ <li>
+ <a href="<?cs var:toroot ?>training/notify-user/display-progress.html">
+ Displaying Progress in a Notification
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/search/index.html"
+ description=
+ "How to properly add a search interface to your app and create a searchable database."
+ >Adding Search Functionality</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/search/setup.html">
+ Setting up the Search Interface
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/search/search.html">
+ Storing and Searching for Data
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/search/backward-compat.html">
+ Remaining Backward Compatible
+ </a>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="/training/multiscreen/index.html"
+ zh-CN-lang="针对多种屏幕进行设计"
+ ja-lang="複数画面のデザイン"
+ es-lang="Cómo diseñar aplicaciones para varias pantallas"
+ description=
+ "How to build a user interface that's flexible enough to
+ fit perfectly on any screen and how to create different interaction
+ patterns that are optimized for different screen sizes."
+ >Designing for Multiple Screens</a>
+ </div>
+ <ul>
+ <li><a href="/training/multiscreen/screensizes.html"
zh-CN-lang="支持各种屏幕尺寸"
ko-lang="다양한 화면 크기 지원"
ja-lang="さまざまな画面サイズのサポート"
- es-lang="Cómo admitir varios tamaños de pantalla"
- >Designing for Multiple Screens</a>
+ es-lang="Cómo admitir varios tamaños de pantalla"
+ >Supporting Different Screen Sizes</a>
</li>
- <li><a href="<?cs var:toroot ?>training/multiscreen/screendensities.html"
+ <li><a href="/training/multiscreen/screendensities.html"
zh-CN-lang="支持各种屏幕密度"
ja-lang="さまざまな画面密度のサポート"
- es-lang="Cómo admitir varias densidades de pantalla"
+ es-lang="Cómo admitir varias densidades de pantalla"
>Supporting Different Screen Densities</a>
</li>
- <li><a href="<?cs var:toroot ?>training/multiscreen/adaptui.html"
+ <li><a href="/training/multiscreen/adaptui.html"
zh-CN-lang="实施自适应用户界面流程"
ja-lang="順応性のある UI フローの実装"
- es-lang="Cómo implementar interfaces de usuario adaptables"
+ es-lang="Cómo implementar interfaces de usuario adaptables"
>Implementing Adaptive UI Flows</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/improving-layouts/index.html">
- <span class="en">Improving Layout Performance</span>
- </a></div>
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html"
+ description=
+ "How to optimize your app's user interface and user input for
+ the "ten foot experience" of a TV screen."
+ >Designing for TV</a>
+ </div>
<ul>
- <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html">
- <span class="en">Optimizing Layout Hierarchies</span>
+ <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html">
+ Optimizing Layouts for TV
</a>
</li>
- <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html">
- <span class="en">Re-using Layouts with <include/></span>
+ <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html">
+ Optimizing Navigation for TV
</a>
</li>
- <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html">
- <span class="en">Loading Views On Demand</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html">
- <span class="en">Making ListView Scrolling Smooth</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/animation/index.html">
- <span class="en">Adding Animations</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/animation/crossfade.html">
- <span class="en">Crossfading Two Views</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/animation/screen-slide.html">
- <span class="en">Using ViewPager for Screen Slide</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/animation/cardflip.html">
- <span class="en">Displaying Card Flip Animations</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/animation/zoom.html">
- <span class="en">Zooming a View</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/animation/layout.html">
- <span class="en">Animating Layout Changes</span>
+ <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html">
+ Handling Features Not Supported on TV
</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/managing-audio/index.html">
- <span class="en">Managing Audio Playback</span>
- </a></div>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/custom-views/index.html"
+ description=
+ "How to build custom UI widgets that are interactive and smooth."
+ >Creating Custom Views</a>
+ </div>
<ul>
- <li><a href="<?cs var:toroot ?>training/managing-audio/volume-playback.html">
- <span class="en">Controlling Your App?s Volume and Playback</span>
+ <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html">
+ Creating a Custom View Class
</a>
</li>
- <li><a href="<?cs var:toroot ?>training/managing-audio/audio-focus.html">
- <span class="en">Managing Audio Focus</span>
+ <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html">
+ Implementing Custom Drawing
</a>
</li>
- <li><a href="<?cs var:toroot ?>training/managing-audio/audio-output.html">
- <span class="en">Dealing with Audio Output Hardware</span>
+ <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html">
+ Making the View Interactive
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html">
+ Optimizing the View
</a>
</li>
</ul>
</li>
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/monitoring-device-state/index.html"
- zh-CN-lang="优化电池使用时间"
- ja-lang="電池消費量の最適化"
- es-lang="Cómo optimizar la duración de la batería"
- >Optimizing Battery Life</a>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html"
+ description=
+ "How to use UI components and other APIs from the more recent versions of Android
+ while remaining compatible with older versions of the platform."
+ >Creating Backward-Compatible UIs</a>
</div>
<ul>
- <li><a href="<?cs var:toroot ?>training/monitoring-device-state/battery-monitoring.html"
+ <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html">
+ Abstracting the New APIs
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html">
+ Proxying to the New APIs
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html">
+ Creating an Implementation with Older APIs
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html">
+ Using the Version-Aware Component
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/accessibility/index.html"
+ description=
+ "How to make your app accessible to users with vision
+ impairment or other physical disabilities."
+ >Implementing Accessibility</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html">
+ Developing Accessible Applications
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/accessibility/service.html">
+ Developing Accessibility Services
+ </a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+ </li>
+ <!-- End best UX and UI -->
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/best-performance.html">
+ <span class="small">Best Practices for</span><br/>
+ Performance
+ </a>
+ </div>
+ <ul>
+
+ <li>
+ <a href="<?cs var:toroot ?>training/articles/perf-tips.html"
+ description=
+ "How to optimize your app's performance in various ways to improve its
+ responsiveness and battery efficiency."
+ >Performance Tips</a>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/improving-layouts/index.html"
+ description=
+ "How to identify problems in your app's layout performance and improve the UI
+ responsiveness."
+ >Improving Layout Performance</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/improving-layouts/optimizing-layout.html">
+ Optimizing Layout Hierarchies
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/improving-layouts/reusing-layouts.html">
+ Re-using Layouts with <include/>
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/improving-layouts/loading-ondemand.html">
+ Loading Views On Demand
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/improving-layouts/smooth-scrolling.html">
+ Making ListView Scrolling Smooth
+ </a>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="/training/monitoring-device-state/index.html"
+ zh-CN-lang="优化电池使用时间"
+ ja-lang="電池消費量の最適化"
+ es-lang="Cómo optimizar la duración de la batería"
+ description=
+ "How to minimize the amount of power your app requires by adapting to current
+ power conditions and performing power-hungry tasks at proper intervals."
+ >Optimizing Battery Life</a>
+ </div>
+ <ul>
+ <li><a href="/training/monitoring-device-state/battery-monitoring.html"
zh-CN-lang="监控电池电量和充电状态"
ja-lang="電池残量と充電状態の監視"
- es-lang="Cómo controlar el nivel de batería y el estado de carga"
+ es-lang="Cómo controlar el nivel de batería y el estado de carga"
>Monitoring the Battery Level and Charging State</a>
</li>
- <li><a href="<?cs var:toroot ?>training/monitoring-device-state/docking-monitoring.html"
+ <li><a href="/training/monitoring-device-state/docking-monitoring.html"
zh-CN-lang="确定和监控基座对接状态和类型"
ja-lang="ホルダーの装着状態とタイプの特定と監視"
- es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión"
+ es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión"
>Determining and Monitoring the Docking State and Type</a>
</li>
- <li><a href="<?cs var:toroot ?>training/monitoring-device-state/connectivity-monitoring.html"
+ <li><a href="/training/monitoring-device-state/connectivity-monitoring.html"
zh-CN-lang="确定和监控网络连接状态"
ja-lang="接続状態の特定と監視"
- es-lang="Cómo determinar y controlar el estado de la conectividad"
+ es-lang="Cómo determinar y controlar el estado de la conectividad"
>Determining and Monitoring the Connectivity Status</a>
</li>
- <li><a href="<?cs var:toroot ?>training/monitoring-device-state/manifest-receivers.html"
+ <li><a href="/training/monitoring-device-state/manifest-receivers.html"
zh-CN-lang="根据需要操作广播接收器"
ja-lang="オンデマンドでのブロードキャスト レシーバ操作"
- es-lang="Cómo manipular los receptores de emisión bajo demanda"
+ es-lang="Cómo manipular los receptores de emisión bajo demanda"
>Manipulating Broadcast Receivers On Demand</a>
</li>
</ul>
</li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/custom-views/index.html">
- <span class="en">Creating Custom Views</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/custom-views/create-view.html">
- <span class="en">Creating a Custom View Class</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/custom-views/custom-drawing.html">
- <span class="en">Implementing Custom Drawing</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/custom-views/making-interactive.html">
- <span class="en">Making the View Interactive</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/custom-views/optimizing-view.html">
- <span class="en">Optimizing the View</span>
- </a>
- </li>
- </ul>
+
+ <li>
+ <a href="<?cs var:toroot ?>training/articles/perf-anr.html"
+ description=
+ "How to keep your app responsive to user interaction so the UI does not lock-up and
+ display an "Application Not Responding" dialog."
+ >Keeping Your App Responsive</a>
</li>
+
+ <li>
+ <a href="<?cs var:toroot ?>training/articles/perf-jni.html"
+ description=
+ "How to efficiently use the Java Native Interface with the Android NDK."
+ >JNI Tips</a>
+ </li>
+ </ul>
+ </li> <!-- end of Performance -->
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/best-security.html">
+ <span class="small">Best Practices for</span><br/>
+ Security & Privacy
+ </a>
+ </div>
+ <ul>
+
+ <li>
+ <a href="<?cs var:toroot ?>training/articles/security-tips.html"
+ description=
+ "How to perform various tasks and keep your app's data and your user's data secure."
+ >Security Tips</a>
+ </li>
+
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/search/index.html">
- <span class="en">Adding Search Functionality</span>
- </a>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/enterprise/index.html"
+ description=
+ "How to implement device management policies for enterprise-oriented apps."
+ >Developing for Enterprise</a>
</div>
<ul>
- <li><a href="<?cs var:toroot ?>training/search/setup.html">
- <span class="en">Setting up the Search Interface</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/search/search.html">
- <span class="en">Storing and Searching for Data</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/search/backward-compat.html">
- <span class="en">Remaining Backward Compatible</span>
+ <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html">
+ Enhancing Security with Device Management Policies
</a>
</li>
</ul>
</li>
+ </ul>
+ </li>
+ <!-- End security and user info -->
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/id-auth/index.html">
- <span class="en">Remembering Users</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/id-auth/identify.html">
- <span class="en">Remembering Your User</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/id-auth/authenticate.html">
- <span class="en">Authenticating to OAuth2 Services</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/id-auth/custom_auth.html">
- <span class="en">Creating a Custom Account Type</span>
- </a>
- </li>
- </ul>
- </li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/distribute.html">
+ <span class="small">Using Google Play to</span><br/>
+ Distribute & Monetize
+ </a>
+ </div>
+ <ul>
+
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/sharing/index.html">
- <span class="en">Sharing Content</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/sharing/send.html">
- <span class="en">Sending Content to Other Apps</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/sharing/receive.html">
- <span class="en">Receiving Content from Other Apps</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/sharing/shareaction.html">
- <span class="en">Adding an Easy Share Action</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/camera/index.html">
- <span class="en">Capturing Photos</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/camera/photobasics.html">
- <span class="en">Taking Photos Simply</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/camera/videobasics.html">
- <span class="en">Recording Videos Simply</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/camera/cameradirect.html">
- <span class="en">Controlling the Camera</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/multiple-apks/index.html">
- <span class="en">Maintaining Multiple APKs</span>
- </a></div>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/multiple-apks/index.html"
+ description=
+ "How to publish your app on Google Play with separate APKs that target
+ different devices, while using a single app listing."
+ >Maintaining Multiple APKs</a>
+ </div>
<ul>
<li><a href="<?cs var:toroot ?>training/multiple-apks/api.html">
- <span class="en">Creating Multiple APKs for Different API Levels</span>
+ Creating Multiple APKs for Different API Levels
</a>
</li>
<li><a href="<?cs var:toroot ?>training/multiple-apks/screensize.html">
- <span class="en">Creating Multiple APKs for Different Screen Sizes</span>
+ Creating Multiple APKs for Different Screen Sizes
</a>
</li>
<li><a href="<?cs var:toroot ?>training/multiple-apks/texture.html">
- <span class="en">Creating Multiple APKs for Different GL Textures</span>
+ Creating Multiple APKs for Different GL Textures
</a>
</li>
<li><a href="<?cs var:toroot ?>training/multiple-apks/multiple.html">
- <span class="en">Creating Multiple APKs with 2+ Dimensions</span>
+ Creating Multiple APKs with 2+ Dimensions
</a>
</li>
</ul>
</li>
-
+
+
<li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/backward-compatible-ui/index.html">
- <span class="en">Creating Backward-Compatible UIs</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/abstracting.html">
- <span class="en">Abstracting the New APIs</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/new-implementation.html">
- <span class="en">Proxying to the New APIs</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/older-implementation.html">
- <span class="en">Creating an Implementation with Older APIs</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/backward-compatible-ui/using-component.html">
- <span class="en">Using the Version-Aware Component</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/enterprise/index.html">
- <span class="en">Developing for Enterprise</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/enterprise/device-management-policy.html">
- <span class="en">Enhancing Security with Device Management Policies</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/monetization/index.html">
- <span class="en">Monetizing Your App</span>
- </a></div>
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/monetization/index.html"
+ description=
+ "How to implement monetization strategies for your app without compromising
+ the user experience."
+ >Monetizing Your App</a>
+ </div>
<ul>
<li><a href="<?cs var:toroot ?>training/monetization/ads-and-ux.html">
- <span class="en">Advertising without Compromising User Experience</span>
+ Advertising without Compromising User Experience
</a>
</li>
</ul>
</li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/design-navigation/index.html">
- <span class="en">Designing Effective Navigation</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/design-navigation/screen-planning.html">
- <span class="en">Planning Screens and Their Relationships</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/design-navigation/multiple-sizes.html">
- <span class="en">Planning for Multiple Touchscreen Sizes</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/design-navigation/descendant-lateral.html">
- <span class="en">Providing Descendant and Lateral Navigation</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/design-navigation/ancestral-temporal.html">
- <span class="en">Providing Ancestral and Temporal Navigation</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/design-navigation/wireframing.html">
- <span class="en">Putting it All Together: Wireframing the Example App</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/implementing-navigation/index.html">
- <span class="en">Implementing Effective Navigation</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/implementing-navigation/lateral.html">
- <span class="en">Implementing Lateral Navigation</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/implementing-navigation/ancestral.html">
- <span class="en">Implementing Ancestral Navigation</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/implementing-navigation/temporal.html">
- <span class="en">Implementing Temporal Navigation</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/implementing-navigation/descendant.html">
- <span class="en">Implementing Descendant Navigation</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/tv/index.html">
- <span class="en">Designing for TV</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/tv/optimizing-layouts-tv.html">
- <span class="en">Optimizing Layouts for TV</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/tv/optimizing-navigation-tv.html">
- <span class="en">Optimizing Navigation for TV</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/tv/unsupported-features-tv.html">
- <span class="en">Handling Features Not Supported on TV</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/displaying-bitmaps/index.html">
- <span class="en">Displaying Bitmaps Efficiently</span>
- </a>
- </div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/load-bitmap.html">
- <span class="en">Loading Large Bitmaps Efficiently</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/process-bitmap.html">
- <span class="en">Processing Bitmaps Off the UI Thread</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/cache-bitmap.html">
- <span class="en">Caching Bitmaps</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/displaying-bitmaps/display-bitmap.html">
- <span class="en">Displaying Bitmaps in Your UI</span>
- </a></li>
- </ul>
- </li>
-
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/accessibility/index.html">
- <span class="en">Implementing Accessibility</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/accessibility/accessible-app.html">
- <span class="en">Developing Accessible Applications</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/accessibility/service.html">
- <span class="en">Developing Accessibility Services</span>
- </a>
- </li>
- </ul>
- </li>
-
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot
-?>training/graphics/opengl/index.html">
- <span class="en">Displaying Graphics with OpenGL ES</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/graphics/opengl/environment.html">
- <span class="en">Building an OpenGL ES Environment</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/graphics/opengl/shapes.html">
- <span class="en">Defining Shapes</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/graphics/opengl/draw.html">
- <span class="en">Drawing Shapes</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/graphics/opengl/projection.html">
- <span class="en">Applying Projection and Camera Views</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/graphics/opengl/motion.html">
- <span class="en">Adding Motion</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/graphics/opengl/touch.html">
- <span class="en">Responding to Touch Events</span>
- </a>
- </li>
- </ul>
- </li>
-
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/index.html">
- <span class="en">Connecting Devices Wirelessly</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd.html">
- <span class="en">Using Network Service Discovery</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/wifi-direct.html">
- <span class="en">Connecting with Wi-Fi Direct</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/connect-devices-wirelessly/nsd-wifi-direct.html">
- <span class="en">Using Wi-Fi Direct for Service Discovery</span>
- </a>
- </li>
- </ul>
- </li>
-
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>training/load-data-background/index.html">
- <span class="en">Loading Data in the Background</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>training/load-data-background/setup-loader.html">
- <span class="en">Setting Up the Loader</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/load-data-background/define-launch-query.html">
- <span class="en">Defining and Launching the Query</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>training/load-data-background/handle-results.html">
- <span class="en">Handling the Results</span>
- </a>
- </li>
- </ul>
- </li>
-
</ul>
</li>
+ <!-- End best Publishing -->
+
</ul><!-- nav -->
<script type="text/javascript">
diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java
index b4f1e84d..f6b5ffc 100644
--- a/graphics/java/android/graphics/Path.java
+++ b/graphics/java/android/graphics/Path.java
@@ -59,6 +59,10 @@
int valNative = 0;
if (src != null) {
valNative = src.mNativePath;
+ isSimplePath = src.isSimplePath;
+ if (src.rects != null) {
+ rects = new Region(src.rects);
+ }
}
mNativePath = init2(valNative);
mDetectSimplePaths = HardwareRenderer.isAvailable();
@@ -544,6 +548,7 @@
int dstNative = 0;
if (dst != null) {
dstNative = dst.mNativePath;
+ dst.isSimplePath = false;
}
native_offset(mNativePath, dx, dy, dstNative);
}
@@ -555,6 +560,7 @@
* @param dy The amount in the Y direction to offset the entire path
*/
public void offset(float dx, float dy) {
+ isSimplePath = false;
native_offset(mNativePath, dx, dy);
}
@@ -580,6 +586,7 @@
public void transform(Matrix matrix, Path dst) {
int dstNative = 0;
if (dst != null) {
+ dst.isSimplePath = false;
dstNative = dst.mNativePath;
}
native_transform(mNativePath, matrix.native_instance, dstNative);
@@ -591,6 +598,7 @@
* @param matrix The matrix to apply to the path
*/
public void transform(Matrix matrix) {
+ isSimplePath = false;
native_transform(mNativePath, matrix.native_instance);
}
diff --git a/graphics/java/android/graphics/Point.java b/graphics/java/android/graphics/Point.java
index 338e880a..e0d8ccc 100644
--- a/graphics/java/android/graphics/Point.java
+++ b/graphics/java/android/graphics/Point.java
@@ -70,20 +70,29 @@
return this.x == x && this.y == y;
}
- @Override public boolean equals(Object o) {
- if (o instanceof Point) {
- Point p = (Point) o;
- return this.x == p.x && this.y == p.y;
- }
- return false;
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Point point = (Point) o;
+
+ if (x != point.x) return false;
+ if (y != point.y) return false;
+
+ return true;
}
- @Override public int hashCode() {
- return x * 32713 + y;
+ @Override
+ public int hashCode() {
+ int result = x;
+ result = 31 * result + y;
+ return result;
}
- @Override public String toString() {
- return "Point(" + x + ", " + y+ ")";
+ @Override
+ public String toString() {
+ return "Point(" + x + ", " + y + ")";
}
/**
diff --git a/graphics/java/android/graphics/PointF.java b/graphics/java/android/graphics/PointF.java
index e00271f..ee38dbb 100644
--- a/graphics/java/android/graphics/PointF.java
+++ b/graphics/java/android/graphics/PointF.java
@@ -73,6 +73,31 @@
return this.x == x && this.y == y;
}
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ PointF pointF = (PointF) o;
+
+ if (Float.compare(pointF.x, x) != 0) return false;
+ if (Float.compare(pointF.y, y) != 0) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = (x != +0.0f ? Float.floatToIntBits(x) : 0);
+ result = 31 * result + (y != +0.0f ? Float.floatToIntBits(y) : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "PointF(" + x + ", " + y + ")";
+ }
+
/**
* Return the euclidian distance from (0,0) to the point
*/
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java
index 41b272d..8280d2d 100644
--- a/graphics/java/android/graphics/drawable/DrawableContainer.java
+++ b/graphics/java/android/graphics/drawable/DrawableContainer.java
@@ -491,6 +491,8 @@
mComputedConstantSize = orig.mComputedConstantSize;
mConstantWidth = orig.mConstantWidth;
mConstantHeight = orig.mConstantHeight;
+ mConstantMinimumWidth = orig.mConstantMinimumWidth;
+ mConstantMinimumHeight = orig.mConstantMinimumHeight;
mOpacity = orig.mOpacity;
mHaveStateful = orig.mHaveStateful;
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index 0623a9e..b966bb4 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -479,7 +479,7 @@
mFillPaint.setDither(mDither);
mFillPaint.setColorFilter(mColorFilter);
if (mColorFilter != null && !mGradientState.mHasSolidColor) {
- mFillPaint.setColor(0xff000000);
+ mFillPaint.setColor(mAlpha << 24);
}
if (haveStroke) {
mStrokePaint.setAlpha(currStrokeAlpha);
@@ -743,7 +743,7 @@
mFillPaint.setShader(new LinearGradient(x0, y0, x1, y1,
colors, st.mPositions, Shader.TileMode.CLAMP));
if (!mGradientState.mHasSolidColor) {
- mFillPaint.setColor(0xff000000);
+ mFillPaint.setColor(mAlpha << 24);
}
} else if (st.mGradient == RADIAL_GRADIENT) {
x0 = r.left + (r.right - r.left) * st.mCenterX;
@@ -755,7 +755,7 @@
level * st.mGradientRadius, colors, null,
Shader.TileMode.CLAMP));
if (!mGradientState.mHasSolidColor) {
- mFillPaint.setColor(0xff000000);
+ mFillPaint.setColor(mAlpha << 24);
}
} else if (st.mGradient == SWEEP_GRADIENT) {
x0 = r.left + (r.right - r.left) * st.mCenterX;
@@ -788,7 +788,7 @@
}
mFillPaint.setShader(new SweepGradient(x0, y0, tempColors, tempPositions));
if (!mGradientState.mHasSolidColor) {
- mFillPaint.setColor(0xff000000);
+ mFillPaint.setColor(mAlpha << 24);
}
}
}
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index 0351b71..dd692c6 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -575,10 +575,6 @@
@Override
public Drawable mutate() {
if (!mMutated && super.mutate() == this) {
- if (!mLayerState.canConstantState()) {
- throw new IllegalStateException("One or more children of this LayerDrawable does " +
- "not have constant state; this drawable cannot be mutated.");
- }
mLayerState = new LayerState(mLayerState, this, null);
final ChildDrawable[] array = mLayerState.mChildren;
final int N = mLayerState.mNum;
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 315196e..56abed4 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -436,6 +436,8 @@
private boolean mDockAudioMediaEnabled = true;
+ private int mDockState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
+
///////////////////////////////////////////////////////////////////////////
// Construction
///////////////////////////////////////////////////////////////////////////
@@ -3324,6 +3326,13 @@
mBluetoothA2dpEnabled ?
AudioSystem.FORCE_NONE : AudioSystem.FORCE_NO_BT_A2DP);
}
+
+ synchronized (mSettingsLock) {
+ AudioSystem.setForceUse(AudioSystem.FOR_DOCK,
+ mDockAudioMediaEnabled ?
+ AudioSystem.FORCE_ANALOG_DOCK : AudioSystem.FORCE_NONE);
+ }
+
// indicate the end of reconfiguration phase to audio HAL
AudioSystem.setParameters("restarting=false");
break;
@@ -3751,13 +3760,7 @@
config = AudioSystem.FORCE_BT_CAR_DOCK;
break;
case Intent.EXTRA_DOCK_STATE_LE_DESK:
- synchronized (mSettingsLock) {
- if (mDockAudioMediaEnabled) {
- config = AudioSystem.FORCE_ANALOG_DOCK;
- } else {
- config = AudioSystem.FORCE_NONE;
- }
- }
+ config = AudioSystem.FORCE_ANALOG_DOCK;
break;
case Intent.EXTRA_DOCK_STATE_HE_DESK:
config = AudioSystem.FORCE_DIGITAL_DOCK;
@@ -3766,8 +3769,14 @@
default:
config = AudioSystem.FORCE_NONE;
}
-
- AudioSystem.setForceUse(AudioSystem.FOR_DOCK, config);
+ // Low end docks have a menu to enable or disable audio
+ // (see mDockAudioMediaEnabled)
+ if (!((dockState == Intent.EXTRA_DOCK_STATE_LE_DESK) ||
+ ((dockState == Intent.EXTRA_DOCK_STATE_UNDOCKED) &&
+ (mDockState == Intent.EXTRA_DOCK_STATE_LE_DESK)))) {
+ AudioSystem.setForceUse(AudioSystem.FOR_DOCK, config);
+ }
+ mDockState = dockState;
} else if (action.equals(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED)) {
state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE,
BluetoothProfile.STATE_DISCONNECTED);
@@ -5079,18 +5088,23 @@
// top of the stack for the media button event receivers : simply using the top of the
// stack would make the entry disappear from the RemoteControlDisplay in conditions such as
// notifications playing during music playback.
- // crawl the AudioFocus stack until an entry is found with the following characteristics:
+ // Crawl the AudioFocus stack from the top until an entry is found with the following
+ // characteristics:
// - focus gain on STREAM_MUSIC stream
// - non-transient focus gain on a stream other than music
FocusStackEntry af = null;
- Iterator<FocusStackEntry> stackIterator = mFocusStack.iterator();
- while(stackIterator.hasNext()) {
- FocusStackEntry fse = (FocusStackEntry)stackIterator.next();
- if ((fse.mStreamType == AudioManager.STREAM_MUSIC)
- || (fse.mFocusChangeType == AudioManager.AUDIOFOCUS_GAIN)) {
- af = fse;
- break;
+ try {
+ for (int index = mFocusStack.size()-1; index >= 0; index--) {
+ FocusStackEntry fse = mFocusStack.elementAt(index);
+ if ((fse.mStreamType == AudioManager.STREAM_MUSIC)
+ || (fse.mFocusChangeType == AudioManager.AUDIOFOCUS_GAIN)) {
+ af = fse;
+ break;
+ }
}
+ } catch (ArrayIndexOutOfBoundsException e) {
+ Log.e(TAG, "Wrong index accessing audio focus stack when updating RCD: " + e);
+ af = null;
}
if (af == null) {
clearRemoteControlDisplay_syncAfRcs();
@@ -5111,6 +5125,7 @@
clearRemoteControlDisplay_syncAfRcs();
return;
}
+
// refresh conditions were verified: update the remote controls
// ok to call: synchronized mAudioFocusLock then on mRCStack, mRCStack is not empty
updateRemoteControlDisplay_syncAfRcs(infoChangedFlags);
diff --git a/media/java/android/media/MediaFormat.java b/media/java/android/media/MediaFormat.java
index 4414191..169502b 100644
--- a/media/java/android/media/MediaFormat.java
+++ b/media/java/android/media/MediaFormat.java
@@ -50,7 +50,7 @@
* <tr><th>Name</th><th>Value Type</th><th>Description</th></tr>
* <tr><td>{@link #KEY_CHANNEL_COUNT}</td><td>Integer</td><td></td></tr>
* <tr><td>{@link #KEY_SAMPLE_RATE}</td><td>Integer</td><td></td></tr>
- * <tr><td>{@link #KEY_IS_ADTS}</td><td>Integer</td><td>optional, if content is AAC audio, setting this key to 1 indicates that each audio frame is prefixed by the ADTS header.</td></tr>
+ * <tr><td>{@link #KEY_IS_ADTS}</td><td>Integer</td><td>optional, if <em>decoding</em> AAC audio content, setting this key to 1 indicates that each audio frame is prefixed by the ADTS header.</td></tr>
* <tr><td>{@link #KEY_AAC_PROFILE}</td><td>Integer</td><td><b>encoder-only</b>, optional, if content is AAC audio, specifies the desired profile.</td></tr>
* <tr><td>{@link #KEY_CHANNEL_MASK}</td><td>Integer</td><td>A mask of audio channel assignments</td></tr>
* <tr><td>{@link #KEY_FLAC_COMPRESSION_LEVEL}</td><td>Integer</td><td><b>encoder-only</b>, optional, if content is FLAC audio, specifies the desired compression level.</td></tr>
@@ -140,6 +140,8 @@
* A key mapping to a value of 1 if the content is AAC audio and
* audio frames are prefixed with an ADTS header.
* The associated value is an integer (0 or 1).
+ * This key is only supported when _decoding_ content, it cannot
+ * be used to configure an encoder to emit ADTS output.
*/
public static final String KEY_IS_ADTS = "is-adts";
diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java
index 2a5a16e..8701f36 100644
--- a/media/java/android/media/MediaRouter.java
+++ b/media/java/android/media/MediaRouter.java
@@ -862,7 +862,7 @@
private static WifiDisplay findMatchingDisplay(WifiDisplay d, WifiDisplay[] displays) {
for (int i = 0; i < displays.length; i++) {
final WifiDisplay other = displays[i];
- if (d.getDeviceAddress().equals(other.getDeviceAddress())) {
+ if (d.hasSameAddress(other)) {
return other;
}
}
diff --git a/packages/SystemUI/res/drawable-hdpi/search_light.png b/packages/SystemUI/res/drawable-hdpi/search_light.png
new file mode 100644
index 0000000..c8b5a2e
--- /dev/null
+++ b/packages/SystemUI/res/drawable-hdpi/search_light.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/search_light.png b/packages/SystemUI/res/drawable-mdpi/search_light.png
new file mode 100644
index 0000000..4b5b2a4
--- /dev/null
+++ b/packages/SystemUI/res/drawable-mdpi/search_light.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/search_light.png b/packages/SystemUI/res/drawable-xhdpi/search_light.png
new file mode 100644
index 0000000..3aa890f
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xhdpi/search_light.png
Binary files differ
diff --git a/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml b/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml
index afa4cfc..b1104cc 100644
--- a/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml
+++ b/packages/SystemUI/res/layout-sw600dp/navigation_bar.xml
@@ -141,12 +141,12 @@
/>
</LinearLayout>
- <ImageView
+ <com.android.systemui.statusbar.policy.KeyButtonView
android:layout_width="128dp"
android:id="@+id/search_light"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
- android:src="@drawable/ic_sysbar_lights_out_dot_large"
+ android:src="@drawable/search_light"
android:scaleType="center"
android:visibility="gone"
/>
@@ -282,12 +282,12 @@
/>
</LinearLayout>
- <ImageView
+ <com.android.systemui.statusbar.policy.KeyButtonView
android:layout_width="162dp"
android:id="@+id/search_light"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
- android:src="@drawable/ic_sysbar_lights_out_dot_large"
+ android:src="@drawable/search_light"
android:scaleType="center"
android:visibility="gone"
/>
diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packages/SystemUI/res/layout/navigation_bar.xml
index 133f79d..da52d89 100644
--- a/packages/SystemUI/res/layout/navigation_bar.xml
+++ b/packages/SystemUI/res/layout/navigation_bar.xml
@@ -145,12 +145,12 @@
/>
</LinearLayout>
- <ImageView
+ <com.android.systemui.statusbar.policy.KeyButtonView
android:layout_width="80dp"
android:id="@+id/search_light"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
- android:src="@drawable/ic_sysbar_lights_out_dot_large"
+ android:src="@drawable/search_light"
android:scaleType="center"
android:visibility="gone"
/>
@@ -289,12 +289,12 @@
/>
</LinearLayout>
- <ImageView
+ <com.android.systemui.statusbar.policy.KeyButtonView
android:id="@+id/search_light"
android:layout_height="80dp"
android:layout_width="match_parent"
android:layout_gravity="center_vertical"
- android:src="@drawable/ic_sysbar_lights_out_dot_large"
+ android:src="@drawable/search_light"
android:scaleType="center"
android:visibility="gone"
/>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index abe6082..dae50a3 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -180,7 +180,7 @@
<string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string>
<string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Λειτουργία πτήσης"</string>
<string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Φόρτιση, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
- <string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Χρεώθηκε"</string>
+ <string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Μπαταρία πλήρης"</string>
<string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string>
<string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> συσκευές)"</string>
<string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Απενεργοποιημένο Bluetooth"</string>
diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml
index 7bf9d4c..91214d1 100644
--- a/packages/SystemUI/res/values-sv/strings.xml
+++ b/packages/SystemUI/res/values-sv/strings.xml
@@ -181,7 +181,7 @@
<string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Laddat"</string>
<string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string>
<string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> enheter)"</string>
- <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Inaktivera Bluetooth"</string>
+ <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth inaktivt"</string>
<string name="quick_settings_brightness_label" msgid="6968372297018755815">"Ljusstyrka"</string>
<string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Rotera automatiskt"</string>
<string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Rotationen har låsts"</string>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index fc22203..6b8f319 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -174,7 +174,7 @@
<string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Màn hình hiện bị khóa theo hướng ngang."</string>
<string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Màn hình hiện bị khóa theo hướng dọc."</string>
<string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string>
- <string name="start_dreams" msgid="7219575858348719790">"Mơ màng"</string>
+ <string name="start_dreams" msgid="7219575858348719790">"Chế độ ngủ"</string>
<string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string>
<string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Chế độ trên máy bay"</string>
<string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Đang sạc, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
diff --git a/packages/SystemUI/src/com/android/systemui/SearchPanelView.java b/packages/SystemUI/src/com/android/systemui/SearchPanelView.java
index 4b0e818..daac9ed 100644
--- a/packages/SystemUI/src/com/android/systemui/SearchPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/SearchPanelView.java
@@ -26,11 +26,13 @@
import android.content.Intent;
import android.content.res.Resources;
import android.os.RemoteException;
+import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.Vibrator;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.Slog;
+import android.view.IWindowManager;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -62,6 +64,7 @@
private boolean mShowing;
private View mSearchTargetsContainer;
private GlowPadView mGlowPadView;
+ private IWindowManager mWm;
public SearchPanelView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@@ -70,6 +73,7 @@
public SearchPanelView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mContext = context;
+ mWm = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
}
private void startAssistActivity() {
@@ -77,27 +81,44 @@
// Close Recent Apps if needed
mBar.animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_SEARCH_PANEL);
- // Launch Assist
- Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE))
- .getAssistIntent(mContext, UserHandle.USER_CURRENT);
- if (intent == null) return;
-
- // Dismiss the keyguard if possible. XXX: TODO: invoke bouncer.
+ boolean isKeyguardShowing = false;
try {
- ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
+ isKeyguardShowing = mWm.isKeyguardLocked();
} catch (RemoteException e) {
+
}
- try {
- ActivityOptions opts = ActivityOptions.makeCustomAnimation(mContext,
- R.anim.search_launch_enter, R.anim.search_launch_exit,
- getHandler(), this);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mContext.startActivityAsUser(intent, opts.toBundle(),
- new UserHandle(UserHandle.USER_CURRENT));
- } catch (ActivityNotFoundException e) {
- Slog.w(TAG, "Activity not found for " + intent.getAction());
+ if (isKeyguardShowing) {
+ // Have keyguard show the bouncer and launch the activity if the user succeeds.
+ try {
+ mWm.showAssistant();
+ } catch (RemoteException e) {
+ // too bad, so sad...
+ }
onAnimationStarted();
+ } else {
+ // Otherwise, keyguard isn't showing so launch it from here.
+ Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE))
+ .getAssistIntent(mContext, UserHandle.USER_CURRENT);
+ if (intent == null) return;
+
+ try {
+ ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
+ } catch (RemoteException e) {
+ // too bad, so sad...
+ }
+
+ try {
+ ActivityOptions opts = ActivityOptions.makeCustomAnimation(mContext,
+ R.anim.search_launch_enter, R.anim.search_launch_exit,
+ getHandler(), this);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivityAsUser(intent, opts.toBundle(),
+ new UserHandle(UserHandle.USER_CURRENT));
+ } catch (ActivityNotFoundException e) {
+ Slog.w(TAG, "Activity not found for " + intent.getAction());
+ onAnimationStarted();
+ }
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java b/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java
index 4338fa0..9281c75 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentTasksLoader.java
@@ -138,6 +138,10 @@
return mLoadedTasks;
}
+ public void remove(TaskDescription td) {
+ mLoadedTasks.remove(td);
+ }
+
public boolean isFirstScreenful() {
return mFirstScreenful;
}
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java
index 6cb7dec..3330301 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsHorizontalScrollView.java
@@ -336,19 +336,6 @@
});
}
- @Override
- protected void onVisibilityChanged(View changedView, int visibility) {
- super.onVisibilityChanged(changedView, visibility);
- // scroll to bottom after reloading
- if (visibility == View.VISIBLE && changedView == this) {
- post(new Runnable() {
- public void run() {
- update();
- }
- });
- }
- }
-
public void setAdapter(TaskDescriptionAdapter adapter) {
mAdapter = adapter;
mAdapter.registerDataSetObserver(new DataSetObserver() {
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
index cd3bc42..9a1e38d 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
@@ -77,9 +77,10 @@
private boolean mShowing;
private boolean mWaitingToShow;
- private int mNumItemsWaitingForThumbnailsAndIcons;
private ViewHolder mItemToAnimateInWhenWindowAnimationIsFinished;
+ private boolean mAnimateIconOfFirstTask;
private boolean mWaitingForWindowAnimation;
+ private long mWindowAnimationStartTime;
private RecentTasksLoader mRecentTasksLoader;
private ArrayList<TaskDescription> mRecentTaskDescriptions;
@@ -174,10 +175,9 @@
if (td.isLoaded()) {
updateThumbnail(holder, td.getThumbnail(), true, false);
updateIcon(holder, td.getIcon(), true, false);
- mNumItemsWaitingForThumbnailsAndIcons--;
}
if (index == 0) {
- if (mWaitingForWindowAnimation) {
+ if (mAnimateIconOfFirstTask) {
if (mItemToAnimateInWhenWindowAnimationIsFinished != null) {
holder.iconView.setAlpha(1f);
holder.iconView.setTranslationX(0f);
@@ -206,6 +206,9 @@
holder.iconView.setAlpha(0f);
holder.iconView.setTranslationY(translation);
}
+ if (!mWaitingForWindowAnimation) {
+ animateInIconOfFirstTask();
+ }
}
}
@@ -220,7 +223,9 @@
updateThumbnail(holder, mRecentTasksLoader.getDefaultThumbnail(), false, false);
holder.iconView.setImageBitmap(mRecentTasksLoader.getDefaultIcon());
holder.iconView.setVisibility(INVISIBLE);
+ holder.iconView.animate().cancel();
holder.labelView.setText(null);
+ holder.labelView.animate().cancel();
holder.thumbnailView.setContentDescription(null);
holder.thumbnailView.setTag(null);
holder.thumbnailView.setOnLongClickListener(null);
@@ -235,6 +240,7 @@
holder.calloutLine.setAlpha(1f);
holder.calloutLine.setTranslationX(0f);
holder.calloutLine.setTranslationY(0f);
+ holder.calloutLine.animate().cancel();
}
holder.taskDescription = null;
holder.loadedThumbnailAndIcon = false;
@@ -291,8 +297,9 @@
}
public void show(boolean show, ArrayList<TaskDescription> recentTaskDescriptions,
- boolean firstScreenful, boolean waitingForWindowAnimation) {
- mWaitingForWindowAnimation = waitingForWindowAnimation;
+ boolean firstScreenful, boolean animateIconOfFirstTask) {
+ mAnimateIconOfFirstTask = animateIconOfFirstTask;
+ mWaitingForWindowAnimation = animateIconOfFirstTask;
if (show) {
mWaitingToShow = true;
refreshRecentTasksList(recentTaskDescriptions, firstScreenful);
@@ -527,7 +534,6 @@
updateIcon(h, td.getIcon(), true, animateShow);
updateThumbnail(h, td.getThumbnail(), true, animateShow);
h.loadedThumbnailAndIcon = true;
- mNumItemsWaitingForThumbnailsAndIcons--;
}
}
}
@@ -536,9 +542,14 @@
showIfReady();
}
- public void onWindowAnimationStart() {
- if (mItemToAnimateInWhenWindowAnimationIsFinished != null) {
- final int startDelay = 150;
+ private void animateInIconOfFirstTask() {
+ if (mItemToAnimateInWhenWindowAnimationIsFinished != null &&
+ !mRecentTasksLoader.isFirstScreenful()) {
+ int timeSinceWindowAnimation =
+ (int) (System.currentTimeMillis() - mWindowAnimationStartTime);
+ final int minStartDelay = 150;
+ final int startDelay = Math.max(0, Math.min(
+ minStartDelay - timeSinceWindowAnimation, minStartDelay));
final int duration = 250;
final ViewHolder holder = mItemToAnimateInWhenWindowAnimationIsFinished;
final TimeInterpolator cubic = new DecelerateInterpolator(1.5f);
@@ -550,10 +561,16 @@
}
}
mItemToAnimateInWhenWindowAnimationIsFinished = null;
- mWaitingForWindowAnimation = false;
+ mAnimateIconOfFirstTask = false;
}
}
+ public void onWindowAnimationStart() {
+ mWaitingForWindowAnimation = false;
+ mWindowAnimationStartTime = System.currentTimeMillis();
+ animateInIconOfFirstTask();
+ }
+
public void clearRecentTasksList() {
// Clear memory used by screenshots
if (mRecentTaskDescriptions != null) {
@@ -590,9 +607,6 @@
}
public void onTasksLoaded(ArrayList<TaskDescription> tasks, boolean firstScreenful) {
- mNumItemsWaitingForThumbnailsAndIcons = firstScreenful
- ? tasks.size() : mRecentTaskDescriptions == null
- ? 0 : mRecentTaskDescriptions.size();
if (mRecentTaskDescriptions == null) {
mRecentTaskDescriptions = new ArrayList<TaskDescription>(tasks);
} else {
@@ -689,6 +703,7 @@
}
if (DEBUG) Log.v(TAG, "Jettison " + ad.getLabel());
mRecentTaskDescriptions.remove(ad);
+ mRecentTasksLoader.remove(ad);
// Handled by widget containers to enable LayoutTransitions properly
// mListAdapter.notifyDataSetChanged();
diff --git a/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java b/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
index 47b0113..b3adbaf 100644
--- a/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
+++ b/packages/SystemUI/src/com/android/systemui/recent/RecentsVerticalScrollView.java
@@ -345,19 +345,6 @@
});
}
- @Override
- protected void onVisibilityChanged(View changedView, int visibility) {
- super.onVisibilityChanged(changedView, visibility);
- // scroll to bottom after reloading
- if (visibility == View.VISIBLE && changedView == this) {
- post(new Runnable() {
- public void run() {
- update();
- }
- });
- }
- }
-
public void setAdapter(TaskDescriptionAdapter adapter) {
mAdapter = adapter;
mAdapter.registerDataSetObserver(new DataSetObserver() {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 5ef32e4..7371ce2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -279,7 +279,7 @@
public void onAnimationEnd(Animator animation) {
// double-check to avoid races
if (mStatusBarContents.getAlpha() == 0) {
- Slog.d(TAG, "makeIconsInvisible");
+ if (DEBUG) Slog.d(TAG, "makeIconsInvisible");
mStatusBarContents.setVisibility(View.INVISIBLE);
}
}
@@ -518,7 +518,7 @@
mCarrierLabel = (TextView)mStatusBarWindow.findViewById(R.id.carrier_label);
mShowCarrierInPanel = (mCarrierLabel != null);
- Slog.v(TAG, "carrierlabel=" + mCarrierLabel + " show=" + mShowCarrierInPanel);
+ if (DEBUG) Slog.v(TAG, "carrierlabel=" + mCarrierLabel + " show=" + mShowCarrierInPanel);
if (mShowCarrierInPanel) {
mCarrierLabel.setVisibility(mCarrierLabelVisible ? View.VISIBLE : View.INVISIBLE);
@@ -680,6 +680,7 @@
@Override
public void showSearchPanel() {
super.showSearchPanel();
+ mHandler.removeCallbacks(mShowSearchPanel);
// we want to freeze the sysui state wherever it is
mSearchPanelView.setSystemUiVisibility(mSystemUiVisibility);
@@ -853,7 +854,7 @@
}
public void addNotification(IBinder key, StatusBarNotification notification) {
- /* if (DEBUG) */ Slog.d(TAG, "addNotification score=" + notification.score);
+ if (DEBUG) Slog.d(TAG, "addNotification score=" + notification.score);
StatusBarIconView iconView = addNotificationViews(key, notification);
if (iconView == null) return;
@@ -908,7 +909,7 @@
awakenDreams();
// not immersive & a full-screen alert should be shown
- Slog.d(TAG, "Notification has fullScreenIntent; sending fullScreenIntent");
+ if (DEBUG) Slog.d(TAG, "Notification has fullScreenIntent; sending fullScreenIntent");
try {
notification.notification.fullScreenIntent.send();
} catch (PendingIntent.CanceledException e) {
@@ -2248,7 +2249,7 @@
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
- Slog.v(TAG, "onReceive: " + intent);
+ if (DEBUG) Slog.v(TAG, "onReceive: " + intent);
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
int flags = CommandQueue.FLAG_EXCLUDE_NONE;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
index cc9c601..9b0a320 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -55,6 +55,7 @@
import android.graphics.drawable.LevelListDrawable;
import android.hardware.display.DisplayManager;
import android.hardware.display.WifiDisplayStatus;
+import android.net.wifi.WifiManager;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.RemoteException;
@@ -85,6 +86,8 @@
private static final String TAG = "QuickSettings";
public static final boolean SHOW_IME_TILE = false;
+ public static final boolean LONG_PRESS_TOGGLES = true;
+
private Context mContext;
private PanelBar mBar;
private QuickSettingsModel mModel;
@@ -94,6 +97,8 @@
private WifiDisplayStatus mWifiDisplayStatus;
private PhoneStatusBar mStatusBarService;
private BluetoothState mBluetoothState;
+ private BluetoothAdapter mBluetoothAdapter;
+ private WifiManager mWifiManager;
private BrightnessController mBrightnessController;
private BluetoothController mBluetoothController;
@@ -131,6 +136,9 @@
mModel = new QuickSettingsModel(context);
mWifiDisplayStatus = new WifiDisplayStatus();
mBluetoothState = new QuickSettingsModel.BluetoothState();
+ mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+ mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+
mHandler = new Handler();
Resources r = mContext.getResources();
@@ -297,8 +305,7 @@
(UserManager) mContext.getSystemService(Context.USER_SERVICE);
if (um.getUsers(true).size() > 1) {
try {
- WindowManagerGlobal.getWindowManagerService().lockNow(
- LockPatternUtils.USER_SWITCH_LOCK_OPTIONS);
+ WindowManagerGlobal.getWindowManagerService().lockNow(null);
} catch (RemoteException e) {
Log.e(TAG, "Couldn't show user switcher", e);
}
@@ -391,7 +398,7 @@
private void addSystemTiles(ViewGroup parent, LayoutInflater inflater) {
// Wi-fi
- QuickSettingsTileView wifiTile = (QuickSettingsTileView)
+ final QuickSettingsTileView wifiTile = (QuickSettingsTileView)
inflater.inflate(R.layout.quick_settings_tile, parent, false);
wifiTile.setContent(R.layout.quick_settings_tile_wifi, inflater);
wifiTile.setOnClickListener(new View.OnClickListener() {
@@ -400,6 +407,30 @@
startSettingsActivity(android.provider.Settings.ACTION_WIFI_SETTINGS);
}
});
+ if (LONG_PRESS_TOGGLES) {
+ wifiTile.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ final boolean enable =
+ (mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED);
+ new AsyncTask<Void, Void, Void>() {
+ @Override
+ protected Void doInBackground(Void... args) {
+ // Disable tethering if enabling Wifi
+ final int wifiApState = mWifiManager.getWifiApState();
+ if (enable && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) ||
+ (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) {
+ mWifiManager.setWifiApEnabled(null, false);
+ }
+
+ mWifiManager.setWifiEnabled(enable);
+ return null;
+ }
+ }.execute();
+ wifiTile.setPressed(false);
+ return true;
+ }} );
+ }
mModel.addWifiTile(wifiTile, new QuickSettingsModel.RefreshCallback() {
@Override
public void refreshView(QuickSettingsTileView view, State state) {
@@ -415,7 +446,7 @@
});
parent.addView(wifiTile);
- if (mModel.deviceSupportsTelephony()) {
+ if (mModel.deviceHasMobileData()) {
// RSSI
QuickSettingsTileView rssiTile = (QuickSettingsTileView)
inflater.inflate(R.layout.quick_settings_tile, parent, false);
@@ -538,7 +569,7 @@
// Bluetooth
if (mModel.deviceSupportsBluetooth()) {
- QuickSettingsTileView bluetoothTile = (QuickSettingsTileView)
+ final QuickSettingsTileView bluetoothTile = (QuickSettingsTileView)
inflater.inflate(R.layout.quick_settings_tile, parent, false);
bluetoothTile.setContent(R.layout.quick_settings_tile_bluetooth, inflater);
bluetoothTile.setOnClickListener(new View.OnClickListener() {
@@ -547,6 +578,19 @@
startSettingsActivity(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
}
});
+ if (LONG_PRESS_TOGGLES) {
+ bluetoothTile.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ if (mBluetoothAdapter.isEnabled()) {
+ mBluetoothAdapter.disable();
+ } else {
+ mBluetoothAdapter.enable();
+ }
+ bluetoothTile.setPressed(false);
+ return true;
+ }});
+ }
mModel.addBluetoothTile(bluetoothTile, new QuickSettingsModel.RefreshCallback() {
@Override
public void refreshView(QuickSettingsTileView view, State state) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
index 4513dcb..ec42883 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -29,6 +29,7 @@
import android.database.ContentObserver;
import android.graphics.drawable.Drawable;
import android.hardware.display.WifiDisplayStatus;
+import android.net.ConnectivityManager;
import android.os.Handler;
import android.os.UserHandle;
import android.provider.Settings;
@@ -171,6 +172,8 @@
private final BugreportObserver mBugreportObserver;
private final BrightnessObserver mBrightnessObserver;
+ private final boolean mHasMobileData;
+
private QuickSettingsTileView mUserTile;
private RefreshCallback mUserCallback;
private UserState mUserState = new UserState();
@@ -249,6 +252,10 @@
mBrightnessObserver = new BrightnessObserver(mHandler);
mBrightnessObserver.startObserving();
+ ConnectivityManager cm = (ConnectivityManager)
+ context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ mHasMobileData = cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
+
IntentFilter alarmIntentFilter = new IntentFilter();
alarmIntentFilter.addAction(Intent.ACTION_ALARM_CHANGED);
context.registerReceiver(mAlarmIntentReceiver, alarmIntentFilter);
@@ -403,22 +410,22 @@
mWifiCallback.refreshView(mWifiTile, mWifiState);
}
+ boolean deviceHasMobileData() {
+ return mHasMobileData;
+ }
+
// RSSI
void addRSSITile(QuickSettingsTileView view, RefreshCallback cb) {
mRSSITile = view;
mRSSICallback = cb;
mRSSICallback.refreshView(mRSSITile, mRSSIState);
}
- boolean deviceSupportsTelephony() {
- PackageManager pm = mContext.getPackageManager();
- return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
- }
// NetworkSignalChanged callback
@Override
public void onMobileDataSignalChanged(
boolean enabled, int mobileSignalIconId, String signalContentDescription,
int dataTypeIconId, String dataContentDescription, String enabledDesc) {
- if (deviceSupportsTelephony()) {
+ if (deviceHasMobileData()) {
// TODO: If view is in awaiting state, disable
Resources r = mContext.getResources();
mRSSIState.signalIconId = enabled && (mobileSignalIconId > 0)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
index ffc18c7..8f2a4eb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
@@ -45,8 +45,7 @@
import com.android.internal.R;
/**
- * This widget display an analogic clock with two hands for hours and
- * minutes.
+ * Digital clock for the status bar.
*/
public class Clock extends TextView {
private boolean mAttached;
@@ -84,6 +83,7 @@
filter.addAction(Intent.ACTION_TIME_CHANGED);
filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
+ filter.addAction(Intent.ACTION_USER_SWITCHED);
getContext().registerReceiver(mIntentReceiver, filter, null, getHandler());
}
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index d733369..d9c07f8a 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -3899,14 +3899,18 @@
}
public void dismissKeyguardLw() {
- if (mKeyguardMediator.isDismissable()) {
- if (mKeyguardMediator.isShowing()) {
- mHandler.post(new Runnable() {
- public void run() {
+ if (mKeyguardMediator.isShowing()) {
+ mHandler.post(new Runnable() {
+ public void run() {
+ if (mKeyguardMediator.isDismissable()) {
+ // Can we just finish the keyguard straight away?
mKeyguardMediator.keyguardDone(false, true);
+ } else {
+ // ask the keyguard to prompt the user to authenticate if necessary
+ mKeyguardMediator.dismiss();
}
- });
- }
+ }
+ });
}
}
@@ -4536,6 +4540,11 @@
}
@Override
+ public void showAssistant() {
+ mKeyguardMediator.showAssistant();
+ }
+
+ @Override
public void dump(String prefix, PrintWriter pw, String[] args) {
pw.print(prefix); pw.print("mSafeMode="); pw.print(mSafeMode);
pw.print(" mSystemReady="); pw.print(mSystemReady);
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java b/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java
index dbd9999..762711d 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/CameraWidgetFrame.java
@@ -18,10 +18,9 @@
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Point;
+import android.graphics.Rect;
import android.os.Handler;
import android.os.SystemClock;
import android.util.Log;
@@ -53,17 +52,20 @@
private final Handler mHandler = new Handler();
private final KeyguardActivityLauncher mActivityLauncher;
private final Callbacks mCallbacks;
+ private final CameraWidgetInfo mWidgetInfo;
private final WindowManager mWindowManager;
private final Point mRenderedSize = new Point();
- private final int[] mScreenLocation = new int[2];
+ private final int[] mTmpLoc = new int[2];
+ private final Rect mTmpRect = new Rect();
- private View mWidgetView;
private long mLaunchCameraStart;
private boolean mActive;
private boolean mTransitioning;
- private boolean mRecovering;
private boolean mDown;
+ private FixedSizeFrameLayout mPreview;
+ private View mFullscreenPreview;
+
private final Runnable mTransitionToCameraRunnable = new Runnable() {
@Override
public void run() {
@@ -81,21 +83,18 @@
mActivityLauncher.launchCamera(worker, mSecureCameraActivityStartedRunnable);
}};
+ private final Runnable mPostTransitionToCameraEndAction = new Runnable() {
+ @Override
+ public void run() {
+ mHandler.post(mTransitionToCameraEndAction);
+ }};
+
private final Runnable mRecoverRunnable = new Runnable() {
@Override
public void run() {
recover();
}};
- private final Runnable mRecoverEndAction = new Runnable() {
- @Override
- public void run() {
- if (!mRecovering)
- return;
- mCallbacks.onCameraLaunchedUnsuccessfully();
- reset();
- }};
-
private final Runnable mRenderRunnable = new Runnable() {
@Override
public void run() {
@@ -119,13 +118,43 @@
};
};
+ private static final class FixedSizeFrameLayout extends FrameLayout {
+ int width;
+ int height;
+
+ FixedSizeFrameLayout(Context context) {
+ super(context);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ measureChildren(
+ MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
+ MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
+ setMeasuredDimension(width, height);
+ }
+ }
+
private CameraWidgetFrame(Context context, Callbacks callbacks,
- KeyguardActivityLauncher activityLauncher) {
+ KeyguardActivityLauncher activityLauncher,
+ CameraWidgetInfo widgetInfo, View previewWidget) {
super(context);
mCallbacks = callbacks;
mActivityLauncher = activityLauncher;
+ mWidgetInfo = widgetInfo;
mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
KeyguardUpdateMonitor.getInstance(context).registerCallback(mCallback);
+
+ mPreview = new FixedSizeFrameLayout(context);
+ mPreview.addView(previewWidget);
+ addView(mPreview);
+
+ View clickBlocker = new View(context);
+ clickBlocker.setBackgroundColor(Color.TRANSPARENT);
+ clickBlocker.setOnClickListener(this);
+ addView(clickBlocker);
+
+ setContentDescription(context.getString(R.string.keyguard_accessibility_camera));
if (DEBUG) Log.d(TAG, "new CameraWidgetFrame instance " + instanceId());
}
@@ -137,24 +166,17 @@
CameraWidgetInfo widgetInfo = launcher.getCameraWidgetInfo();
if (widgetInfo == null)
return null;
- View widgetView = widgetInfo.layoutId > 0 ?
- inflateWidgetView(context, widgetInfo) :
- inflateGenericWidgetView(context);
- if (widgetView == null)
+ View previewWidget = getPreviewWidget(context, widgetInfo);
+ if (previewWidget == null)
return null;
- ImageView preview = new ImageView(context);
- preview.setLayoutParams(new FrameLayout.LayoutParams(
- FrameLayout.LayoutParams.MATCH_PARENT,
- FrameLayout.LayoutParams.MATCH_PARENT));
- preview.setScaleType(ScaleType.FIT_CENTER);
- preview.setContentDescription(preview.getContext().getString(
- R.string.keyguard_accessibility_camera));
- CameraWidgetFrame cameraWidgetFrame = new CameraWidgetFrame(context, callbacks, launcher);
- cameraWidgetFrame.addView(preview);
- cameraWidgetFrame.mWidgetView = widgetView;
- preview.setOnClickListener(cameraWidgetFrame);
- return cameraWidgetFrame;
+ return new CameraWidgetFrame(context, callbacks, launcher, widgetInfo, previewWidget);
+ }
+
+ private static View getPreviewWidget(Context context, CameraWidgetInfo widgetInfo) {
+ return widgetInfo.layoutId > 0 ?
+ inflateWidgetView(context, widgetInfo) :
+ inflateGenericWidgetView(context);
}
private static View inflateWidgetView(Context context, CameraWidgetInfo widgetInfo) {
@@ -188,63 +210,45 @@
return iv;
}
- public void render() {
- final Throwable[] thrown = new Throwable[1];
- final Bitmap[] offscreen = new Bitmap[1];
- try {
- final int width = getRootView().getWidth();
- final int height = getRootView().getHeight();
- if (mRenderedSize.x == width && mRenderedSize.y == height) {
- if (DEBUG) Log.d(TAG, String.format("Already rendered at size=%sx%s",
- width, height));
- return;
- }
- if (width == 0 || height == 0) {
- return;
- }
- final long start = SystemClock.uptimeMillis();
- offscreen[0] = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- final Canvas c = new Canvas(offscreen[0]);
- mWidgetView.measure(
- MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
- MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
- mWidgetView.layout(0, 0, width, height);
- mWidgetView.draw(c);
-
- final long end = SystemClock.uptimeMillis();
- if (DEBUG) Log.d(TAG, String.format(
- "Rendered camera widget in %sms size=%sx%s instance=%s at %s",
- end - start,
- width, height,
- instanceId(),
- end));
- mRenderedSize.set(width, height);
- } catch (Throwable t) {
- thrown[0] = t;
+ private void render() {
+ final View root = getRootView();
+ final int width = root.getWidth();
+ final int height = root.getHeight();
+ if (mRenderedSize.x == width && mRenderedSize.y == height) {
+ if (DEBUG) Log.d(TAG, String.format("Already rendered at size=%sx%s", width, height));
+ return;
+ }
+ if (width == 0 || height == 0) {
+ return;
}
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- if (thrown[0] == null) {
- try {
- ((ImageView) getChildAt(0)).setImageBitmap(offscreen[0]);
- } catch (Throwable t) {
- thrown[0] = t;
- }
- }
- if (thrown[0] == null)
- return;
+ mPreview.width = width;
+ mPreview.height = height;
+ mPreview.requestLayout();
- Log.w(TAG, "Error rendering camera widget", thrown[0]);
- try {
- removeAllViews();
- final View genericView = inflateGenericWidgetView(mContext);
- addView(genericView);
- } catch (Throwable t) {
- Log.w(TAG, "Error inflating generic camera widget", t);
- }
- }});
+ final int thisWidth = getWidth() - getPaddingLeft() - getPaddingRight();
+ final int thisHeight = getHeight() - getPaddingTop() - getPaddingBottom();
+
+ final float pvScaleX = (float) thisWidth / width;
+ final float pvScaleY = (float) thisHeight / height;
+ final float pvScale = Math.min(pvScaleX, pvScaleY);
+
+ final int pvWidth = (int) (pvScale * width);
+ final int pvHeight = (int) (pvScale * height);
+
+ final float pvTransX = pvWidth < thisWidth ? (thisWidth - pvWidth) / 2 : 0;
+ final float pvTransY = pvHeight < thisHeight ? (thisHeight - pvHeight) / 2 : 0;
+
+ mPreview.setPivotX(0);
+ mPreview.setPivotY(0);
+ mPreview.setScaleX(pvScale);
+ mPreview.setScaleY(pvScale);
+ mPreview.setTranslationX(pvTransX);
+ mPreview.setTranslationY(pvTransY);
+
+ mRenderedSize.set(width, height);
+ if (DEBUG) Log.d(TAG, String.format("Rendered camera widget size=%sx%s instance=%s",
+ width, height, instanceId()));
}
private void transitionToCamera() {
@@ -252,55 +256,53 @@
mTransitioning = true;
- final View child = getChildAt(0);
- final View root = getRootView();
-
- final int startWidth = child.getWidth();
- final int startHeight = child.getHeight();
-
- final int finishWidth = root.getWidth();
- final int finishHeight = root.getHeight();
-
- final float scaleX = (float) finishWidth / startWidth;
- final float scaleY = (float) finishHeight / startHeight;
- final float scale = Math.round( Math.max(scaleX, scaleY) * 100) / 100f;
-
- final int[] loc = new int[2];
- root.getLocationInWindow(loc);
- final int finishCenter = loc[1] + finishHeight / 2;
-
- child.getLocationInWindow(loc);
- final int startCenter = loc[1] + startHeight / 2;
-
- if (DEBUG) Log.d(TAG, String.format("Transitioning to camera. " +
- "(start=%sx%s, finish=%sx%s, scale=%s,%s, startCenter=%s, finishCenter=%s)",
- startWidth, startHeight,
- finishWidth, finishHeight,
- scaleX, scaleY,
- startCenter, finishCenter));
-
enableWindowExitAnimation(false);
- animate()
- .scaleX(scale)
- .scaleY(scale)
- .translationY(finishCenter - startCenter)
- .setDuration(WIDGET_ANIMATION_DURATION)
- .withEndAction(mTransitionToCameraEndAction)
- .start();
+ mPreview.getLocationInWindow(mTmpLoc);
+ final float pvHeight = mPreview.getHeight() * mPreview.getScaleY();
+ final float pvCenter = mTmpLoc[1] + pvHeight / 2f;
+
+ final ViewGroup root = (ViewGroup) getRootView();
+ if (mFullscreenPreview == null) {
+ mFullscreenPreview = getPreviewWidget(mContext, mWidgetInfo);
+ mFullscreenPreview.setClickable(false);
+ root.addView(mFullscreenPreview);
+ }
+
+ root.getWindowVisibleDisplayFrame(mTmpRect);
+ final float fsHeight = mTmpRect.height();
+ final float fsCenter = mTmpRect.top + fsHeight / 2;
+
+ final float fsScaleY = pvHeight / fsHeight;
+ final float fsTransY = pvCenter - fsCenter;
+ final float fsScaleX = mPreview.getScaleX();
+
+ mPreview.setVisibility(View.GONE);
+ mFullscreenPreview.setVisibility(View.VISIBLE);
+ mFullscreenPreview.setTranslationY(fsTransY);
+ mFullscreenPreview.setScaleX(fsScaleX);
+ mFullscreenPreview.setScaleY(fsScaleY);
+ mFullscreenPreview
+ .animate()
+ .scaleX(1)
+ .scaleY(1)
+ .translationX(0)
+ .translationY(0)
+ .setDuration(WIDGET_ANIMATION_DURATION)
+ .withEndAction(mPostTransitionToCameraEndAction)
+ .start();
mCallbacks.onLaunchingCamera();
}
private void recover() {
if (DEBUG) Log.d(TAG, "recovering at " + SystemClock.uptimeMillis());
- mRecovering = true;
- animate()
- .scaleX(1)
- .scaleY(1)
- .translationY(0)
- .setDuration(WIDGET_ANIMATION_DURATION)
- .withEndAction(mRecoverEndAction)
- .start();
+ mCallbacks.onCameraLaunchedUnsuccessfully();
+ reset();
+ }
+
+ @Override
+ public void setOnLongClickListener(OnLongClickListener l) {
+ // ignore
}
@Override
@@ -340,8 +342,8 @@
return true;
}
- getLocationOnScreen(mScreenLocation);
- int rawBottom = mScreenLocation[1] + getHeight();
+ getLocationOnScreen(mTmpLoc);
+ int rawBottom = mTmpLoc[1] + getHeight();
if (event.getRawY() > rawBottom) {
if (DEBUG) Log.d(TAG, "onUserInteraction eaten: below widget");
return true;
@@ -388,14 +390,14 @@
if (DEBUG) Log.d(TAG, "reset at " + SystemClock.uptimeMillis());
mLaunchCameraStart = 0;
mTransitioning = false;
- mRecovering = false;
mDown = false;
cancelTransitionToCamera();
mHandler.removeCallbacks(mRecoverRunnable);
- animate().cancel();
- setScaleX(1);
- setScaleY(1);
- setTranslationY(0);
+ mPreview.setVisibility(View.VISIBLE);
+ if (mFullscreenPreview != null) {
+ mFullscreenPreview.animate().cancel();
+ mFullscreenPreview.setVisibility(View.GONE);
+ }
enableWindowExitAnimation(true);
}
@@ -403,11 +405,18 @@
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
if (DEBUG) Log.d(TAG, String.format("onSizeChanged new=%sx%s old=%sx%s at %s",
w, h, oldw, oldh, SystemClock.uptimeMillis()));
- final Handler worker = getWorkerHandler();
- (worker != null ? worker : mHandler).post(mRenderRunnable);
+ mHandler.post(mRenderRunnable);
super.onSizeChanged(w, h, oldw, oldh);
}
+ @Override
+ public void onBouncerShowing(boolean showing) {
+ if (showing) {
+ mTransitioning = false;
+ mHandler.post(mRecoverRunnable);
+ }
+ }
+
private void enableWindowExitAnimation(boolean isEnabled) {
View root = getRootView();
ViewGroup.LayoutParams lp = root.getLayoutParams();
@@ -427,15 +436,14 @@
if (DEBUG) Log.d(TAG, "onKeyguardVisibilityChanged " + showing
+ " at " + SystemClock.uptimeMillis());
if (mTransitioning && !showing) {
- mTransitioning = false;
- mRecovering = false;
- mHandler.removeCallbacks(mRecoverRunnable);
- if (mLaunchCameraStart > 0) {
- long launchTime = SystemClock.uptimeMillis() - mLaunchCameraStart;
- if (DEBUG) Log.d(TAG, String.format("Camera took %sms to launch", launchTime));
- mLaunchCameraStart = 0;
- onCameraLaunched();
- }
+ mTransitioning = false;
+ mHandler.removeCallbacks(mRecoverRunnable);
+ if (mLaunchCameraStart > 0) {
+ long launchTime = SystemClock.uptimeMillis() - mLaunchCameraStart;
+ if (DEBUG) Log.d(TAG, String.format("Camera took %sms to launch", launchTime));
+ mLaunchCameraStart = 0;
+ onCameraLaunched();
+ }
}
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/ChallengeLayout.java b/policy/src/com/android/internal/policy/impl/keyguard/ChallengeLayout.java
index 605a738..8ece559 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/ChallengeLayout.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/ChallengeLayout.java
@@ -59,6 +59,11 @@
boolean isBouncing();
/**
+ * Returns the duration of the bounce animation.
+ */
+ int getBouncerAnimationDuration();
+
+ /**
* Set a listener that will respond to changes in bouncer state.
*
* @param listener listener to register
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardActivityLauncher.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardActivityLauncher.java
index dbb3577..4c19caa 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardActivityLauncher.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardActivityLauncher.java
@@ -35,7 +35,7 @@
import android.util.Log;
import android.view.WindowManager;
-import com.android.internal.policy.impl.keyguard.KeyguardSecurityCallback.OnDismissAction;
+import com.android.internal.policy.impl.keyguard.KeyguardHostView.OnDismissAction;
import com.android.internal.widget.LockPatternUtils;
import java.util.List;
@@ -151,9 +151,19 @@
boolean useDefaultAnimations,
final Handler worker,
final Runnable onStarted) {
+
final Context context = getContext();
final Bundle animation = useDefaultAnimations ? null
: ActivityOptions.makeCustomAnimation(context, 0, 0).toBundle();
+ launchActivityWithAnimation(intent, showsWhileLocked, animation, worker, onStarted);
+ }
+
+ public void launchActivityWithAnimation(final Intent intent,
+ boolean showsWhileLocked,
+ final Bundle animation,
+ final Handler worker,
+ final Runnable onStarted) {
+
LockPatternUtils lockPatternUtils = getLockPatternUtils();
intent.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
index 01d8908..11ed5bc 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java
@@ -20,6 +20,7 @@
import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.AlertDialog;
+import android.app.SearchManager;
import android.app.admin.DevicePolicyManager;
import android.appwidget.AppWidgetHost;
import android.appwidget.AppWidgetHostView;
@@ -37,6 +38,7 @@
import android.os.Parcel;
import android.os.Parcelable;
import android.os.SystemClock;
+import android.os.UserHandle;
import android.os.UserManager;
import android.util.AttributeSet;
import android.util.Log;
@@ -50,7 +52,6 @@
import android.widget.RemoteViews.OnClickHandler;
import com.android.internal.R;
-import com.android.internal.policy.impl.keyguard.KeyguardSecurityCallback.OnDismissAction;
import com.android.internal.policy.impl.keyguard.KeyguardSecurityModel.SecurityMode;
import com.android.internal.widget.LockPatternUtils;
@@ -66,6 +67,8 @@
// Found in KeyguardAppWidgetPickActivity.java
static final int APPWIDGET_HOST_ID = 0x4B455947;
+ private final int MAX_WIDGETS = 5;
+
private AppWidgetHost mAppWidgetHost;
private AppWidgetManager mAppWidgetManager;
private KeyguardWidgetPager mAppWidgetContainer;
@@ -77,8 +80,8 @@
private SecurityMode mCurrentSecuritySelection = SecurityMode.Invalid;
private int mAppWidgetToShow;
- private boolean mBootCompleted = false;
private boolean mCheckAppWidgetConsistencyOnBootCompleted = false;
+ private boolean mCleanupAppWidgetsOnBootCompleted = false;
protected OnDismissAction mDismissAction;
@@ -111,6 +114,11 @@
void userActivity();
}
+ /*package*/ interface OnDismissAction {
+ /* returns true if the dismiss should be deferred */
+ boolean onDismiss();
+ }
+
public KeyguardHostView(Context context) {
this(context, null);
}
@@ -120,6 +128,8 @@
mLockPatternUtils = new LockPatternUtils(context);
mAppWidgetHost = new AppWidgetHost(
context, APPWIDGET_HOST_ID, mOnClickHandler, Looper.myLooper());
+ cleanupAppWidgetIds();
+
mAppWidgetManager = AppWidgetManager.getInstance(mContext);
mSecurityModel = new KeyguardSecurityModel(context);
@@ -145,19 +155,57 @@
}
}
+ private void cleanupAppWidgetIds() {
+ // Since this method may delete a widget (which we can't do until boot completed) we
+ // may have to defer it until after boot complete.
+ if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) {
+ mCleanupAppWidgetsOnBootCompleted = true;
+ return;
+ }
+ // Clean up appWidgetIds that are bound to lockscreen, but not actually used
+ // This is only to clean up after another bug: we used to not call
+ // deleteAppWidgetId when a user manually deleted a widget in keyguard. This code
+ // shouldn't have to run more than once per user. AppWidgetProviders rely on callbacks
+ // that are triggered by deleteAppWidgetId, which is why we're doing this
+ int[] appWidgetIdsInKeyguardSettings = mLockPatternUtils.getAppWidgets();
+ int[] appWidgetIdsBoundToHost = mAppWidgetHost.getAppWidgetIds();
+ for (int i = 0; i < appWidgetIdsBoundToHost.length; i++) {
+ int appWidgetId = appWidgetIdsBoundToHost[i];
+ if (!contains(appWidgetIdsInKeyguardSettings, appWidgetId)) {
+ Log.d(TAG, "Found a appWidgetId that's not being used by keyguard, deleting id "
+ + appWidgetId);
+ mAppWidgetHost.deleteAppWidgetId(appWidgetId);
+ }
+ }
+ }
+
+ private static boolean contains(int[] array, int target) {
+ for (int value : array) {
+ if (value == target) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private KeyguardUpdateMonitorCallback mUpdateMonitorCallbacks =
new KeyguardUpdateMonitorCallback() {
@Override
public void onBootCompleted() {
- mBootCompleted = true;
if (mCheckAppWidgetConsistencyOnBootCompleted) {
checkAppWidgetConsistency();
mSwitchPageRunnable.run();
mCheckAppWidgetConsistencyOnBootCompleted = false;
}
+ if (mCleanupAppWidgetsOnBootCompleted) {
+ cleanupAppWidgetIds();
+ mCleanupAppWidgetsOnBootCompleted = false;
+ }
}
};
+ private SlidingChallengeLayout mSlidingChallengeLayout;
+
@Override
public boolean onTouchEvent(MotionEvent ev) {
boolean result = super.onTouchEvent(ev);
@@ -198,17 +246,17 @@
mAppWidgetContainer.setDeleteDropTarget(deleteDropTarget);
mAppWidgetContainer.setMinScale(0.5f);
- SlidingChallengeLayout slider =
- (SlidingChallengeLayout) findViewById(R.id.sliding_layout);
- if (slider != null) {
- slider.setOnChallengeScrolledListener(mViewStateManager);
+ mSlidingChallengeLayout = (SlidingChallengeLayout) findViewById(R.id.sliding_layout);
+ if (mSlidingChallengeLayout != null) {
+ mSlidingChallengeLayout.setOnChallengeScrolledListener(mViewStateManager);
}
mAppWidgetContainer.setViewStateManager(mViewStateManager);
mAppWidgetContainer.setLockPatternUtils(mLockPatternUtils);
- ChallengeLayout challenge = slider != null ? slider :
+ ChallengeLayout challenge = mSlidingChallengeLayout != null ? mSlidingChallengeLayout :
(ChallengeLayout) findViewById(R.id.multi_pane_challenge);
challenge.setOnBouncerStateChangedListener(mViewStateManager);
+ mAppWidgetContainer.setBouncerAnimationDuration(challenge.getBouncerAnimationDuration());
mViewStateManager.setPagedView(mAppWidgetContainer);
mViewStateManager.setChallengeLayout(challenge);
mSecurityViewContainer = (KeyguardSecurityViewFlipper) findViewById(R.id.view_flipper);
@@ -222,6 +270,9 @@
addDefaultWidgets();
addWidgetsFromSettings();
+ if (numWidgets() >= MAX_WIDGETS) {
+ mAppWidgetContainer.setAddWidgetEnabled(false);
+ }
checkAppWidgetConsistency();
mSwitchPageRunnable.run();
// This needs to be called after the pages are all added.
@@ -303,19 +354,52 @@
= new KeyguardWidgetPager.Callbacks() {
@Override
public void userActivity() {
- if (mViewMediatorCallback != null) {
- mViewMediatorCallback.userActivity();
- }
+ KeyguardHostView.this.userActivity();
}
@Override
public void onUserActivityTimeoutChanged() {
- if (mViewMediatorCallback != null) {
- mViewMediatorCallback.onUserActivityTimeoutChanged();
+ KeyguardHostView.this.onUserActivityTimeoutChanged();
+ }
+
+ @Override
+ public void onAddView(View v) {
+ if (numWidgets() >= MAX_WIDGETS) {
+ mAppWidgetContainer.setAddWidgetEnabled(false);
+ }
+ }
+
+ @Override
+ public void onRemoveView(View v, boolean deletePermanently) {
+ if (deletePermanently) {
+ final int appWidgetId = ((KeyguardWidgetFrame) v).getContentAppWidgetId();
+ if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID &&
+ appWidgetId != LockPatternUtils.ID_DEFAULT_STATUS_WIDGET) {
+ mAppWidgetHost.deleteAppWidgetId(appWidgetId);
+ }
+ }
+ }
+
+ @Override
+ public void onRemoveViewAnimationCompleted() {
+ if (numWidgets() < MAX_WIDGETS) {
+ mAppWidgetContainer.setAddWidgetEnabled(true);
}
}
};
+ public void userActivity() {
+ if (mViewMediatorCallback != null) {
+ mViewMediatorCallback.userActivity();
+ }
+ }
+
+ public void onUserActivityTimeoutChanged() {
+ if (mViewMediatorCallback != null) {
+ mViewMediatorCallback.onUserActivityTimeoutChanged();
+ }
+ }
+
@Override
public long getUserActivityTimeout() {
// Currently only considering user activity timeouts needed by widgets.
@@ -734,6 +818,10 @@
mAppWidgetContainer.setVisibility(
isSimOrAccount && fullScreenEnabled ? View.GONE : View.VISIBLE);
+ if (mSlidingChallengeLayout != null) {
+ mSlidingChallengeLayout.setChallengeInteractive(!fullScreenEnabled);
+ }
+
// Emulate Activity life cycle
if (oldView != null) {
oldView.onPause();
@@ -792,6 +880,9 @@
// Once the screen turns off, we no longer consider this to be first boot and we want the
// biometric unlock to start next time keyguard is shown.
KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(true);
+ // We use mAppWidgetToShow to show a particular widget after you add it-- once the screen
+ // turns off we reset that behavior
+ clearAppWidgetToShow();
checkAppWidgetConsistency();
showPrimarySecurityScreen(true);
getSecurityView(mCurrentSecuritySelection).onPause();
@@ -801,6 +892,10 @@
}
}
+ public void clearAppWidgetToShow() {
+ mAppWidgetToShow = AppWidgetManager.INVALID_APPWIDGET_ID;
+ }
+
@Override
public void show() {
if (DEBUG) Log.d(TAG, "show()");
@@ -953,13 +1048,24 @@
}
};
+ private int numWidgets() {
+ final int childCount = mAppWidgetContainer.getChildCount();
+ int widgetCount = 0;
+ for (int i = 0; i < childCount; i++) {
+ if (mAppWidgetContainer.isWidgetPage(i)) {
+ widgetCount++;
+ }
+ }
+ return widgetCount;
+ }
+
private void addDefaultWidgets() {
LayoutInflater inflater = LayoutInflater.from(mContext);
inflater.inflate(R.layout.keyguard_transport_control_view, this, true);
if (!mSafeModeEnabled && !widgetsDisabledByDpm()) {
View addWidget = inflater.inflate(R.layout.keyguard_add_widget, this, false);
- mAppWidgetContainer.addWidget(addWidget);
+ mAppWidgetContainer.addWidget(addWidget, 0);
View addWidgetButton = addWidget.findViewById(R.id.keyguard_add_widget_view);
addWidgetButton.setOnClickListener(new OnClickListener() {
@Override
@@ -1111,7 +1217,7 @@
public void checkAppWidgetConsistency() {
// Since this method may bind a widget (which we can't do until boot completed) we
// may have to defer it until after boot complete.
- if (!mBootCompleted) {
+ if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) {
mCheckAppWidgetConsistencyOnBootCompleted = true;
return;
}
@@ -1178,6 +1284,7 @@
static class SavedState extends BaseSavedState {
int transportState;
+ int appWidgetToShow = AppWidgetManager.INVALID_APPWIDGET_ID;
SavedState(Parcelable superState) {
super(superState);
@@ -1186,12 +1293,14 @@
private SavedState(Parcel in) {
super(in);
this.transportState = in.readInt();
+ this.appWidgetToShow = in.readInt();
}
@Override
public void writeToParcel(Parcel out, int flags) {
super.writeToParcel(out, flags);
out.writeInt(this.transportState);
+ out.writeInt(this.appWidgetToShow);
}
public static final Parcelable.Creator<SavedState> CREATOR
@@ -1212,6 +1321,7 @@
Parcelable superState = super.onSaveInstanceState();
SavedState ss = new SavedState(superState);
ss.transportState = mViewStateManager.getTransportState();
+ ss.appWidgetToShow = mAppWidgetToShow;
return ss;
}
@@ -1225,6 +1335,7 @@
SavedState ss = (SavedState) state;
super.onRestoreInstanceState(ss.getSuperState());
mViewStateManager.setTransportState(ss.transportState);
+ mAppWidgetToShow = ss.appWidgetToShow;
post(mSwitchPageRunnable);
}
@@ -1277,7 +1388,6 @@
for (int i = 0; i < childCount; i++) {
if (mAppWidgetContainer.getWidgetPageAt(i).getContentAppWidgetId()
== mAppWidgetToShow) {
- mAppWidgetToShow = AppWidgetManager.INVALID_APPWIDGET_ID;
return i;
}
}
@@ -1302,42 +1412,72 @@
if (!UserManager.supportsMultipleUsers()) {
return; // device doesn't support multi-user mode
}
+ final UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+ if (um == null) {
+ Throwable t = new Throwable();
+ t.fillInStackTrace();
+ Log.e(TAG, "user service is null.", t);
+ return;
+ }
// if there are multiple users, we need to enable to multi-user switcher
- UserManager mUm = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
- List<UserInfo> users = mUm.getUsers(true);
+ final List<UserInfo> users = um.getUsers(true);
+ if (users == null) {
+ Throwable t = new Throwable();
+ t.fillInStackTrace();
+ Log.e(TAG, "list of users is null.", t);
+ return;
+ }
+
+ final View multiUserView = findViewById(R.id.keyguard_user_selector);
+ if (multiUserView == null) {
+ Throwable t = new Throwable();
+ t.fillInStackTrace();
+ Log.e(TAG, "can't find user_selector in layout.", t);
+ return;
+ }
if (users.size() > 1) {
- KeyguardMultiUserSelectorView multiUser =
- (KeyguardMultiUserSelectorView) findViewById(R.id.keyguard_user_selector);
- multiUser.setVisibility(View.VISIBLE);
- multiUser.addUsers(mUm.getUsers(true));
- UserSwitcherCallback callback = new UserSwitcherCallback() {
- @Override
- public void hideSecurityView(int duration) {
- mSecurityViewContainer.animate().alpha(0).setDuration(duration);
- }
-
- @Override
- public void showSecurityView() {
- mSecurityViewContainer.setAlpha(1.0f);
- }
-
- @Override
- public void showUnlockHint() {
- if (mKeyguardSelectorView != null) {
- mKeyguardSelectorView.showUsabilityHint();
+ if (multiUserView instanceof KeyguardMultiUserSelectorView) {
+ KeyguardMultiUserSelectorView multiUser =
+ (KeyguardMultiUserSelectorView) multiUserView;
+ multiUser.setVisibility(View.VISIBLE);
+ multiUser.addUsers(users);
+ UserSwitcherCallback callback = new UserSwitcherCallback() {
+ @Override
+ public void hideSecurityView(int duration) {
+ mSecurityViewContainer.animate().alpha(0).setDuration(duration);
}
- }
- @Override
- public void userActivity() {
- if (mViewMediatorCallback != null) {
- mViewMediatorCallback.userActivity();
+ @Override
+ public void showSecurityView() {
+ mSecurityViewContainer.setAlpha(1.0f);
}
+
+ @Override
+ public void showUnlockHint() {
+ if (mKeyguardSelectorView != null) {
+ mKeyguardSelectorView.showUsabilityHint();
+ }
+ }
+
+ @Override
+ public void userActivity() {
+ if (mViewMediatorCallback != null) {
+ mViewMediatorCallback.userActivity();
+ }
+ }
+ };
+ multiUser.setCallback(callback);
+ } else {
+ Throwable t = new Throwable();
+ t.fillInStackTrace();
+ if (multiUserView == null) {
+ Log.e(TAG, "could not find the user_selector.", t);
+ } else {
+ Log.e(TAG, "user_selector is the wrong type.", t);
}
- };
- multiUser.setCallback(callback);
+ }
}
}
@@ -1397,4 +1537,20 @@
public void dismiss() {
showNextSecurityScreenOrFinish(false);
}
+
+ public void showAssistant() {
+ final Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE))
+ .getAssistIntent(mContext, UserHandle.USER_CURRENT);
+
+ if (intent == null) return;
+
+ final ActivityOptions opts = ActivityOptions.makeCustomAnimation(mContext,
+ R.anim.keyguard_action_assist_enter, R.anim.keyguard_action_assist_exit,
+ getHandler(), null);
+
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+ mActivityLauncher.launchActivityWithAnimation(
+ intent, false, opts.toBundle(), null, null);
+ }
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java
index 67469d9..e114b78 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardPatternView.java
@@ -129,12 +129,15 @@
mLockPatternView.setTactileFeedbackEnabled(mLockPatternUtils.isTactileFeedbackEnabled());
mForgotPatternButton = (Button) findViewById(R.id.forgot_password_button);
- mForgotPatternButton.setText(R.string.kg_forgot_pattern_button_text);
- mForgotPatternButton.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- mCallback.showBackupSecurity();
- }
- });
+ // note: some configurations don't have an emergency call area
+ if (mForgotPatternButton != null) {
+ mForgotPatternButton.setText(R.string.kg_forgot_pattern_button_text);
+ mForgotPatternButton.setOnClickListener(new OnClickListener() {
+ public void onClick(View v) {
+ mCallback.showBackupSecurity();
+ }
+ });
+ }
setFocusableInTouchMode(true);
@@ -148,6 +151,8 @@
}
private void updateFooter(FooterMode mode) {
+ if (mForgotPatternButton == null) return; // no ECA? no footer
+
switch (mode) {
case Normal:
if (DEBUG) Log.d(TAG, "mode normal");
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityCallback.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityCallback.java
index e1a0a21..7e6c108 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityCallback.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityCallback.java
@@ -15,14 +15,10 @@
*/
package com.android.internal.policy.impl.keyguard;
+import com.android.internal.policy.impl.keyguard.KeyguardHostView.OnDismissAction;
+
public interface KeyguardSecurityCallback {
- /*package*/ interface OnDismissAction {
-
- /* returns true if the dismiss should be deferred */
- boolean onDismiss();
- }
-
/**
* Dismiss the given security screen.
* @param securityVerified true if the user correctly entered credentials for the given screen.
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java
index 072c688..aa31b00 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewFlipper.java
@@ -16,6 +16,9 @@
package com.android.internal.policy.impl.keyguard;
+import com.android.internal.R;
+import com.android.internal.widget.LockPatternUtils;
+
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
@@ -23,14 +26,12 @@
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewDebug;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ViewFlipper;
-import com.android.internal.R;
-import com.android.internal.widget.LockPatternUtils;
-
/**
* Subclass of the current view flipper that allows us to overload dispatchTouchEvent() so
* we can emulate {@link WindowManager.LayoutParams#FLAG_SLIPPERY} within a view hierarchy.
@@ -219,10 +220,10 @@
child.measure(childWidthSpec, childHeightSpec);
- width = Math.max(width, Math.min(child.getMeasuredWidth(), widthSize));
- height = Math.max(height, Math.min(child.getMeasuredHeight(), heightSize));
+ width = Math.max(width, Math.min(child.getMeasuredWidth(), widthSize - wPadding));
+ height = Math.max(height, Math.min(child.getMeasuredHeight(), heightSize - hPadding));
}
- setMeasuredDimension(width, height);
+ setMeasuredDimension(width + wPadding, height + hPadding);
}
private int makeChildMeasureSpec(int maxSize, int childDimen) {
@@ -246,7 +247,10 @@
}
public static class LayoutParams extends FrameLayout.LayoutParams {
+ @ViewDebug.ExportedProperty(category = "layout")
public int maxWidth;
+
+ @ViewDebug.ExportedProperty(category = "layout")
public int maxHeight;
public LayoutParams(ViewGroup.LayoutParams other) {
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java
index 294bc3d1..3d59f8d 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java
@@ -17,6 +17,7 @@
package com.android.internal.policy.impl.keyguard;
import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.graphics.drawable.Drawable;
import android.view.View;
@@ -27,7 +28,7 @@
public class KeyguardSecurityViewHelper {
public static void showBouncer(SecurityMessageDisplay securityMessageDisplay,
- View ecaView, Drawable bouncerFrame, int duration) {
+ final View ecaView, Drawable bouncerFrame, int duration) {
if (securityMessageDisplay != null) {
securityMessageDisplay.showBouncer(duration);
}
@@ -35,9 +36,23 @@
if (duration > 0) {
Animator anim = ObjectAnimator.ofFloat(ecaView, "alpha", 0f);
anim.setDuration(duration);
+ anim.addListener(new AnimatorListenerAdapter() {
+ private boolean mCanceled;
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ // Fail safe and show the emergency button in onAnimationEnd()
+ mCanceled = true;
+ ecaView.setAlpha(1f);
+ }
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ ecaView.setVisibility(mCanceled ? View.VISIBLE : View.INVISIBLE);
+ }
+ });
anim.start();
} else {
ecaView.setAlpha(0f);
+ ecaView.setVisibility(View.INVISIBLE);
}
}
if (bouncerFrame != null) {
@@ -57,6 +72,7 @@
securityMessageDisplay.hideBouncer(duration);
}
if (ecaView != null) {
+ ecaView.setVisibility(View.VISIBLE);
if (duration > 0) {
Animator anim = ObjectAnimator.ofFloat(ecaView, "alpha", 1f);
anim.setDuration(duration);
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java
index 062f1ec..76cbbd5 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java
@@ -21,6 +21,7 @@
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
+import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.AttributeSet;
@@ -45,9 +46,12 @@
private GlowPadView mGlowPadView;
private ObjectAnimator mAnim;
private View mFadeView;
+ private boolean mIsBouncing;
private boolean mCameraDisabled;
private boolean mSearchDisabled;
private LockPatternUtils mLockPatternUtils;
+ private SecurityMessageDisplay mSecurityMessageDisplay;
+ private Drawable mBouncerFrame;
OnTriggerListener mOnTriggerListener = new OnTriggerListener() {
@@ -80,7 +84,9 @@
}
public void onReleased(View v, int handle) {
- doTransition(mFadeView, 1.0f);
+ if (!mIsBouncing) {
+ doTransition(mFadeView, 1.0f);
+ }
}
public void onGrabbed(View v, int handle) {
@@ -143,6 +149,10 @@
mGlowPadView = (GlowPadView) findViewById(R.id.glow_pad_view);
mGlowPadView.setOnTriggerListener(mOnTriggerListener);
updateTargets();
+
+ mSecurityMessageDisplay = new KeyguardMessageArea.Helper(this);
+ View bouncerFrameView = findViewById(R.id.keyguard_selector_view_frame);
+ mBouncerFrame = bouncerFrameView.getBackground();
}
public void setCarrierArea(View carrierArea) {
@@ -264,9 +274,15 @@
@Override
public void showBouncer(int duration) {
+ mIsBouncing = true;
+ KeyguardSecurityViewHelper.
+ showBouncer(mSecurityMessageDisplay, mFadeView, mBouncerFrame, duration);
}
@Override
public void hideBouncer(int duration) {
+ mIsBouncing = false;
+ KeyguardSecurityViewHelper.
+ hideBouncer(mSecurityMessageDisplay, mFadeView, mBouncerFrame, duration);
}
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java
index f2cb522..35b8509 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusView.java
@@ -17,14 +17,52 @@
package com.android.internal.policy.impl.keyguard;
import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
import android.util.AttributeSet;
+import android.util.Slog;
+import android.view.View;
import android.widget.GridLayout;
+import android.widget.TextView;
+import com.android.internal.R;
import com.android.internal.widget.LockPatternUtils;
+import java.util.Date;
+
public class KeyguardStatusView extends GridLayout {
- @SuppressWarnings("unused")
- private KeyguardStatusViewManager mStatusViewManager;
+ private static final boolean DEBUG = KeyguardViewMediator.DEBUG;
+ private static final String TAG = "KeyguardStatusView";
+
+ public static final int LOCK_ICON = 0; // R.drawable.ic_lock_idle_lock;
+ public static final int ALARM_ICON = com.android.internal.R.drawable.ic_lock_idle_alarm;
+ public static final int CHARGING_ICON = 0; //R.drawable.ic_lock_idle_charging;
+ public static final int BATTERY_LOW_ICON = 0; //R.drawable.ic_lock_idle_low_battery;
+
+ private CharSequence mDateFormatString;
+ private LockPatternUtils mLockPatternUtils;
+
+ private TextView mDateView;
+ private TextView mAlarmStatusView;
+ private ClockView mClockView;
+
+ private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
+
+ @Override
+ public void onTimeChanged() {
+ refresh();
+ }
+
+ @Override
+ void onKeyguardVisibilityChanged(boolean showing) {
+ if (showing) {
+ if (DEBUG) Slog.v(TAG, "refresh statusview showing:" + showing);
+ refresh();
+ }
+ };
+ };
public KeyguardStatusView(Context context) {
this(context, null, 0);
@@ -38,19 +76,76 @@
super(context, attrs, defStyle);
}
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ Resources res = getContext().getResources();
+ mDateFormatString =
+ res.getText(com.android.internal.R.string.abbrev_wday_month_day_no_year);
+ mDateView = (TextView) findViewById(R.id.date);
+ mAlarmStatusView = (TextView) findViewById(R.id.alarm_status);
+ mClockView = (ClockView) findViewById(R.id.clock_view);
+ mLockPatternUtils = new LockPatternUtils(getContext());
+
+ // Use custom font in mDateView
+ mDateView.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
+
+ // Required to get Marquee to work.
+ final View marqueeViews[] = { mDateView, mAlarmStatusView };
+ for (int i = 0; i < marqueeViews.length; i++) {
+ View v = marqueeViews[i];
+ if (v == null) {
+ throw new RuntimeException("Can't find widget at index " + i);
+ }
+ v.setSelected(true);
+ }
+ refresh();
+ }
+
+ protected void refresh() {
+ mClockView.updateTime();
+ refreshDate();
+ refreshAlarmStatus(); // might as well
+ }
+
+ void refreshAlarmStatus() {
+ // Update Alarm status
+ String nextAlarm = mLockPatternUtils.getNextAlarm();
+ if (!TextUtils.isEmpty(nextAlarm)) {
+ maybeSetUpperCaseText(mAlarmStatusView, nextAlarm);
+ mAlarmStatusView.setCompoundDrawablesWithIntrinsicBounds(ALARM_ICON, 0, 0, 0);
+ mAlarmStatusView.setVisibility(View.VISIBLE);
+ } else {
+ mAlarmStatusView.setVisibility(View.GONE);
+ }
+ }
+
+ void refreshDate() {
+ maybeSetUpperCaseText(mDateView, DateFormat.format(mDateFormatString, new Date()));
+ }
+
+ @Override
+ protected void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mInfoCallback);
+ }
+
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mInfoCallback);
+ }
+
public int getAppWidgetId() {
return LockPatternUtils.ID_DEFAULT_STATUS_WIDGET;
}
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
-
- // StatusView manages all of the widgets in this view.
- mStatusViewManager = new KeyguardStatusViewManager(this);
- }
-
- KeyguardStatusViewManager getManager() {
- return mStatusViewManager;
+ private void maybeSetUpperCaseText(TextView textView, CharSequence text) {
+ if (KeyguardViewManager.USE_UPPER_CASE
+ && textView.getId() != R.id.owner_info) { // currently only required for date view
+ textView.setText(text != null ? text.toString().toUpperCase() : null);
+ } else {
+ textView.setText(text);
+ }
}
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
deleted file mode 100644
index 3435619..0000000
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * Copyright (C) 2011 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.
- */
-
-package com.android.internal.policy.impl.keyguard;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Typeface;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.UserHandle;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.text.format.DateFormat;
-import android.util.Log;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.internal.R;
-import com.android.internal.telephony.IccCardConstants;
-import com.android.internal.widget.LockPatternUtils;
-
-import java.util.Date;
-
-import libcore.util.MutableInt;
-
-/***
- * Manages a number of views inside of the given layout. See below for a list of widgets.
- */
-class KeyguardStatusViewManager implements SecurityMessageDisplay {
- private static final boolean DEBUG = false;
- private static final String TAG = "KeyguardStatusView";
-
- public static final int LOCK_ICON = 0; // R.drawable.ic_lock_idle_lock;
- public static final int ALARM_ICON = com.android.internal.R.drawable.ic_lock_idle_alarm;
- public static final int CHARGING_ICON = 0; //R.drawable.ic_lock_idle_charging;
- public static final int BATTERY_LOW_ICON = 0; //R.drawable.ic_lock_idle_low_battery;
-
- private CharSequence mDateFormatString;
-
- // Views that this class controls.
- private TextView mDateView;
- private TextView mStatus1View;
- private TextView mOwnerInfoView;
- private TextView mAlarmStatusView;
- private TextView mSecurityMessage;
- private static final int SECURITY_MESSAGE_DURATION = 5000;
- private static final boolean SECURITY_MESSAGE_TIMES_OUT = false;
-
- // Top-level container view for above views
- private View mContainer;
-
- // are we showing battery information?
- private boolean mShowingBatteryInfo = false;
-
- // last known plugged in state
- private boolean mPluggedIn = false;
-
- // Whether to use the last line as a combined line to either display owner info / charging.
- // If false, each item will be given a dedicated space.
- private boolean mShareStatusRegion = false;
-
- // last known battery level
- private int mBatteryLevel = 100;
-
- // last known SIM state
- protected IccCardConstants.State mSimState;
-
- private LockPatternUtils mLockPatternUtils;
- private KeyguardUpdateMonitor mUpdateMonitor;
-
- // Shadowed text values
- private ClockView mClockView;
- protected boolean mBatteryCharged;
- protected boolean mBatteryIsLow;
-
- private Handler mHandler;
- private Runnable mClearSecurityMessageRunnable;
- private CharSequence mSecurityMessageContents = "";
-
- private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
- @Override
- public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) {
- mShowingBatteryInfo = status.isPluggedIn() || status.isBatteryLow();
- mPluggedIn = status.isPluggedIn();
- mBatteryLevel = status.level;
- mBatteryCharged = status.isCharged();
- mBatteryIsLow = status.isBatteryLow();
- updateStatusLines();
- }
-
- @Override
- public void onTimeChanged() {
- refreshDate();
- }
- };
-
- /**
- * @param view the containing view of all widgets
- */
- public KeyguardStatusViewManager(View view) {
- if (DEBUG) Log.v(TAG, "KeyguardStatusViewManager()");
- mContainer = view;
- Resources res = getContext().getResources();
- mDateFormatString =
- res.getText(com.android.internal.R.string.abbrev_wday_month_day_no_year);
- mShareStatusRegion = res.getBoolean(com.android.internal.R.bool.kg_share_status_area);
- mLockPatternUtils = new LockPatternUtils(view.getContext());
- mUpdateMonitor = KeyguardUpdateMonitor.getInstance(view.getContext());
-
- mDateView = (TextView) view.findViewById(R.id.date);
- mStatus1View = (TextView) view.findViewById(R.id.status1);
- mAlarmStatusView = (TextView) view.findViewById(R.id.alarm_status);
- mOwnerInfoView = (TextView) view.findViewById(R.id.owner_info);
- mClockView = (ClockView) view.findViewById(R.id.clock_view);
- mSecurityMessage = (TextView) view.findViewById(R.id.status_security_message);
-
- // This is required to ensure marquee works
- if (mSecurityMessage != null) {
- mSecurityMessage.setSelected(true);
- }
-
- // Use custom font in mDateView
- mDateView.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
-
- // Required to get Marquee to work.
- final View marqueeViews[] = { mDateView, mStatus1View, mOwnerInfoView, mAlarmStatusView };
- for (int i = 0; i < marqueeViews.length; i++) {
- View v = marqueeViews[i];
- if (v == null) {
- throw new RuntimeException("Can't find widget at index " + i);
- }
- v.setSelected(true);
- }
-
- // Registering this callback immediately updates the battery state, among other things.
- mUpdateMonitor.registerCallback(mInfoCallback);
-
- refreshDate();
- resetStatusInfo();
-
- mHandler = new Handler(Looper.myLooper());
- mClearSecurityMessageRunnable = new Runnable() {
- @Override
- public void run() {
- mSecurityMessageContents = "";
- updateStatusLines();
- }
- };
- }
-
- public void onPause() {
- if (DEBUG) Log.v(TAG, "onPause()");
- mUpdateMonitor.removeCallback(mInfoCallback);
- }
-
- /** {@inheritDoc} */
- public void onResume(int reason) {
- if (DEBUG) Log.v(TAG, "onResume()");
-
- // Force-update the time when we show this view.
- mClockView.updateTime();
-
- mUpdateMonitor.registerCallback(mInfoCallback);
- resetStatusInfo();
- }
-
- void resetStatusInfo() {
- updateStatusLines();
- }
-
- public void setMessage(CharSequence msg, boolean important) {
- if (!important) {
- mSecurityMessageContents = "";
- } else {
- mSecurityMessageContents = msg;
- }
- securityMessageChanged();
- }
-
- public void setMessage(int resId, boolean important) {
- if (resId != 0 && important) {
- mSecurityMessageContents = getContext().getResources().getText(resId);
- } else {
- mSecurityMessageContents = "";
- }
- securityMessageChanged();
- }
-
- public void setMessage(int resId, boolean important, Object... formatArgs) {
- if (resId != 0 && important) {
- mSecurityMessageContents = getContext().getString(resId, formatArgs);
- } else {
- mSecurityMessageContents = "";
- }
- securityMessageChanged();
- }
-
- public void securityMessageChanged() {
- updateStatusLines();
- if (SECURITY_MESSAGE_TIMES_OUT) {
- mHandler.removeCallbacks(mClearSecurityMessageRunnable);
- mHandler.postDelayed(mClearSecurityMessageRunnable, SECURITY_MESSAGE_DURATION);
- }
- mSecurityMessage.announceForAccessibility(mSecurityMessage.getText());
- }
-
- /**
- * Update the status lines based on these rules:
- * AlarmStatus: Alarm state always gets it's own line.
- * Status1 is shared between help, battery status and generic unlock instructions,
- * prioritized in that order.
- * @param showStatusLines status lines are shown if true
- */
- void updateStatusLines() {
- updateAlarmInfo();
- boolean statusAreaUsed = updateSecurityMessage();
- statusAreaUsed = updateStatus1(statusAreaUsed) || statusAreaUsed;
- updateOwnerInfo(statusAreaUsed);
- }
-
- private boolean updateSecurityMessage() {
- if (mSecurityMessage == null) return false;
- if (!TextUtils.isEmpty(mSecurityMessageContents)) {
- mSecurityMessage.setText(mSecurityMessageContents);
- mSecurityMessage.setVisibility(View.VISIBLE);
- return true;
- } else {
- mSecurityMessage.setVisibility(View.GONE);
- return false;
- }
- }
-
- private void updateAlarmInfo() {
- String nextAlarm = mLockPatternUtils.getNextAlarm();
- if (!TextUtils.isEmpty(nextAlarm)) {
- maybeSetUpperCaseText(mAlarmStatusView, nextAlarm);
- mAlarmStatusView.setCompoundDrawablesWithIntrinsicBounds(ALARM_ICON, 0, 0, 0);
- mAlarmStatusView.setVisibility(View.VISIBLE);
- } else {
- mAlarmStatusView.setVisibility(View.GONE);
- }
- }
-
- private boolean updateStatus1(boolean statusAreaUsed) {
- MutableInt icon = new MutableInt(0);
- CharSequence string = getPriorityTextMessage(icon);
-
- boolean dontShow = statusAreaUsed && mShareStatusRegion;
- if (!dontShow && !TextUtils.isEmpty(string)) {
- maybeSetUpperCaseText(mStatus1View, string);
- mStatus1View.setCompoundDrawablesWithIntrinsicBounds(icon.value, 0, 0, 0);
- mStatus1View.setVisibility(View.VISIBLE);
- return true;
- } else {
- mStatus1View.setVisibility(View.GONE);
- return false;
- }
- }
-
- private void updateOwnerInfo(boolean statusAreaUsed) {
- final ContentResolver res = getContext().getContentResolver();
- final boolean ownerInfoEnabled = Settings.Secure.getIntForUser(res,
- Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED, 1, UserHandle.USER_CURRENT) != 0;
- String text = Settings.Secure.getStringForUser(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO,
- UserHandle.USER_CURRENT);
-
- boolean dontShow = statusAreaUsed && mShareStatusRegion;
- if (!dontShow && ownerInfoEnabled && !TextUtils.isEmpty(text)) {
- text = text.trim(); // Remove trailing newlines
- maybeSetUpperCaseText(mOwnerInfoView, text);
- mOwnerInfoView.setVisibility(View.VISIBLE);
- } else {
- mOwnerInfoView.setVisibility(View.GONE);
- }
- }
-
- private CharSequence getPriorityTextMessage(MutableInt icon) {
- CharSequence string = null;
- if (mShowingBatteryInfo) {
- // Battery status
- if (mPluggedIn) {
- // Charging, charged or waiting to charge.
- string = getContext().getString(mBatteryCharged ?
- com.android.internal.R.string.lockscreen_charged
- :com.android.internal.R.string.lockscreen_plugged_in, mBatteryLevel);
- icon.value = CHARGING_ICON;
- } else if (mBatteryIsLow) {
- // Battery is low
- string = getContext().getString(
- com.android.internal.R.string.lockscreen_low_battery);
- icon.value = BATTERY_LOW_ICON;
- }
- }
- return string;
- }
-
- void refreshDate() {
- maybeSetUpperCaseText(mDateView, DateFormat.format(mDateFormatString, new Date()));
- }
-
- private void maybeSetUpperCaseText(TextView textView, CharSequence text) {
- if (KeyguardViewManager.USE_UPPER_CASE
- && textView.getId() != R.id.owner_info) { // currently only required for date view
- textView.setText(text != null ? text.toString().toUpperCase() : null);
- } else {
- textView.setText(text);
- }
- }
-
- private Context getContext() {
- return mContainer.getContext();
- }
-
- @Override
- public void showBouncer(int duration) {
- }
-
- @Override
- public void hideBouncer(int duration) {
- }
-
- @Override
- public void setTimeout(int timeout_ms) {
- }
-
-}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java
index 51f0418..1968ecd 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardUpdateMonitor.java
@@ -95,6 +95,7 @@
private int mRingMode;
private int mPhoneState;
private boolean mKeyguardIsVisible;
+ private boolean mBootCompleted;
// Device provisioning state
private boolean mDeviceProvisioned;
@@ -347,9 +348,13 @@
filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
filter.addAction(Intent.ACTION_USER_REMOVED);
- filter.addAction(Intent.ACTION_BOOT_COMPLETED);
context.registerReceiver(mBroadcastReceiver, filter);
+ final IntentFilter bootCompleteFilter = new IntentFilter();
+ bootCompleteFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
+ bootCompleteFilter.addAction(Intent.ACTION_BOOT_COMPLETED);
+ context.registerReceiver(mBroadcastReceiver, bootCompleteFilter);
+
try {
ActivityManagerNative.getDefault().registerUserSwitchObserver(
new IUserSwitchObserver.Stub() {
@@ -431,6 +436,7 @@
* Handle {@link #MSG_BOOT_COMPLETED}
*/
protected void handleBootCompleted() {
+ mBootCompleted = true;
for (int i = 0; i < mCallbacks.size(); i++) {
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
if (cb != null) {
@@ -440,6 +446,14 @@
}
/**
+ * We need to store this state in the KeyguardUpdateMonitor since this class will not be
+ * destroyed.
+ */
+ public boolean hasBootCompleted() {
+ return mBootCompleted;
+ }
+
+ /**
* Handle {@link #MSG_USER_SWITCHED}
*/
protected void handleUserRemoved(int userId) {
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
index 365c530..9bc0111 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewManager.java
@@ -129,12 +129,19 @@
@Override
protected void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
- if (mKeyguardHost.getVisibility() == View.VISIBLE) {
- // only propagate configuration messages if we're currently showing
- maybeCreateKeyguardLocked(shouldEnableScreenRotation(), true, null);
- } else {
- if (DEBUG) Log.v(TAG, "onConfigurationChanged: view not visible");
- }
+ post(new Runnable() {
+ @Override
+ public void run() {
+ synchronized (KeyguardViewManager.this) {
+ if (mKeyguardHost.getVisibility() == View.VISIBLE) {
+ // only propagate configuration messages if we're currently showing
+ maybeCreateKeyguardLocked(shouldEnableScreenRotation(), true, null);
+ } else {
+ if (DEBUG) Log.v(TAG, "onConfigurationChanged: view not visible");
+ }
+ }
+ }
+ });
}
@Override
@@ -168,6 +175,7 @@
int flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
+ | WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
| WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER;
if (!mNeedsInput) {
@@ -214,7 +222,7 @@
mKeyguardHost.removeView(v);
}
// TODO: Remove once b/7094175 is fixed
- Slog.d(TAG, "inflateKeyguardView: b/7094175 mContext.config="
+ if (false) Slog.d(TAG, "inflateKeyguardView: b/7094175 mContext.config="
+ mContext.getResources().getConfiguration());
final LayoutInflater inflater = LayoutInflater.from(mContext);
View view = inflater.inflate(R.layout.keyguard_host_view, mKeyguardHost, true);
@@ -235,12 +243,6 @@
}
if (options != null) {
- if (options.getBoolean(LockPatternUtils.KEYGUARD_SHOW_USER_SWITCHER)) {
- mKeyguardView.goToUserSwitcher();
- }
- if (options.getBoolean(LockPatternUtils.KEYGUARD_SHOW_SECURITY_CHALLENGE)) {
- mKeyguardView.showNextSecurityScreenIfPresent();
- }
int widgetToShow = options.getInt(LockPatternUtils.KEYGUARD_SHOW_APPWIDGET,
AppWidgetManager.INVALID_APPWIDGET_ID);
if (widgetToShow != AppWidgetManager.INVALID_APPWIDGET_ID) {
@@ -424,4 +426,10 @@
public synchronized boolean isShowing() {
return (mKeyguardHost != null && mKeyguardHost.getVisibility() == View.VISIBLE);
}
+
+ public void showAssistant() {
+ if (mKeyguardView != null) {
+ mKeyguardView.showAssistant();
+ }
+ }
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java
index 128930a..7d757ff 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java
@@ -22,6 +22,7 @@
import android.app.ActivityManagerNative;
import android.app.AlarmManager;
import android.app.PendingIntent;
+import android.app.SearchManager;
import android.app.StatusBarManager;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
@@ -116,6 +117,7 @@
private static final int KEYGUARD_DONE_AUTHENTICATING = 11;
private static final int SET_HIDDEN = 12;
private static final int KEYGUARD_TIMEOUT = 13;
+ private static final int SHOW_ASSISTANT = 14;
/**
* The default amount of time we stay awake (used for all key input)
@@ -165,6 +167,9 @@
/** UserManager for querying number of users */
private UserManager mUserManager;
+ /** SearchManager for determining whether or not search assistant is available */
+ private SearchManager mSearchManager;
+
/**
* Used to keep the device awake while to ensure the keyguard finishes opening before
* we sleep.
@@ -310,10 +315,7 @@
// We need to force a reset of the views, since lockNow (called by
// ActivityManagerService) will not reconstruct the keyguard if it is already showing.
synchronized (KeyguardViewMediator.this) {
- Bundle options = new Bundle();
- options.putBoolean(LockPatternUtils.KEYGUARD_SHOW_USER_SWITCHER, true);
- options.putBoolean(LockPatternUtils.KEYGUARD_SHOW_SECURITY_CHALLENGE, true);
- resetStateLocked(options);
+ resetStateLocked(null);
adjustStatusBarLocked();
// Disable face unlock when the user switches.
KeyguardUpdateMonitor.getInstance(mContext).setAlternateUnlockEnabled(false);
@@ -526,6 +528,7 @@
* Let us know that the system is ready after startup.
*/
public void onSystemReady() {
+ mSearchManager = (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE);
synchronized (this) {
if (DEBUG) Log.d(TAG, "onSystemReady");
mSystemReady = true;
@@ -566,6 +569,8 @@
mScreenOn = false;
if (DEBUG) Log.d(TAG, "onScreenTurnedOff(" + why + ")");
+ mKeyguardDonePending = false;
+
// Lock immediately based on setting if secure (user has a pin/pattern/password).
// This also "locks" the device when not secure to provide easy access to the
// camera while preventing unwanted input.
@@ -1130,6 +1135,9 @@
doKeyguardLocked((Bundle) msg.obj);
}
break;
+ case SHOW_ASSISTANT:
+ handleShowAssistant();
+ break;
}
}
};
@@ -1222,6 +1230,7 @@
mKeyguardViewManager.show(options);
mShowing = true;
+ mKeyguardDonePending = false;
updateActivityLockScreenState();
adjustStatusBarLocked();
userActivity();
@@ -1257,6 +1266,7 @@
mKeyguardViewManager.hide();
mShowing = false;
+ mKeyguardDonePending = false;
updateActivityLockScreenState();
adjustStatusBarLocked();
}
@@ -1305,6 +1315,9 @@
// showing secure lockscreen; disable ticker.
flags |= StatusBarManager.DISABLE_NOTIFICATION_TICKER;
}
+ if (!isAssistantAvailable()) {
+ flags |= StatusBarManager.DISABLE_SEARCH;
+ }
}
if (DEBUG) {
@@ -1393,4 +1406,17 @@
return mKeyguardDonePending || !isSecure();
}
+ public void showAssistant() {
+ Message msg = mHandler.obtainMessage(SHOW_ASSISTANT);
+ mHandler.sendMessage(msg);
+ }
+
+ public void handleShowAssistant() {
+ mKeyguardViewManager.showAssistant();
+ }
+
+ private boolean isAssistantAvailable() {
+ return mSearchManager != null
+ && mSearchManager.getAssistIntent(mContext, UserHandle.USER_CURRENT) != null;
+ }
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java
index 4fdf7d8..0a166e1 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewStateManager.java
@@ -15,6 +15,7 @@
*/
package com.android.internal.policy.impl.keyguard;
+import android.appwidget.AppWidgetManager;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
@@ -115,6 +116,12 @@
scl.fadeOutChallenge();
mPageIndexOnPageBeginMoving = mKeyguardWidgetPager.getCurrentPage();
}
+ // We use mAppWidgetToShow to show a particular widget after you add it--
+ // once the user swipes a page we clear that behavior
+ if (mKeyguardHostView != null) {
+ mKeyguardHostView.clearAppWidgetToShow();
+ mKeyguardHostView.setOnDismissAction(null);
+ }
if (mHideHintsRunnable != null) {
mMainQueue.removeCallbacks(mHideHintsRunnable);
mHideHintsRunnable = null;
@@ -197,6 +204,13 @@
pt[1] += y - vY;
}
+ private void userActivity() {
+ if (mKeyguardHostView != null) {
+ mKeyguardHostView.onUserActivityTimeoutChanged();
+ mKeyguardHostView.userActivity();
+ }
+ }
+
@Override
public void onScrollStateChanged(int scrollState) {
if (mKeyguardWidgetPager == null || mChallengeLayout == null) return;
@@ -210,11 +224,19 @@
if (!challengeOverlapping) {
if (!mKeyguardWidgetPager.isPageMoving()) {
frame.resetSize();
+ userActivity();
} else {
mKeyguardWidgetPager.setWidgetToResetOnPageFadeOut(mPageListeningToSlider);
}
}
- frame.hideFrame(this);
+ if (frame.isSmall()) {
+ // This is to make sure that if the scroller animation gets cut off midway
+ // that the frame doesn't stay in a partial down position.
+ frame.setFrameHeight(frame.getSmallFrameHeight());
+ }
+ if (scrollState != SlidingChallengeLayout.SCROLL_STATE_FADING) {
+ frame.hideFrame(this);
+ }
updateEdgeSwiping();
if (mChallengeLayout.isChallengeShowing()) {
@@ -233,14 +255,16 @@
// Skip showing the frame and shrinking the widget if we are
if (!mChallengeLayout.isBouncing()) {
- frame.showFrame(this);
+ if (scrollState != SlidingChallengeLayout.SCROLL_STATE_FADING) {
+ frame.showFrame(this);
+ }
// As soon as the security begins sliding, the widget becomes small (if it wasn't
// small to begin with).
if (!frame.isSmall()) {
// We need to fetch the final page, in case the pages are in motion.
mPageListeningToSlider = mKeyguardWidgetPager.getNextPage();
- frame.shrinkWidget();
+ frame.shrinkWidget(false);
}
} else {
if (!frame.isSmall()) {
@@ -259,7 +283,7 @@
public void onScrollPositionChanged(float scrollPosition, int challengeTop) {
mChallengeTop = challengeTop;
KeyguardWidgetFrame frame = mKeyguardWidgetPager.getWidgetPageAt(mPageListeningToSlider);
- if (frame != null && !mKeyguardWidgetPager.isPageMoving()) {
+ if (frame != null && mLastScrollState != SlidingChallengeLayout.SCROLL_STATE_FADING) {
frame.adjustFrame(getChallengeTopRelativeToFrame(frame, mChallengeTop));
}
}
@@ -301,6 +325,9 @@
mKeyguardWidgetPager.zoomOutToBouncer();
} else {
mKeyguardWidgetPager.zoomInFromBouncer();
+ if (mKeyguardHostView != null) {
+ mKeyguardHostView.setOnDismissAction(null);
+ }
}
}
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetCarousel.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetCarousel.java
index debf765..257fd27 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetCarousel.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetCarousel.java
@@ -16,7 +16,6 @@
package com.android.internal.policy.impl.keyguard;
import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
@@ -27,10 +26,10 @@
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
-import java.util.ArrayList;
-
import com.android.internal.R;
+import java.util.ArrayList;
+
public class KeyguardWidgetCarousel extends KeyguardWidgetPager {
private float mAdjacentPagesAngle;
@@ -56,17 +55,30 @@
return MAX_SCROLL_PROGRESS;
}
- public float getAlphaForPage(int screenCenter, int index) {
+ public float getAlphaForPage(int screenCenter, int index, boolean showSidePages) {
View child = getChildAt(index);
if (child == null) return 0f;
+ boolean inVisibleRange = index >= getNextPage() - 1 && index <= getNextPage() + 1;
float scrollProgress = getScrollProgress(screenCenter, child, index);
- if (!isOverScrollChild(index, scrollProgress)) {
+
+ if (isOverScrollChild(index, scrollProgress)) {
+ return 1.0f;
+ } else if ((showSidePages && inVisibleRange) || index == getNextPage()) {
scrollProgress = getBoundedScrollProgress(screenCenter, child, index);
float alpha = 1.0f - 1.0f * Math.abs(scrollProgress / MAX_SCROLL_PROGRESS);
return alpha;
} else {
- return 1.0f;
+ return 0f;
+ }
+ }
+
+ public float getOutlineAlphaForPage(int screenCenter, int index, boolean showSidePages) {
+ boolean inVisibleRange = index >= getNextPage() - 1 && index <= getNextPage() + 1;
+ if (inVisibleRange) {
+ return super.getOutlineAlphaForPage(screenCenter, index, showSidePages);
+ } else {
+ return 0f;
}
}
@@ -75,24 +87,32 @@
mChildrenOutlineFadeAnimation.cancel();
mChildrenOutlineFadeAnimation = null;
}
+ boolean showSidePages = mShowingInitialHints || isPageMoving();
if (!isReordering(false)) {
for (int i = 0; i < getChildCount(); i++) {
KeyguardWidgetFrame child = getWidgetPageAt(i);
if (child != null) {
- child.setBackgroundAlpha(getOutlineAlphaForPage(screenCenter, i));
- child.setContentAlpha(getAlphaForPage(screenCenter, i));
+ float outlineAlpha = getOutlineAlphaForPage(screenCenter, i, showSidePages);
+ float contentAlpha = getAlphaForPage(screenCenter, i,showSidePages);
+ child.setBackgroundAlpha(outlineAlpha);
+ child.setContentAlpha(contentAlpha);
}
}
}
}
public void showInitialPageHints() {
+ mShowingInitialHints = true;
int count = getChildCount();
for (int i = 0; i < count; i++) {
+ boolean inVisibleRange = i >= getNextPage() - 1 && i <= getNextPage() + 1;
KeyguardWidgetFrame child = getWidgetPageAt(i);
- if (i >= mCurrentPage - 1 && i <= mCurrentPage + 1) {
- child.fadeFrame(this, true, KeyguardWidgetFrame.OUTLINE_ALPHA_MULTIPLIER,
- CHILDREN_OUTLINE_FADE_IN_DURATION);
+ if (inVisibleRange) {
+ child.setBackgroundAlpha(KeyguardWidgetFrame.OUTLINE_ALPHA_MULTIPLIER);
+ child.setContentAlpha(1f);
+ } else {
+ child.setBackgroundAlpha(0f);
+ child.setContentAlpha(0f);
}
}
}
@@ -220,8 +240,8 @@
for (int i = 0; i < count; i++) {
KeyguardWidgetFrame child = getWidgetPageAt(i);
- float finalAlpha = getAlphaForPage(mScreenCenter, i);
- float finalOutlineAlpha = getOutlineAlphaForPage(mScreenCenter, i);
+ float finalAlpha = getAlphaForPage(mScreenCenter, i, true);
+ float finalOutlineAlpha = getOutlineAlphaForPage(mScreenCenter, i, true);
getTransformForPage(mScreenCenter, i, mTmpTransform);
boolean inVisibleRange = (i >= mCurrentPage - 1 && i <= mCurrentPage + 1);
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java
index fa1a1ae..babb9cb 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java
@@ -69,8 +69,6 @@
private float mBackgroundAlphaMultiplier = 1.0f;
private Drawable mBackgroundDrawable;
private Rect mBackgroundRect = new Rect();
- private int mLastMeasuredWidth = -1;
- private int mLastMeasuredHeight = 1;
// These variables are all needed in order to size things properly before we're actually
// measured.
@@ -79,6 +77,7 @@
private boolean mWidgetLockedSmall = false;
private int mMaxChallengeTop = -1;
private int mFrameStrokeAdjustment;
+ private boolean mPerformAppWidgetSizeUpdateOnBootComplete;
// This will hold the width value before we've actually been measured
private int mFrameHeight;
@@ -110,22 +109,42 @@
int padding = (int) (res.getDisplayMetrics().density * 8);
setPadding(padding, padding, padding, padding);
- mFrameStrokeAdjustment = (int) (2 * density);
+ mFrameStrokeAdjustment = 2 + (int) (2 * density);
// This will be overriden on phones based on the current security mode, however on tablets
// we need to specify a height.
mSmallWidgetHeight =
res.getDimensionPixelSize(com.android.internal.R.dimen.kg_small_widget_height);
- mBackgroundDrawable = res.getDrawable(R.drawable.kg_bouncer_bg_white);
+ mBackgroundDrawable = res.getDrawable(R.drawable.kg_widget_bg_padded);
mGradientColor = res.getColor(com.android.internal.R.color.kg_widget_pager_gradient);
mGradientPaint.setXfermode(sAddBlendMode);
}
@Override
protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
cancelLongPress();
+ KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mUpdateMonitorCallbacks);
+
}
+ @Override
+ protected void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateMonitorCallbacks);
+ }
+
+ private KeyguardUpdateMonitorCallback mUpdateMonitorCallbacks =
+ new KeyguardUpdateMonitorCallback() {
+ @Override
+ public void onBootCompleted() {
+ if (mPerformAppWidgetSizeUpdateOnBootComplete) {
+ performAppWidgetSizeCallbacksIfNecessary();
+ mPerformAppWidgetSizeUpdateOnBootComplete = false;
+ }
+ }
+ };
+
void setIsHoveringOverDeleteDropTarget(boolean isHovering) {
if (ENABLE_HOVER_OVER_DELETE_DROP_TARGET_OVERLAY) {
if (mIsHoveringOverDeleteDropTarget != isHovering) {
@@ -329,6 +348,7 @@
public void setMaxChallengeTop(int top) {
boolean dirty = mMaxChallengeTop != top;
+ mMaxChallengeTop = top;
mSmallWidgetHeight = top - getPaddingTop();
mSmallFrameHeight = top + getPaddingBottom();
if (dirty && mIsSmall) {
@@ -348,10 +368,21 @@
setFrameHeight(frameHeight);
}
- public void shrinkWidget() {
+ public void shrinkWidget(boolean alsoShrinkFrame) {
mIsSmall = true;
setWidgetHeight(mSmallWidgetHeight);
- setFrameHeight(mSmallFrameHeight);
+
+ if (alsoShrinkFrame) {
+ setFrameHeight(mSmallFrameHeight);
+ }
+ }
+
+ public int getSmallFrameHeight() {
+ return mSmallFrameHeight;
+ }
+
+ public void shrinkWidget() {
+ shrinkWidget(true);
}
public void setWidgetLockedSmall(boolean locked) {
@@ -372,6 +403,10 @@
public void setFrameHeight(int height) {
mFrameHeight = height;
mBackgroundRect.set(0, 0, getMeasuredWidth(), Math.min(mFrameHeight, getMeasuredHeight()));
+ mForegroundRect.set(mFrameStrokeAdjustment, mFrameStrokeAdjustment,getMeasuredWidth() -
+ mFrameStrokeAdjustment, Math.min(getMeasuredHeight(), mFrameHeight) -
+ mFrameStrokeAdjustment);
+ updateGradient();
invalidate();
}
@@ -389,7 +424,9 @@
mBgAlphaController = caller;
}
- if (mBgAlphaController != caller) return;
+ if (mBgAlphaController != caller && mBgAlphaController != null) {
+ return;
+ }
if (mFrameFade != null) {
mFrameFade.cancel();
@@ -401,27 +438,30 @@
mFrameFade.start();
}
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- super.onSizeChanged(w, h, oldw, oldh);
-
- // mFrameStrokeAdjustment is a cludge to prevent the overlay from drawing outside the
- // rounded rect background.
- mForegroundRect.set(mFrameStrokeAdjustment, mFrameStrokeAdjustment,
- w - mFrameStrokeAdjustment, h - mFrameStrokeAdjustment);
-
+ private void updateGradient() {
float x0 = mLeftToRight ? 0 : mForegroundRect.width();
float x1 = mLeftToRight ? mForegroundRect.width(): 0;
mLeftToRightGradient = new LinearGradient(x0, 0f, x1, 0f,
mGradientColor, 0, Shader.TileMode.CLAMP);
mRightToLeftGradient = new LinearGradient(x1, 0f, x0, 0f,
mGradientColor, 0, Shader.TileMode.CLAMP);
+ }
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ super.onSizeChanged(w, h, oldw, oldh);
if (!mIsSmall) {
mFrameHeight = h;
}
+ // mFrameStrokeAdjustment is a cludge to prevent the overlay from drawing outside the
+ // rounded rect background.
+ mForegroundRect.set(mFrameStrokeAdjustment, mFrameStrokeAdjustment,
+ w - mFrameStrokeAdjustment, Math.min(h, mFrameHeight) - mFrameStrokeAdjustment);
+
mBackgroundRect.set(0, 0, getMeasuredWidth(), Math.min(h, mFrameHeight));
+ updateGradient();
invalidate();
}
@@ -434,12 +474,14 @@
View content = getContent();
if (!(content instanceof AppWidgetHostView)) return;
- boolean sizeDirty = content.getMeasuredWidth() != mLastMeasuredWidth ||
- content.getMeasuredHeight() != mLastMeasuredHeight;
- if (sizeDirty) {
-
+ if (!KeyguardUpdateMonitor.getInstance(mContext).hasBootCompleted()) {
+ mPerformAppWidgetSizeUpdateOnBootComplete = true;
+ return;
}
+ // TODO: there's no reason to force the AppWidgetHostView to catch duplicate size calls.
+ // We can do that even more cheaply here. It's not an issue right now since we're in the
+ // system process and hence no binder calls.
AppWidgetHostView awhv = (AppWidgetHostView) content;
float density = getResources().getDisplayMetrics().density;
@@ -472,6 +514,10 @@
return false;
}
+ public void onBouncerShowing(boolean showing) {
+ // hook for subclasses
+ }
+
public void setWorkerHandler(Handler workerHandler) {
mWorkerHandler = workerHandler;
}
@@ -479,4 +525,5 @@
public Handler getWorkerHandler() {
return mWorkerHandler;
}
+
}
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java
index f20b8d4..b4fe0c7 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java
@@ -36,6 +36,7 @@
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
+import android.view.animation.DecelerateInterpolator;
import android.widget.FrameLayout;
import com.android.internal.widget.LockPatternUtils;
@@ -69,9 +70,15 @@
private Callbacks mCallbacks;
private int mWidgetToResetAfterFadeOut;
+ protected boolean mShowingInitialHints = false;
+
+ // A temporary handle to the Add-Widget view
+ private View mAddWidgetView;
+ private int mLastWidthMeasureSpec;
+ private int mLastHeightMeasureSpec;
// Bouncer
- protected int BOUNCER_ZOOM_IN_OUT_DURATION = 250;
+ private int mBouncerZoomInOutDuration = 250;
private float BOUNCER_SCALE_FACTOR = 0.67f;
// Background worker thread: used here for persistence, also made available to widget frames
@@ -235,15 +242,20 @@
public interface Callbacks {
public void userActivity();
public void onUserActivityTimeoutChanged();
+ public void onAddView(View v);
+ public void onRemoveView(View v, boolean deletePermanently);
+ public void onRemoveViewAnimationCompleted();
}
public void addWidget(View widget) {
addWidget(widget, -1);
}
-
- public void onRemoveView(View v) {
+ public void onRemoveView(View v, final boolean deletePermanently) {
final int appWidgetId = ((KeyguardWidgetFrame) v).getContentAppWidgetId();
+ if (mCallbacks != null) {
+ mCallbacks.onRemoveView(v, deletePermanently);
+ }
mBackgroundWorkerHandler.post(new Runnable() {
@Override
public void run() {
@@ -252,11 +264,21 @@
});
}
+ @Override
+ public void onRemoveViewAnimationCompleted() {
+ if (mCallbacks != null) {
+ mCallbacks.onRemoveViewAnimationCompleted();
+ }
+ }
+
public void onAddView(View v, final int index) {
final int appWidgetId = ((KeyguardWidgetFrame) v).getContentAppWidgetId();
final int[] pagesRange = new int[mTempVisiblePagesRange.length];
getVisiblePages(pagesRange);
boundByReorderablePages(true, pagesRange);
+ if (mCallbacks != null) {
+ mCallbacks.onAddView(v);
+ }
// Subtract from the index to take into account pages before the reorderable
// pages (e.g. the "add widget" page)
mBackgroundWorkerHandler.post(new Runnable() {
@@ -449,12 +471,21 @@
private void updatePageAlphaValues(int screenCenter) {
}
- public float getAlphaForPage(int screenCenter, int index) {
- return 1f;
+ public float getAlphaForPage(int screenCenter, int index, boolean showSidePages) {
+ if (showSidePages) {
+ return 1f;
+ } else {
+ return index == mCurrentPage ? 1.0f : 0f;
+ }
}
- public float getOutlineAlphaForPage(int screenCenter, int index) {
- return getAlphaForPage(screenCenter, index) * KeyguardWidgetFrame.OUTLINE_ALPHA_MULTIPLIER;
+ public float getOutlineAlphaForPage(int screenCenter, int index, boolean showSidePages) {
+ if (showSidePages) {
+ return getAlphaForPage(screenCenter, index, showSidePages)
+ * KeyguardWidgetFrame.OUTLINE_ALPHA_MULTIPLIER;
+ } else {
+ return 0f;
+ }
}
protected boolean isOverScrollChild(int index, float scrollProgress) {
@@ -476,6 +507,10 @@
v.setCameraDistance(mDensity * CAMERA_DISTANCE);
if (isOverScrollChild(i, scrollProgress) && PERFORM_OVERSCROLL_ROTATION) {
+ float pivotX = v.getMeasuredWidth() / 2;
+ float pivotY = v.getMeasuredHeight() / 2;
+ v.setPivotX(pivotX);
+ v.setPivotY(pivotY);
v.setRotationY(- OVERSCROLL_MAX_ROTATION * scrollProgress);
v.setOverScrollAmount(Math.abs(scrollProgress), scrollProgress < 0);
} else {
@@ -507,14 +542,17 @@
return false;
}
+ /**
+ * Returns the bounded set of pages that are re-orderable. The range is fully inclusive.
+ */
@Override
void boundByReorderablePages(boolean isReordering, int[] range) {
if (isReordering) {
// Remove non-widget pages from the range
- while (range[1] > range[0] && !isWidgetPage(range[1])) {
+ while (range[1] >= range[0] && !isWidgetPage(range[1])) {
range[1]--;
}
- while (range[0] < range[1] && !isWidgetPage(range[0])) {
+ while (range[0] <= range[1] && !isWidgetPage(range[0])) {
range[0]++;
}
}
@@ -546,12 +584,12 @@
}
public void showInitialPageHints() {
+ mShowingInitialHints = true;
int count = getChildCount();
for (int i = 0; i < count; i++) {
KeyguardWidgetFrame child = getWidgetPageAt(i);
if (i != mCurrentPage) {
- child.fadeFrame(this, true, KeyguardWidgetFrame.OUTLINE_ALPHA_MULTIPLIER,
- CHILDREN_OUTLINE_FADE_IN_DURATION);
+ child.setBackgroundAlpha(KeyguardWidgetFrame.OUTLINE_ALPHA_MULTIPLIER);
child.setContentAlpha(0f);
} else {
child.setBackgroundAlpha(0f);
@@ -560,10 +598,6 @@
}
}
- public void showSidePageHints() {
- animateOutlinesAndSidePages(true, -1);
- }
-
@Override
void setCurrentPage(int currentPage) {
super.setCurrentPage(currentPage);
@@ -576,12 +610,10 @@
mHasMeasure = false;
}
- @Override
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- super.onLayout(changed, left, top, right, bottom);
- }
-
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ mLastWidthMeasureSpec = widthMeasureSpec;
+ mLastHeightMeasureSpec = heightMeasureSpec;
+
int maxChallengeTop = -1;
View parent = (View) getParent();
boolean challengeShowing = false;
@@ -642,7 +674,7 @@
for (int i = 0; i < count; i++) {
float finalContentAlpha;
if (show) {
- finalContentAlpha = getAlphaForPage(mScreenCenter, i);
+ finalContentAlpha = getAlphaForPage(mScreenCenter, i, true);
} else if (!show && i == curPage) {
finalContentAlpha = 1f;
} else {
@@ -654,7 +686,7 @@
ObjectAnimator a = ObjectAnimator.ofPropertyValuesHolder(child, alpha);
anims.add(a);
- float finalOutlineAlpha = show ? getOutlineAlphaForPage(mScreenCenter, i) : 0f;
+ float finalOutlineAlpha = show ? getOutlineAlphaForPage(mScreenCenter, i, true) : 0f;
child.fadeFrame(this, show, finalOutlineAlpha, duration);
}
@@ -680,6 +712,7 @@
frame.resetSize();
}
mWidgetToResetAfterFadeOut = -1;
+ mShowingInitialHints = false;
}
updateWidgetFramesImportantForAccessibility();
}
@@ -740,6 +773,10 @@
}
}
+ void setBouncerAnimationDuration(int duration) {
+ mBouncerZoomInOutDuration = duration;
+ }
+
// Zoom in after the bouncer is dismissed
void zoomInFromBouncer() {
if (mZoomInOutAnim != null && mZoomInOutAnim.isRunning()) {
@@ -748,12 +785,16 @@
final View currentPage = getPageAt(getCurrentPage());
if (currentPage.getScaleX() < 1f || currentPage.getScaleY() < 1f) {
mZoomInOutAnim = new AnimatorSet();
- mZoomInOutAnim.setDuration(BOUNCER_ZOOM_IN_OUT_DURATION);
mZoomInOutAnim.playTogether(
ObjectAnimator.ofFloat(currentPage, "scaleX", 1f),
ObjectAnimator.ofFloat(currentPage , "scaleY", 1f));
+ mZoomInOutAnim.setDuration(mBouncerZoomInOutDuration);
+ mZoomInOutAnim.setInterpolator(new DecelerateInterpolator(1.5f));
mZoomInOutAnim.start();
}
+ if (currentPage instanceof KeyguardWidgetFrame) {
+ ((KeyguardWidgetFrame)currentPage).onBouncerShowing(false);
+ }
}
// Zoom out after the bouncer is initiated
@@ -761,15 +802,45 @@
if (mZoomInOutAnim != null && mZoomInOutAnim.isRunning()) {
mZoomInOutAnim.cancel();
}
- View currentPage = getPageAt(getCurrentPage());
+ int curPage = getCurrentPage();
+ View currentPage = getPageAt(curPage);
+ if (shouldSetTopAlignedPivotForWidget(curPage)) {
+ currentPage.setPivotY(0);
+ // Note: we are working around the issue that setting the x-pivot to the same value as it
+ // was does not actually work.
+ currentPage.setPivotX(0);
+ currentPage.setPivotX(currentPage.getMeasuredWidth() / 2);
+ }
if (!(currentPage.getScaleX() < 1f || currentPage.getScaleY() < 1f)) {
mZoomInOutAnim = new AnimatorSet();
- mZoomInOutAnim.setDuration(BOUNCER_ZOOM_IN_OUT_DURATION);
mZoomInOutAnim.playTogether(
ObjectAnimator.ofFloat(currentPage, "scaleX", BOUNCER_SCALE_FACTOR),
ObjectAnimator.ofFloat(currentPage, "scaleY", BOUNCER_SCALE_FACTOR));
+ mZoomInOutAnim.setDuration(mBouncerZoomInOutDuration);
+ mZoomInOutAnim.setInterpolator(new DecelerateInterpolator(1.5f));
mZoomInOutAnim.start();
}
+ if (currentPage instanceof KeyguardWidgetFrame) {
+ ((KeyguardWidgetFrame)currentPage).onBouncerShowing(true);
+ }
+ }
+
+ void setAddWidgetEnabled(boolean enabled) {
+ if (mAddWidgetView != null && enabled) {
+ addView(mAddWidgetView, 0);
+ // We need to force measure the PagedView so that the calls to update the scroll
+ // position below work
+ measure(mLastWidthMeasureSpec, mLastHeightMeasureSpec);
+ // Bump up the current page to account for the addition of the new page
+ setCurrentPage(mCurrentPage + 1);
+ mAddWidgetView = null;
+ } else if (mAddWidgetView == null && !enabled) {
+ View addWidget = findViewById(com.android.internal.R.id.keyguard_add_widget);
+ if (addWidget != null) {
+ mAddWidgetView = addWidget;
+ removeView(addWidget);
+ }
+ }
}
boolean isAddPage(int pageIndex) {
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/MultiPaneChallengeLayout.java b/policy/src/com/android/internal/policy/impl/keyguard/MultiPaneChallengeLayout.java
index 7b4bd6e..0ca46c3 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/MultiPaneChallengeLayout.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/MultiPaneChallengeLayout.java
@@ -40,7 +40,7 @@
public static final int HORIZONTAL = LinearLayout.HORIZONTAL;
public static final int VERTICAL = LinearLayout.VERTICAL;
- protected static final int ANIMATE_BOUNCE_DURATION = 750;
+ public static final int ANIMATE_BOUNCE_DURATION = 350;
private KeyguardSecurityContainer mChallengeView;
private View mUserSwitcherView;
@@ -48,6 +48,7 @@
private OnBouncerStateChangedListener mBouncerListener;
private final Rect mTempRect = new Rect();
+ private final Rect mZeroPadding = new Rect();
private final DisplayMetrics mDisplayMetrics;
@@ -77,6 +78,8 @@
final Resources res = getResources();
mDisplayMetrics = res.getDisplayMetrics();
+
+ setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
@Override
@@ -94,6 +97,11 @@
}
@Override
+ public int getBouncerAnimationDuration() {
+ return ANIMATE_BOUNCE_DURATION;
+ }
+
+ @Override
public void showBouncer() {
if (mIsBouncing) return;
mIsBouncing = true;
@@ -187,6 +195,8 @@
// on the window. We want to avoid resizing widgets when possible as it can
// be ugly/expensive. This lets us simply clip them instead.
return virtualHeight - heightUsed;
+ } else if (lp.childType == LayoutParams.CHILD_TYPE_PAGE_DELETE_DROP_TARGET) {
+ return height;
}
return Math.min(virtualHeight - heightUsed, height);
}
@@ -330,6 +340,7 @@
final int count = getChildCount();
for (int i = 0; i < count; i++) {
final View child = getChildAt(i);
+ LayoutParams lp = (LayoutParams) child.getLayoutParams();
// We did the user switcher above if we have one.
if (child == mUserSwitcherView || child.getVisibility() == GONE) continue;
@@ -337,6 +348,9 @@
if (child == mScrimView) {
child.layout(0, 0, width, height);
continue;
+ } else if (lp.childType == LayoutParams.CHILD_TYPE_PAGE_DELETE_DROP_TARGET) {
+ layoutWithGravity(width, height, child, mZeroPadding, false);
+ continue;
}
layoutWithGravity(width, height, child, padding, false);
@@ -363,7 +377,7 @@
adjustedWidth = (int) (paddedWidth * lp.centerWithinArea + 0.5f);
adjustedHeight = height;
} else if (fixedLayoutVertical) {
- final int paddedHeight = height - padding.top - padding.bottom;
+ final int paddedHeight = height - getPaddingTop() - getPaddingBottom();
adjustedWidth = width;
adjustedHeight = (int) (paddedHeight * lp.centerWithinArea + 0.5f);
} else {
@@ -467,6 +481,7 @@
public static final int CHILD_TYPE_CHALLENGE = 2;
public static final int CHILD_TYPE_USER_SWITCHER = 3;
public static final int CHILD_TYPE_SCRIM = 4;
+ public static final int CHILD_TYPE_PAGE_DELETE_DROP_TARGET = 7;
public int gravity = Gravity.NO_GRAVITY;
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java b/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java
index 2f25835..33c24561 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java
@@ -233,6 +233,7 @@
private Matrix mTmpInvMatrix = new Matrix();
private float[] mTmpPoint = new float[2];
private Rect mTmpRect = new Rect();
+ private Rect mAltTmpRect = new Rect();
// Fling to delete
private int FLING_TO_DELETE_FADE_OUT_DURATION = 350;
@@ -658,10 +659,6 @@
MeasureSpec.makeMeasureSpec(heightSize - verticalPadding, childHeightMode);
child.measure(childWidthMeasureSpec, childHeightMeasureSpec);
- if (shouldSetTopAlignedPivotForWidget(i)) {
- child.setPivotX(child.getWidth() / 2);
- child.setPivotY(0f);
- }
}
setMeasuredDimension(scaledWidthSize, scaledHeightSize);
@@ -1460,7 +1457,7 @@
}
removeView(mDragView);
- onRemoveView(mDragView);
+ onRemoveView(mDragView, false);
addView(mDragView, pageUnderPointIndex);
onAddView(mDragView, pageUnderPointIndex);
mSidePageHoverIndex = -1;
@@ -1590,7 +1587,8 @@
}
//public abstract void onFlingToDelete(View v);
- public abstract void onRemoveView(View v);
+ public abstract void onRemoveView(View v, boolean deletePermanently);
+ public abstract void onRemoveViewAnimationCompleted();
public abstract void onAddView(View v, int index);
private void resetTouchState() {
@@ -2386,6 +2384,7 @@
public void run() {
mDeferringForDelete = false;
onEndReordering();
+ onRemoveViewAnimationCompleted();
}
};
zoomIn(onCompleteRunnable);
@@ -2394,7 +2393,7 @@
slideAnimations.start();
removeView(dragView);
- onRemoveView(dragView);
+ onRemoveView(dragView, true);
}
};
}
@@ -2455,7 +2454,13 @@
/* Drag to delete */
private boolean isHoveringOverDeleteDropTarget(int x, int y) {
if (mDeleteDropTarget != null) {
+ mAltTmpRect.set(0, 0, 0, 0);
+ View parent = (View) mDeleteDropTarget.getParent();
+ if (parent != null) {
+ parent.getGlobalVisibleRect(mAltTmpRect);
+ }
mDeleteDropTarget.getGlobalVisibleRect(mTmpRect);
+ mTmpRect.offset(-mAltTmpRect.left, -mAltTmpRect.top);
return mTmpRect.contains(x, y);
}
return false;
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/SlidingChallengeLayout.java b/policy/src/com/android/internal/policy/impl/keyguard/SlidingChallengeLayout.java
index 6d7d0f0..073225f 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/SlidingChallengeLayout.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/SlidingChallengeLayout.java
@@ -56,7 +56,7 @@
private static final int DRAG_HANDLE_OPEN_ABOVE = 8; // dp
private static final int DRAG_HANDLE_OPEN_BELOW = 0; // dp
- private static final int HANDLE_ANIMATE_DURATION = 200; // ms
+ private static final int HANDLE_ANIMATE_DURATION = 250; // ms
// Drawn to show the drag handle in closed state; crossfades to the challenge view
// when challenge is fully visible
@@ -260,6 +260,7 @@
mChallengeBottomBound = res.getDimensionPixelSize(R.dimen.kg_widget_pager_bottom_padding);
setWillNotDraw(false);
+ setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
public void setHandleAlpha(float alpha) {
@@ -468,24 +469,30 @@
}
@Override
+ public int getBouncerAnimationDuration() {
+ return HANDLE_ANIMATE_DURATION;
+ }
+
+ @Override
public void showBouncer() {
if (mIsBouncing) return;
mWasChallengeShowing = mChallengeShowing;
mIsBouncing = true;
showChallenge(true);
if (mScrimView != null) {
- mScrimView.setVisibility(VISIBLE);
+ Animator anim = ObjectAnimator.ofFloat(mScrimView, "alpha", 1f);
+ anim.setDuration(HANDLE_ANIMATE_DURATION);
+ anim.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animation) {
+ mScrimView.setVisibility(VISIBLE);
+ }
+ });
+ anim.start();
}
if (mChallengeView != null) {
mChallengeView.showBouncer(HANDLE_ANIMATE_DURATION);
}
- // Mess with padding/margin to inset the bouncer frame.
- // We have more space available to us otherwise.
- if (mChallengeView != null) {
- final LayoutParams lp = (LayoutParams) mChallengeView.getLayoutParams();
- lp.leftMargin = lp.rightMargin = getChallengeMargin(false);
- mChallengeView.setLayoutParams(lp);
- }
if (mBouncerListener != null) {
mBouncerListener.onBouncerStateChanged(true);
@@ -497,8 +504,17 @@
if (!mIsBouncing) return;
if (!mWasChallengeShowing) showChallenge(false);
mIsBouncing = false;
+
if (mScrimView != null) {
- mScrimView.setVisibility(GONE);
+ Animator anim = ObjectAnimator.ofFloat(mScrimView, "alpha", 0f);
+ anim.setDuration(HANDLE_ANIMATE_DURATION);
+ anim.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mScrimView.setVisibility(GONE);
+ }
+ });
+ anim.start();
}
if (mChallengeView != null) {
mChallengeView.hideBouncer(HANDLE_ANIMATE_DURATION);
diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java
index 440f8e1..cbd00f3 100644
--- a/services/java/com/android/server/AlarmManagerService.java
+++ b/services/java/com/android/server/AlarmManagerService.java
@@ -22,6 +22,7 @@
import android.app.IAlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -38,6 +39,7 @@
import android.os.WorkSource;
import android.text.TextUtils;
import android.text.format.Time;
+import android.util.Pair;
import android.util.Slog;
import android.util.TimeUtils;
@@ -45,16 +47,18 @@
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.Map;
import java.util.TimeZone;
+import com.android.internal.util.LocalLog;
+
class AlarmManagerService extends IAlarmManager.Stub {
// The threshold for how long an alarm can be late before we print a
// warning message. The time duration is in milliseconds.
@@ -79,7 +83,9 @@
= new Intent().addFlags(Intent.FLAG_FROM_BACKGROUND);
private final Context mContext;
-
+
+ private final LocalLog mLog = new LocalLog(TAG);
+
private Object mLock = new Object();
private final ArrayList<Alarm> mRtcWakeupAlarms = new ArrayList<Alarm>();
@@ -91,7 +97,7 @@
private int mDescriptor;
private int mBroadcastRefCount = 0;
private PowerManager.WakeLock mWakeLock;
- private LinkedList<PendingIntent> mInFlight = new LinkedList<PendingIntent>();
+ private ArrayList<InFlight> mInFlight = new ArrayList<InFlight>();
private final AlarmThread mWaitThread = new AlarmThread();
private final AlarmHandler mHandler = new AlarmHandler();
private ClockReceiver mClockReceiver;
@@ -99,18 +105,59 @@
private final ResultReceiver mResultReceiver = new ResultReceiver();
private final PendingIntent mTimeTickSender;
private final PendingIntent mDateChangeSender;
-
- private static final class FilterStats {
- int count;
+
+ private static final class InFlight extends Intent {
+ final PendingIntent mPendingIntent;
+ final Pair<String, ComponentName> mTarget;
+ final BroadcastStats mBroadcastStats;
+ final FilterStats mFilterStats;
+
+ InFlight(AlarmManagerService service, PendingIntent pendingIntent) {
+ mPendingIntent = pendingIntent;
+ Intent intent = pendingIntent.getIntent();
+ mTarget = intent != null
+ ? new Pair<String, ComponentName>(intent.getAction(), intent.getComponent())
+ : null;
+ mBroadcastStats = service.getStatsLocked(pendingIntent);
+ FilterStats fs = mBroadcastStats.filterStats.get(mTarget);
+ if (fs == null) {
+ fs = new FilterStats(mBroadcastStats, mTarget);
+ mBroadcastStats.filterStats.put(mTarget, fs);
+ }
+ mFilterStats = fs;
+ }
}
-
- private static final class BroadcastStats {
+
+ private static final class FilterStats {
+ final BroadcastStats mBroadcastStats;
+ final Pair<String, ComponentName> mTarget;
+
long aggregateTime;
+ int count;
int numWakeup;
long startTime;
int nesting;
- HashMap<Intent.FilterComparison, FilterStats> filterStats
- = new HashMap<Intent.FilterComparison, FilterStats>();
+
+ FilterStats(BroadcastStats broadcastStats, Pair<String, ComponentName> target) {
+ mBroadcastStats = broadcastStats;
+ mTarget = target;
+ }
+ }
+
+ private static final class BroadcastStats {
+ final String mPackageName;
+
+ long aggregateTime;
+ int count;
+ int numWakeup;
+ long startTime;
+ int nesting;
+ final HashMap<Pair<String, ComponentName>, FilterStats> filterStats
+ = new HashMap<Pair<String, ComponentName>, FilterStats>();
+
+ BroadcastStats(String packageName) {
+ mPackageName = packageName;
+ }
}
private final HashMap<String, BroadcastStats> mBroadcastStats
@@ -496,24 +543,104 @@
dumpAlarmList(pw, mElapsedRealtimeAlarms, " ", "ELAPSED", now);
}
}
-
- pw.println(" ");
+
+ pw.println();
pw.print(" Broadcast ref count: "); pw.println(mBroadcastRefCount);
-
- pw.println(" ");
- pw.println(" Alarm Stats:");
+ pw.println();
+
+ if (mLog.dump(pw, " Recent problems", " ")) {
+ pw.println();
+ }
+
+ final FilterStats[] topFilters = new FilterStats[10];
+ final Comparator<FilterStats> comparator = new Comparator<FilterStats>() {
+ @Override
+ public int compare(FilterStats lhs, FilterStats rhs) {
+ if (lhs.aggregateTime < rhs.aggregateTime) {
+ return 1;
+ } else if (lhs.aggregateTime > rhs.aggregateTime) {
+ return -1;
+ }
+ return 0;
+ }
+ };
+ int len = 0;
for (Map.Entry<String, BroadcastStats> be : mBroadcastStats.entrySet()) {
BroadcastStats bs = be.getValue();
- pw.print(" "); pw.println(be.getKey());
- pw.print(" "); pw.print(bs.aggregateTime);
- pw.print("ms running, "); pw.print(bs.numWakeup);
- pw.println(" wakeups");
- for (Map.Entry<Intent.FilterComparison, FilterStats> fe
+ for (Map.Entry<Pair<String, ComponentName>, FilterStats> fe
: bs.filterStats.entrySet()) {
- pw.print(" "); pw.print(fe.getValue().count);
- pw.print(" alarms: ");
- pw.println(fe.getKey().getIntent().toShortString(
- false, true, false, true));
+ FilterStats fs = fe.getValue();
+ int pos = len > 0
+ ? Arrays.binarySearch(topFilters, 0, len, fs, comparator) : 0;
+ if (pos < 0) {
+ pos = -pos - 1;
+ }
+ if (pos < topFilters.length) {
+ int copylen = topFilters.length - pos - 1;
+ if (copylen > 0) {
+ System.arraycopy(topFilters, pos, topFilters, pos+1, copylen);
+ }
+ topFilters[pos] = fs;
+ if (len < topFilters.length) {
+ len++;
+ }
+ }
+ }
+ }
+ if (len > 0) {
+ pw.println(" Top Alarms:");
+ for (int i=0; i<len; i++) {
+ FilterStats fs = topFilters[i];
+ pw.print(" ");
+ if (fs.nesting > 0) pw.print("*ACTIVE* ");
+ TimeUtils.formatDuration(fs.aggregateTime, pw);
+ pw.print(" running, "); pw.print(fs.numWakeup);
+ pw.print(" wakeups, "); pw.print(fs.count);
+ pw.print(" alarms: "); pw.print(fs.mBroadcastStats.mPackageName);
+ pw.println();
+ pw.print(" ");
+ if (fs.mTarget.first != null) {
+ pw.print(" act="); pw.print(fs.mTarget.first);
+ }
+ if (fs.mTarget.second != null) {
+ pw.print(" cmp="); pw.print(fs.mTarget.second.toShortString());
+ }
+ pw.println();
+ }
+ }
+
+ pw.println(" ");
+ pw.println(" Alarm Stats:");
+ final ArrayList<FilterStats> tmpFilters = new ArrayList<FilterStats>();
+ for (Map.Entry<String, BroadcastStats> be : mBroadcastStats.entrySet()) {
+ BroadcastStats bs = be.getValue();
+ pw.print(" ");
+ if (bs.nesting > 0) pw.print("*ACTIVE* ");
+ pw.print(be.getKey());
+ pw.print(" "); TimeUtils.formatDuration(bs.aggregateTime, pw);
+ pw.print(" running, "); pw.print(bs.numWakeup);
+ pw.println(" wakeups:");
+ tmpFilters.clear();
+ for (Map.Entry<Pair<String, ComponentName>, FilterStats> fe
+ : bs.filterStats.entrySet()) {
+ tmpFilters.add(fe.getValue());
+ }
+ Collections.sort(tmpFilters, comparator);
+ for (int i=0; i<tmpFilters.size(); i++) {
+ FilterStats fs = tmpFilters.get(i);
+ pw.print(" ");
+ if (fs.nesting > 0) pw.print("*ACTIVE* ");
+ TimeUtils.formatDuration(fs.aggregateTime, pw);
+ pw.print(" "); pw.print(fs.numWakeup);
+ pw.print(" wakes " ); pw.print(fs.count);
+ pw.print(" alarms:");
+ if (fs.mTarget.first != null) {
+ pw.print(" act="); pw.print(fs.mTarget.first);
+ }
+ if (fs.mTarget.second != null) {
+ pw.print(" cmp="); pw.print(fs.mTarget.second.toShortString());
+ }
+ pw.println();
}
}
}
@@ -708,18 +835,31 @@
setWakelockWorkSource(alarm.operation);
mWakeLock.acquire();
}
- mInFlight.add(alarm.operation);
+ final InFlight inflight = new InFlight(AlarmManagerService.this,
+ alarm.operation);
+ mInFlight.add(inflight);
mBroadcastRefCount++;
-
- BroadcastStats bs = getStatsLocked(alarm.operation);
+
+ final BroadcastStats bs = inflight.mBroadcastStats;
+ bs.count++;
if (bs.nesting == 0) {
+ bs.nesting = 1;
bs.startTime = nowELAPSED;
} else {
bs.nesting++;
}
+ final FilterStats fs = inflight.mFilterStats;
+ fs.count++;
+ if (fs.nesting == 0) {
+ fs.nesting = 1;
+ fs.startTime = nowELAPSED;
+ } else {
+ fs.nesting++;
+ }
if (alarm.type == AlarmManager.ELAPSED_REALTIME_WAKEUP
|| alarm.type == AlarmManager.RTC_WAKEUP) {
bs.numWakeup++;
+ fs.numWakeup++;
ActivityManagerNative.noteWakeupAlarm(
alarm.operation);
}
@@ -908,44 +1048,58 @@
String pkg = pi.getTargetPackage();
BroadcastStats bs = mBroadcastStats.get(pkg);
if (bs == null) {
- bs = new BroadcastStats();
+ bs = new BroadcastStats(pkg);
mBroadcastStats.put(pkg, bs);
}
return bs;
}
-
+
class ResultReceiver implements PendingIntent.OnFinished {
public void onSendFinished(PendingIntent pi, Intent intent, int resultCode,
String resultData, Bundle resultExtras) {
synchronized (mLock) {
- BroadcastStats bs = getStatsLocked(pi);
- if (bs != null) {
+ InFlight inflight = null;
+ for (int i=0; i<mInFlight.size(); i++) {
+ if (mInFlight.get(i).mPendingIntent == pi) {
+ inflight = mInFlight.remove(i);
+ break;
+ }
+ }
+ if (inflight != null) {
+ final long nowELAPSED = SystemClock.elapsedRealtime();
+ BroadcastStats bs = inflight.mBroadcastStats;
bs.nesting--;
if (bs.nesting <= 0) {
bs.nesting = 0;
- bs.aggregateTime += SystemClock.elapsedRealtime()
- - bs.startTime;
- Intent.FilterComparison fc = new Intent.FilterComparison(intent);
- FilterStats fs = bs.filterStats.get(fc);
- if (fs == null) {
- fs = new FilterStats();
- bs.filterStats.put(fc, fs);
- }
- fs.count++;
+ bs.aggregateTime += nowELAPSED - bs.startTime;
}
+ FilterStats fs = inflight.mFilterStats;
+ fs.nesting--;
+ if (fs.nesting <= 0) {
+ fs.nesting = 0;
+ fs.aggregateTime += nowELAPSED - fs.startTime;
+ }
+ } else {
+ mLog.w("No in-flight alarm for " + pi + " " + intent);
}
- mInFlight.removeFirst();
mBroadcastRefCount--;
if (mBroadcastRefCount == 0) {
mWakeLock.release();
+ if (mInFlight.size() > 0) {
+ mLog.w("Finished all broadcasts with " + mInFlight.size()
+ + " remaining inflights");
+ for (int i=0; i<mInFlight.size(); i++) {
+ mLog.w(" Remaining #" + i + ": " + mInFlight.get(i));
+ }
+ mInFlight.clear();
+ }
} else {
// the next of our alarms is now in flight. reattribute the wakelock.
- final PendingIntent nowInFlight = mInFlight.peekFirst();
- if (nowInFlight != null) {
- setWakelockWorkSource(nowInFlight);
+ if (mInFlight.size() > 0) {
+ setWakelockWorkSource(mInFlight.get(0).mPendingIntent);
} else {
// should never happen
- Slog.e(TAG, "Alarm wakelock still held but sent queue empty");
+ mLog.w("Alarm wakelock still held but sent queue empty");
mWakeLock.setWorkSource(null);
}
}
diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java
index 06d37dc..9590712 100644
--- a/services/java/com/android/server/AppWidgetService.java
+++ b/services/java/com/android/server/AppWidgetService.java
@@ -26,6 +26,8 @@
import android.content.pm.PackageManager;
import android.os.Binder;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -54,13 +56,19 @@
Locale mLocale;
PackageManager mPackageManager;
boolean mSafeMode;
+ private final Handler mSaveStateHandler;
private final SparseArray<AppWidgetServiceImpl> mAppWidgetServices;
AppWidgetService(Context context) {
mContext = context;
+
+ HandlerThread handlerThread = new HandlerThread("AppWidgetService -- Save state");
+ handlerThread.start();
+ mSaveStateHandler = new Handler(handlerThread.getLooper());
+
mAppWidgetServices = new SparseArray<AppWidgetServiceImpl>(5);
- AppWidgetServiceImpl primary = new AppWidgetServiceImpl(context, 0);
+ AppWidgetServiceImpl primary = new AppWidgetServiceImpl(context, 0, mSaveStateHandler);
mAppWidgetServices.append(0, primary);
}
@@ -138,6 +146,11 @@
return getImplForUser(getCallingOrCurrentUserId()).allocateAppWidgetId(
packageName, hostId);
}
+
+ @Override
+ public int[] getAppWidgetIdsForHost(int hostId) throws RemoteException {
+ return getImplForUser(getCallingOrCurrentUserId()).getAppWidgetIdsForHost(hostId);
+ }
@Override
public void deleteAppWidgetId(int appWidgetId) throws RemoteException {
@@ -229,7 +242,7 @@
if (service == null) {
Slog.i(TAG, "Unable to find AppWidgetServiceImpl for user " + userId + ", adding");
// TODO: Verify that it's a valid user
- service = new AppWidgetServiceImpl(mContext, userId);
+ service = new AppWidgetServiceImpl(mContext, userId, mSaveStateHandler);
service.systemReady(mSafeMode);
// Assume that BOOT_COMPLETED was received, as this is a non-primary user.
mAppWidgetServices.append(userId, service);
diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/java/com/android/server/AppWidgetServiceImpl.java
index daa82f2..bba5192 100644
--- a/services/java/com/android/server/AppWidgetServiceImpl.java
+++ b/services/java/com/android/server/AppWidgetServiceImpl.java
@@ -41,7 +41,10 @@
import android.os.Binder;
import android.os.Bundle;
import android.os.Environment;
+import android.os.Handler;
+import android.os.HandlerThread;
import android.os.IBinder;
+import android.os.Looper;
import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -180,15 +183,18 @@
boolean mStateLoaded;
int mMaxWidgetBitmapMemory;
+ private final Handler mSaveStateHandler;
+
// These are for debugging only -- widgets are going missing in some rare instances
ArrayList<Provider> mDeletedProviders = new ArrayList<Provider>();
ArrayList<Host> mDeletedHosts = new ArrayList<Host>();
- AppWidgetServiceImpl(Context context, int userId) {
+ AppWidgetServiceImpl(Context context, int userId, Handler saveStateHandler) {
mContext = context;
mPm = AppGlobals.getPackageManager();
mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
mUserId = userId;
+ mSaveStateHandler = saveStateHandler;
computeMaximumWidgetBitmapMemory();
}
@@ -236,7 +242,7 @@
updateProvidersForPackageLocked(cn.getPackageName(), removedProviders);
}
}
- saveStateLocked();
+ saveStateAsync();
}
}
}
@@ -286,7 +292,7 @@
providersModified |= addProvidersForPackageLocked(pkgName);
}
}
- saveStateLocked();
+ saveStateAsync();
}
} else {
Bundle extras = intent.getExtras();
@@ -297,7 +303,7 @@
ensureStateLoadedLocked();
for (String pkgName : pkgList) {
providersModified |= removeProvidersForPackageLocked(pkgName);
- saveStateLocked();
+ saveStateAsync();
}
}
}
@@ -330,6 +336,7 @@
pw.print(info.autoAdvanceViewId);
pw.print(" initialLayout=#");
pw.print(Integer.toHexString(info.initialLayout));
+ pw.print(" uid="); pw.print(p.uid);
pw.print(" zombie="); pw.println(p.zombie);
}
@@ -410,7 +417,7 @@
private void ensureStateLoadedLocked() {
if (!mStateLoaded) {
- loadAppWidgetList();
+ loadAppWidgetListLocked();
loadStateLocked();
mStateLoaded = true;
}
@@ -431,7 +438,7 @@
host.instances.add(id);
mAppWidgetIds.add(id);
- saveStateLocked();
+ saveStateAsync();
if (DBG) log("Allocating AppWidgetId for " + packageName + " host=" + hostId
+ " id=" + appWidgetId);
return appWidgetId;
@@ -444,7 +451,7 @@
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
if (id != null) {
deleteAppWidgetLocked(id);
- saveStateLocked();
+ saveStateAsync();
}
}
}
@@ -456,7 +463,7 @@
Host host = lookupHostLocked(callingUid, hostId);
if (host != null) {
deleteHostLocked(host);
- saveStateLocked();
+ saveStateAsync();
}
}
}
@@ -475,7 +482,7 @@
}
}
if (changed) {
- saveStateLocked();
+ saveStateAsync();
}
}
}
@@ -591,7 +598,7 @@
// schedule the future updates
registerForBroadcastsLocked(p, getAppWidgetIds(p));
- saveStateLocked();
+ saveStateAsync();
}
} finally {
Binder.restoreCallingIdentity(ident);
@@ -655,8 +662,8 @@
} else {
mPackagesWithBindWidgetPermission.remove(packageName);
}
+ saveStateAsync();
}
- saveStateLocked();
}
// Binds to a specific RemoteViewsService
@@ -693,6 +700,10 @@
}
int userId = UserHandle.getUserId(id.provider.uid);
+ if (userId != mUserId) {
+ Slog.w(TAG, "AppWidgetServiceImpl of user " + mUserId
+ + " binding to provider on user " + userId);
+ }
// Bind to the RemoteViewsService (which will trigger a callback to the
// RemoteViewsAdapter.onServiceConnected())
final long token = Binder.clearCallingIdentity();
@@ -849,13 +860,17 @@
}
public List<AppWidgetProviderInfo> getInstalledProviders() {
+ return getInstalledProviders(AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN);
+ }
+
+ private List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter) {
synchronized (mAppWidgetIds) {
ensureStateLoadedLocked();
final int N = mInstalledProviders.size();
ArrayList<AppWidgetProviderInfo> result = new ArrayList<AppWidgetProviderInfo>(N);
for (int i = 0; i < N; i++) {
Provider p = mInstalledProviders.get(i);
- if (!p.zombie) {
+ if (!p.zombie && (p.info.widgetCategory & categoryFilter) != 0) {
result.add(cloneIfLocalBinder(p.info));
}
}
@@ -893,6 +908,20 @@
}
}
+ private void saveStateAsync() {
+ mSaveStateHandler.post(mSaveStateRunnable);
+ }
+
+ private final Runnable mSaveStateRunnable = new Runnable() {
+ @Override
+ public void run() {
+ synchronized (mAppWidgetIds) {
+ ensureStateLoadedLocked();
+ saveStateLocked();
+ }
+ }
+ };
+
public void updateAppWidgetOptions(int appWidgetId, Bundle options) {
synchronized (mAppWidgetIds) {
options = cloneIfLocalBinder(options);
@@ -913,7 +942,7 @@
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id.appWidgetId);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_OPTIONS, id.options);
mContext.sendBroadcastAsUser(intent, new UserHandle(mUserId));
- saveStateLocked();
+ saveStateAsync();
}
}
@@ -942,6 +971,13 @@
ensureStateLoadedLocked();
for (int i = 0; i < N; i++) {
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetIds[i]);
+ if (id == null) {
+ String message = "AppWidgetId NPE: mUserId=" + mUserId
+ + ", callingUid=" + Binder.getCallingUid()
+ + ", appWidgetIds[i]=" + appWidgetIds[i]
+ + "\n mAppWidgets:\n" + getUserWidgets();
+ throw new NullPointerException(message);
+ }
if (id.views != null) {
// Only trigger a partial update for a widget if it has received a full update
updateAppWidgetInstanceLocked(id, views, true);
@@ -950,6 +986,18 @@
}
}
+ private String getUserWidgets() {
+ StringBuffer sb = new StringBuffer();
+ for (AppWidgetId widget: mAppWidgetIds) {
+ sb.append(" id="); sb.append(widget.appWidgetId);
+ sb.append(", hostUid="); sb.append(widget.host.uid);
+ sb.append(", provider="); sb.append(widget.provider.info.provider.toString());
+ sb.append("\n");
+ }
+ sb.append("\n");
+ return sb.toString();
+ }
+
public void notifyAppWidgetViewDataChanged(int[] appWidgetIds, int viewId) {
if (appWidgetIds == null) {
return;
@@ -1214,7 +1262,7 @@
}
}
- void loadAppWidgetList() {
+ void loadAppWidgetListLocked() {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
try {
List<ResolveInfo> broadcastReceivers = mPm.queryIntentReceivers(intent,
@@ -1334,6 +1382,28 @@
}
}
+ static int[] getAppWidgetIds(Host h) {
+ int instancesSize = h.instances.size();
+ int appWidgetIds[] = new int[instancesSize];
+ for (int i = 0; i < instancesSize; i++) {
+ appWidgetIds[i] = h.instances.get(i).appWidgetId;
+ }
+ return appWidgetIds;
+ }
+
+ public int[] getAppWidgetIdsForHost(int hostId) {
+ synchronized (mAppWidgetIds) {
+ ensureStateLoadedLocked();
+ int callingUid = Binder.getCallingUid();
+ Host host = lookupHostLocked(callingUid, hostId);
+ if (host != null) {
+ return getAppWidgetIds(host);
+ } else {
+ return new int[0];
+ }
+ }
+ }
+
private Provider parseProviderInfoXml(ComponentName component, ResolveInfo ri) {
Provider p = null;
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index b38b016..7ac314b 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -133,7 +133,7 @@
class BackupManagerService extends IBackupManager.Stub {
private static final String TAG = "BackupManagerService";
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
private static final boolean MORE_DEBUG = false;
// Name and current contents version of the full-backup manifest file
diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/java/com/android/server/BluetoothManagerService.java
index 3991029..ea91875 100755
--- a/services/java/com/android/server/BluetoothManagerService.java
+++ b/services/java/com/android/server/BluetoothManagerService.java
@@ -1007,14 +1007,9 @@
sendBluetoothStateCallback(isUp);
//If Bluetooth is off, send service down event to proxy objects, and unbind
- if (!isUp) {
- //Only unbind with mEnable flag not set
- //For race condition: disable and enable back-to-back
- //Avoid unbind right after enable due to callback from disable
- if ((!mEnable) && (mBluetooth != null)) {
- sendBluetoothServiceDownCallback();
- unbindAndFinish();
- }
+ if (!isUp && canUnbindBluetoothService()) {
+ sendBluetoothServiceDownCallback();
+ unbindAndFinish();
}
}
@@ -1062,4 +1057,22 @@
Log.e(TAG,"waitForOnOff time out");
return false;
}
+
+ private boolean canUnbindBluetoothService() {
+ synchronized(mConnection) {
+ //Only unbind with mEnable flag not set
+ //For race condition: disable and enable back-to-back
+ //Avoid unbind right after enable due to callback from disable
+ //Only unbind with Bluetooth at OFF state
+ //Only unbind without any MESSAGE_BLUETOOTH_STATE_CHANGE message
+ try {
+ if (mEnable || (mBluetooth == null)) return false;
+ if (mHandler.hasMessages(MESSAGE_BLUETOOTH_STATE_CHANGE)) return false;
+ return (mBluetooth.getState() == BluetoothAdapter.STATE_OFF);
+ } catch (RemoteException e) {
+ Log.e(TAG, "getState()", e);
+ }
+ }
+ return false;
+ }
}
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index 033aa1e..a7c4d73 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -629,7 +629,7 @@
wimaxStateTrackerClassName = context.getResources().getString(
com.android.internal.R.string.config_wimaxStateTrackerClassname);
- log("wimaxJarLocation: " + wimaxJarLocation);
+ if (DBG) log("wimaxJarLocation: " + wimaxJarLocation);
wimaxClassLoader = new DexClassLoader(wimaxJarLocation,
new ContextWrapper(context).getCacheDir().getAbsolutePath(),
wimaxLibLocation, ClassLoader.getSystemClassLoader());
@@ -648,7 +648,7 @@
}
try {
- log("Starting Wimax Service... ");
+ if (DBG) log("Starting Wimax Service... ");
Constructor wmxStTrkrConst = wimaxStateTrackerClass.getConstructor
(new Class[] {Context.class, Handler.class});
@@ -2686,18 +2686,8 @@
state + "/" + info.getDetailedState());
}
- // Connectivity state changed:
- // [31-14] Reserved for future use
- // [13-10] Network subtype (for mobile network, as defined
- // by TelephonyManager)
- // [9-4] Detailed state ordinal (as defined by
- // NetworkInfo.DetailedState)
- // [3-0] Network type (as defined by ConnectivityManager)
- int eventLogParam = (info.getType() & 0xf) |
- ((info.getDetailedState().ordinal() & 0x3f) << 4) |
- (info.getSubtype() << 10);
- EventLog.writeEvent(EventLogTags.CONNECTIVITY_STATE_CHANGED,
- eventLogParam);
+ EventLogTags.writeConnectivityStateChanged(
+ info.getType(), info.getSubtype(), info.getDetailedState().ordinal());
if (info.getDetailedState() ==
NetworkInfo.DetailedState.FAILED) {
diff --git a/services/java/com/android/server/DevicePolicyManagerService.java b/services/java/com/android/server/DevicePolicyManagerService.java
index a5e26a8..5ba71a4 100644
--- a/services/java/com/android/server/DevicePolicyManagerService.java
+++ b/services/java/com/android/server/DevicePolicyManagerService.java
@@ -1875,28 +1875,32 @@
DeviceAdminInfo.USES_POLICY_WIPE_DATA);
long ident = Binder.clearCallingIdentity();
try {
- if (userHandle == UserHandle.USER_OWNER) {
- wipeDataLocked(flags);
- } else {
- lockNowUnchecked();
- mHandler.post(new Runnable() {
- public void run() {
- try {
- ActivityManagerNative.getDefault().switchUser(0);
- ((UserManager) mContext.getSystemService(Context.USER_SERVICE))
- .removeUser(userHandle);
- } catch (RemoteException re) {
- // Shouldn't happen
- }
- }
- });
- }
+ wipeDeviceOrUserLocked(flags, userHandle);
} finally {
Binder.restoreCallingIdentity(ident);
}
}
}
+ private void wipeDeviceOrUserLocked(int flags, final int userHandle) {
+ if (userHandle == UserHandle.USER_OWNER) {
+ wipeDataLocked(flags);
+ } else {
+ lockNowUnchecked();
+ mHandler.post(new Runnable() {
+ public void run() {
+ try {
+ ActivityManagerNative.getDefault().switchUser(0);
+ ((UserManager) mContext.getSystemService(Context.USER_SERVICE))
+ .removeUser(userHandle);
+ } catch (RemoteException re) {
+ // Shouldn't happen
+ }
+ }
+ });
+ }
+ }
+
public void getRemoveWarning(ComponentName comp, final RemoteCallback result, int userHandle) {
enforceCrossUserPermission(userHandle);
mContext.enforceCallingOrSelfPermission(
@@ -1996,7 +2000,7 @@
saveSettingsLocked(userHandle);
int max = getMaximumFailedPasswordsForWipe(null, userHandle);
if (max > 0 && policy.mFailedPasswordAttempts >= max) {
- wipeDataLocked(0);
+ wipeDeviceOrUserLocked(0, userHandle);
}
sendAdminCommandLocked(DeviceAdminReceiver.ACTION_PASSWORD_FAILED,
DeviceAdminInfo.USES_POLICY_WATCH_LOGIN, userHandle);
diff --git a/services/java/com/android/server/EventLogTags.logtags b/services/java/com/android/server/EventLogTags.logtags
index 0fe66fc..8bc2da2 100644
--- a/services/java/com/android/server/EventLogTags.logtags
+++ b/services/java/com/android/server/EventLogTags.logtags
@@ -135,12 +135,8 @@
# ---------------------------
# ConnectivityService.java
# ---------------------------
-# Connectivity state changed:
-# [31-14] Reserved for future use
-# [13-10] Network subtype (for mobile network, as defined by TelephonyManager)
-# [ 9- 4] Detailed state ordinal (as defined by NetworkInfo.DetailedState)
-# [ 3- 0] Network type (as defined by ConnectivityManager)
-50020 connectivity_state_changed (custom|1|5)
+# Connectivity state changed
+50020 connectivity_state_changed (type|1),(subtype|1),(state|1)
# ---------------------------
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index c9ff595..8eb532d 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -386,6 +386,7 @@
private Locale mLastSystemLocale;
private final MyPackageMonitor mMyPackageMonitor = new MyPackageMonitor();
private final IPackageManager mIPackageManager;
+ private boolean mInputBoundToKeyguard;
class SettingsObserver extends ContentObserver {
SettingsObserver(Handler handler) {
@@ -877,10 +878,12 @@
final boolean hardKeyShown = haveHardKeyboard
&& conf.hardKeyboardHidden
!= Configuration.HARDKEYBOARDHIDDEN_YES;
- final boolean isScreenLocked = mKeyguardManager != null
- && mKeyguardManager.isKeyguardLocked()
- && mKeyguardManager.isKeyguardSecure();
- mImeWindowVis = (!isScreenLocked && (mInputShown || hardKeyShown)) ?
+ final boolean isScreenLocked =
+ mKeyguardManager != null && mKeyguardManager.isKeyguardLocked();
+ final boolean isScreenSecurelyLocked =
+ isScreenLocked && mKeyguardManager.isKeyguardSecure();
+ final boolean inputShown = mInputShown && (!isScreenLocked || mInputBoundToKeyguard);
+ mImeWindowVis = (!isScreenSecurelyLocked && (inputShown || hardKeyShown)) ?
(InputMethodService.IME_ACTIVE | InputMethodService.IME_VISIBLE) : 0;
updateImeWindowStatusLocked();
}
@@ -1124,6 +1127,13 @@
return mNoBinding;
}
+ if (mCurClient == null) {
+ mInputBoundToKeyguard = mKeyguardManager != null && mKeyguardManager.isKeyguardLocked();
+ if (DEBUG) {
+ Slog.v(TAG, "New bind. keyguard = " + mInputBoundToKeyguard);
+ }
+ }
+
if (mCurClient != cs) {
// If the client is changing, we need to switch over to the new
// one.
@@ -1814,9 +1824,9 @@
public InputBindResult windowGainedFocus(IInputMethodClient client, IBinder windowToken,
int controlFlags, int softInputMode, int windowFlags,
EditorInfo attribute, IInputContext inputContext) {
- if (!calledFromValidUser()) {
- return null;
- }
+ // Needs to check the validity before clearing calling identity
+ final boolean calledFromValidUser = calledFromValidUser();
+
InputBindResult res = null;
long ident = Binder.clearCallingIdentity();
try {
@@ -1846,6 +1856,14 @@
} catch (RemoteException e) {
}
+ if (!calledFromValidUser) {
+ Slog.w(TAG, "A background user is requesting window. Hiding IME.");
+ Slog.w(TAG, "If you want to interect with IME, you need "
+ + "android.permission.INTERACT_ACROSS_USERS_FULL");
+ hideCurrentInputLocked(0, null);
+ return null;
+ }
+
if (mCurFocusedWindow == windowToken) {
Slog.w(TAG, "Window already focused, ignoring focus gain of: " + client
+ " attribute=" + attribute + ", token = " + windowToken);
@@ -2486,10 +2504,8 @@
map.put(id, p);
// Valid system default IMEs and IMEs that have English subtypes are enabled
- // by default, unless there's a hard keyboard and the system IME was explicitly
- // disabled
- if ((isValidSystemDefaultIme(p, mContext) || isSystemImeThatHasEnglishSubtype(p))
- && (!haveHardKeyboard || disabledSysImes.indexOf(id) < 0)) {
+ // by default
+ if ((isValidSystemDefaultIme(p, mContext) || isSystemImeThatHasEnglishSubtype(p))) {
setInputMethodEnabledLocked(id, true);
}
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index 2290505..7a55497c 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -506,7 +506,7 @@
}
} else {
Intent statusChanged = new Intent();
- statusChanged.putExtras(extras);
+ statusChanged.putExtras(new Bundle(extras));
statusChanged.putExtra(LocationManager.KEY_STATUS_CHANGED, status);
try {
synchronized (this) {
@@ -541,7 +541,7 @@
}
} else {
Intent locationChanged = new Intent();
- locationChanged.putExtra(LocationManager.KEY_LOCATION_CHANGED, location);
+ locationChanged.putExtra(LocationManager.KEY_LOCATION_CHANGED, new Location(location));
try {
synchronized (this) {
// synchronize to ensure incrementPendingBroadcastsLocked()
@@ -1214,8 +1214,8 @@
throw new IllegalArgumentException("provider doesn't exisit: " + provider);
}
- Log.i(TAG, "request " + Integer.toHexString(System.identityHashCode(receiver)) + " " +
- name + " " + request + " from " + packageName + "(" + uid + ")");
+ if (D) Log.d(TAG, "request " + Integer.toHexString(System.identityHashCode(receiver))
+ + " " + name + " " + request + " from " + packageName + "(" + uid + ")");
UpdateRecord record = new UpdateRecord(name, request, receiver);
UpdateRecord oldRecord = receiver.mUpdateRecords.put(name, record);
@@ -1253,7 +1253,7 @@
}
private void removeUpdatesLocked(Receiver receiver) {
- Log.i(TAG, "remove " + Integer.toHexString(System.identityHashCode(receiver)));
+ if (D) Log.i(TAG, "remove " + Integer.toHexString(System.identityHashCode(receiver)));
if (mReceivers.remove(receiver.mKey) != null && receiver.isListener()) {
receiver.getListener().asBinder().unlinkToDeath(receiver, 0);
diff --git a/services/java/com/android/server/MountService.java b/services/java/com/android/server/MountService.java
index c512bc1..ad28a36 100644
--- a/services/java/com/android/server/MountService.java
+++ b/services/java/com/android/server/MountService.java
@@ -57,6 +57,8 @@
import android.util.Slog;
import android.util.Xml;
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IMediaContainerService;
import com.android.internal.util.Preconditions;
import com.android.internal.util.XmlUtils;
@@ -181,13 +183,13 @@
/** When defined, base template for user-specific {@link StorageVolume}. */
private StorageVolume mEmulatedTemplate;
- // @GuardedBy("mVolumesLock")
+ @GuardedBy("mVolumesLock")
private final ArrayList<StorageVolume> mVolumes = Lists.newArrayList();
/** Map from path to {@link StorageVolume} */
- // @GuardedBy("mVolumesLock")
+ @GuardedBy("mVolumesLock")
private final HashMap<String, StorageVolume> mVolumesByPath = Maps.newHashMap();
/** Map from path to state */
- // @GuardedBy("mVolumesLock")
+ @GuardedBy("mVolumesLock")
private final HashMap<String, String> mVolumeStates = Maps.newHashMap();
private volatile boolean mSystemReady = false;
@@ -198,8 +200,8 @@
// Used as a lock for methods that register/unregister listeners.
final private ArrayList<MountServiceBinderListener> mListeners =
new ArrayList<MountServiceBinderListener>();
- private CountDownLatch mConnectedSignal = new CountDownLatch(1);
- private CountDownLatch mAsecsScanned = new CountDownLatch(1);
+ private final CountDownLatch mConnectedSignal = new CountDownLatch(1);
+ private final CountDownLatch mAsecsScanned = new CountDownLatch(1);
private boolean mSendUmsConnectedOnBoot = false;
/**
@@ -495,10 +497,6 @@
}
private void waitForLatch(CountDownLatch latch) {
- if (latch == null) {
- return;
- }
-
for (;;) {
try {
if (latch.await(5000, TimeUnit.MILLISECONDS)) {
@@ -738,14 +736,12 @@
* the hounds!
*/
mConnectedSignal.countDown();
- mConnectedSignal = null;
// Let package manager load internal ASECs.
mPms.scanAvailableAsecs();
// Notify people waiting for ASECs to be scanned that it's done.
mAsecsScanned.countDown();
- mAsecsScanned = null;
}
}.start();
}
@@ -2571,7 +2567,7 @@
}
}
- // @VisibleForTesting
+ @VisibleForTesting
public static String buildObbPath(final String canonicalPath, int userId, boolean forVold) {
// TODO: allow caller to provide Environment for full testing
diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/java/com/android/server/NativeDaemonConnector.java
index 92af9a9..5e94a9fc 100644
--- a/services/java/com/android/server/NativeDaemonConnector.java
+++ b/services/java/com/android/server/NativeDaemonConnector.java
@@ -25,6 +25,7 @@
import android.util.LocalLog;
import android.util.Slog;
+import com.android.internal.annotations.VisibleForTesting;
import com.google.android.collect.Lists;
import java.nio.charset.Charsets;
@@ -400,7 +401,7 @@
* Append the given argument to {@link StringBuilder}, escaping as needed,
* and surrounding with quotes when it contains spaces.
*/
- // @VisibleForTesting
+ @VisibleForTesting
static void appendEscaped(StringBuilder builder, String arg) {
final boolean hasSpaces = arg.indexOf(' ') >= 0;
if (hasSpaces) {
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
index 0e171cd..e2be577 100755
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/java/com/android/server/NotificationManagerService.java
@@ -101,6 +101,7 @@
private static final int SHORT_DELAY = 2000; // 2 seconds
private static final long[] DEFAULT_VIBRATE_PATTERN = {0, 250, 250, 250};
+ private static final int VIBRATE_PATTERN_MAXLEN = 8 * 2 + 1; // up to eight bumps
private static final int DEFAULT_STREAM_TYPE = AudioManager.STREAM_NOTIFICATION;
private static final boolean SCORE_ONGOING_HIGHER = false;
@@ -125,6 +126,9 @@
private int mDefaultNotificationLedOn;
private int mDefaultNotificationLedOff;
+ private long[] mDefaultVibrationPattern;
+ private long[] mFallbackVibrationPattern;
+
private boolean mSystemReady;
private int mDisabledNotifications;
@@ -596,6 +600,19 @@
}
}
+ static long[] getLongArray(Resources r, int resid, int maxlen, long[] def) {
+ int[] ar = r.getIntArray(resid);
+ if (ar == null) {
+ return def;
+ }
+ final int len = ar.length > maxlen ? maxlen : ar.length;
+ long[] out = new long[len];
+ for (int i=0; i<len; i++) {
+ out[i] = ar[i];
+ }
+ return out;
+ }
+
NotificationManagerService(Context context, StatusBarManagerService statusBar,
LightsService lights)
{
@@ -622,6 +639,16 @@
mDefaultNotificationLedOff = resources.getInteger(
com.android.internal.R.integer.config_defaultNotificationLedOff);
+ mDefaultVibrationPattern = getLongArray(resources,
+ com.android.internal.R.array.config_defaultNotificationVibePattern,
+ VIBRATE_PATTERN_MAXLEN,
+ DEFAULT_VIBRATE_PATTERN);
+
+ mFallbackVibrationPattern = getLongArray(resources,
+ com.android.internal.R.array.config_notificationFallbackVibePattern,
+ VIBRATE_PATTERN_MAXLEN,
+ DEFAULT_VIBRATE_PATTERN);
+
// Don't start allowing notifications until the setup wizard has run once.
// After that, including subsequent boots, init with notifications turned on.
// This works on the first boot because the setup wizard will toggle this
@@ -1050,16 +1077,27 @@
final AudioManager audioManager = (AudioManager) mContext
.getSystemService(Context.AUDIO_SERVICE);
+
// sound
final boolean useDefaultSound =
(notification.defaults & Notification.DEFAULT_SOUND) != 0;
- if (useDefaultSound || notification.sound != null) {
- Uri uri;
- if (useDefaultSound) {
- uri = Settings.System.DEFAULT_NOTIFICATION_URI;
- } else {
- uri = notification.sound;
- }
+
+ Uri soundUri = null;
+ boolean hasValidSound = false;
+
+ if (useDefaultSound) {
+ soundUri = Settings.System.DEFAULT_NOTIFICATION_URI;
+
+ // check to see if the default notification sound is silent
+ ContentResolver resolver = mContext.getContentResolver();
+ hasValidSound = Settings.System.getString(resolver,
+ Settings.System.NOTIFICATION_SOUND) != null;
+ } else if (notification.sound != null) {
+ soundUri = notification.sound;
+ hasValidSound = (soundUri != null);
+ }
+
+ if (hasValidSound) {
boolean looping = (notification.flags & Notification.FLAG_INSISTENT) != 0;
int audioStreamType;
if (notification.audioStreamType >= 0) {
@@ -1076,7 +1114,7 @@
try {
final IRingtonePlayer player = mAudioService.getRingtonePlayer();
if (player != null) {
- player.playAsync(uri, user, looping, audioStreamType);
+ player.playAsync(soundUri, user, looping, audioStreamType);
}
} catch (RemoteException e) {
} finally {
@@ -1086,15 +1124,40 @@
}
// vibrate
+ // Does the notification want to specify its own vibration?
+ final boolean hasCustomVibrate = notification.vibrate != null;
+
+ // new in 4.2: if there was supposed to be a sound and we're in vibrate mode,
+ // and no other vibration is specified, we fall back to vibration
+ final boolean convertSoundToVibration =
+ !hasCustomVibrate
+ && hasValidSound
+ && (audioManager.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE);
+
+ // The DEFAULT_VIBRATE flag trumps any custom vibration AND the fallback.
final boolean useDefaultVibrate =
- (notification.defaults & Notification.DEFAULT_VIBRATE) != 0;
- if ((useDefaultVibrate || notification.vibrate != null)
+ (notification.defaults & Notification.DEFAULT_VIBRATE) != 0;
+
+ if ((useDefaultVibrate || convertSoundToVibration || hasCustomVibrate)
&& !(audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT)) {
mVibrateNotification = r;
- mVibrator.vibrate(useDefaultVibrate ? DEFAULT_VIBRATE_PATTERN
- : notification.vibrate,
- ((notification.flags & Notification.FLAG_INSISTENT) != 0) ? 0: -1);
+ if (useDefaultVibrate || convertSoundToVibration) {
+ // Escalate privileges so we can use the vibrator even if the notifying app
+ // does not have the VIBRATE permission.
+ long identity = Binder.clearCallingIdentity();
+ try {
+ mVibrator.vibrate(useDefaultVibrate ? mDefaultVibrationPattern
+ : mFallbackVibrationPattern,
+ ((notification.flags & Notification.FLAG_INSISTENT) != 0) ? 0: -1);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ } else if (notification.vibrate.length > 1) {
+ // If you want your own vibration pattern, you need the VIBRATE permission
+ mVibrator.vibrate(notification.vibrate,
+ ((notification.flags & Notification.FLAG_INSISTENT) != 0) ? 0: -1);
+ }
}
}
@@ -1261,6 +1324,10 @@
if (!notificationMatchesUserId(r, userId)) {
continue;
}
+ // Don't remove notifications to all, if there's no package name specified
+ if (r.userId == UserHandle.USER_ALL && pkg == null) {
+ continue;
+ }
if ((r.notification.flags & mustHaveFlags) != mustHaveFlags) {
continue;
}
diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java
index 35999ea..5c24e67 100644
--- a/services/java/com/android/server/am/ActiveServices.java
+++ b/services/java/com/android/server/am/ActiveServices.java
@@ -1090,11 +1090,8 @@
boolean created = false;
try {
- mAm.mStringBuilder.setLength(0);
- r.intent.getIntent().toShortString(mAm.mStringBuilder, true, false, true, false);
- EventLog.writeEvent(EventLogTags.AM_CREATE_SERVICE,
- r.userId, System.identityHashCode(r), r.shortName,
- mAm.mStringBuilder.toString(), r.app.pid);
+ EventLogTags.writeAmCreateService(
+ r.userId, System.identityHashCode(r), r.shortName, r.app.pid);
synchronized (r.stats.getBatteryStats()) {
r.stats.startLaunchedLocked();
}
@@ -1242,9 +1239,8 @@
}
if (DEBUG_SERVICE) Slog.v(TAG, "Bringing down " + r + " " + r.intent);
- EventLog.writeEvent(EventLogTags.AM_DESTROY_SERVICE,
- r.userId, System.identityHashCode(r), r.shortName,
- (r.app != null) ? r.app.pid : -1);
+ EventLogTags.writeAmDestroyService(
+ r.userId, System.identityHashCode(r), (r.app != null) ? r.app.pid : -1);
mServiceMap.removeServiceByName(r.name, r.userId);
mServiceMap.removeServiceByIntent(r.intent, r.userId);
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index d2cd646..82c9030 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -4764,6 +4764,18 @@
return false;
}
+ public Intent getIntentForIntentSender(IIntentSender pendingResult) {
+ if (!(pendingResult instanceof PendingIntentRecord)) {
+ return null;
+ }
+ try {
+ PendingIntentRecord res = (PendingIntentRecord)pendingResult;
+ return res.key.requestIntent != null ? new Intent(res.key.requestIntent) : null;
+ } catch (ClassCastException e) {
+ }
+ return null;
+ }
+
public void setProcessLimit(int max) {
enforceCallingPermission(android.Manifest.permission.SET_PROCESS_LIMIT,
"setProcessLimit()");
@@ -14168,7 +14180,7 @@
// Once the internal notion of the active user has switched, we lock the device
// with the option to show the user switcher on the keyguard.
- mWindowManager.lockNow(LockPatternUtils.USER_SWITCH_LOCK_OPTIONS);
+ mWindowManager.lockNow(null);
final UserStartedState uss = mStartedUsers.get(userId);
@@ -14229,6 +14241,7 @@
startHomeActivityLocked(userId);
}
+ EventLogTags.writeAmSwitchUser(userId);
getUserManagerLocked().userForeground(userId);
sendUserSwitchBroadcastsLocked(oldUserId, userId);
if (needStart) {
diff --git a/services/java/com/android/server/am/EventLogTags.logtags b/services/java/com/android/server/am/EventLogTags.logtags
index 6ee7507..f784861 100644
--- a/services/java/com/android/server/am/EventLogTags.logtags
+++ b/services/java/com/android/server/am/EventLogTags.logtags
@@ -63,9 +63,9 @@
30024 am_broadcast_discard_filter (User|1|5),(Broadcast|1|5),(Action|3),(Receiver Number|1|1),(BroadcastFilter|1|5)
30025 am_broadcast_discard_app (User|1|5),(Broadcast|1|5),(Action|3),(Receiver Number|1|1),(App|3)
# A service is being created
-30030 am_create_service (User|1|5),(Service Record|1|5),(Name|3),(Intent|3),(PID|1|5)
+30030 am_create_service (User|1|5),(Service Record|1|5),(Name|3),(PID|1|5)
# A service is being destroyed
-30031 am_destroy_service (User|1|5),(Service Record|1|5),(Name|3),(PID|1|5)
+30031 am_destroy_service (User|1|5),(Service Record|1|5),(PID|1|5)
# A process has crashed too many times, it is being cleared
30032 am_process_crashed_too_much (User|1|5),(Name|3),(PID|1|5)
# An unknown process is trying to attach to the activity manager
@@ -83,3 +83,6 @@
30039 am_crash (User|1|5),(PID|1|5),(Process Name|3),(Flags|1|5),(Exception|3),(Message|3),(File|3),(Line|1|5)
# Log.wtf() called
30040 am_wtf (User|1|5),(PID|1|5),(Process Name|3),(Flags|1|5),(Tag|3),(Message|3)
+
+# User switched
+30041 am_switch_user (id|1|5)
diff --git a/services/java/com/android/server/display/PersistentDataStore.java b/services/java/com/android/server/display/PersistentDataStore.java
index 3a6e1a6..105c253 100644
--- a/services/java/com/android/server/display/PersistentDataStore.java
+++ b/services/java/com/android/server/display/PersistentDataStore.java
@@ -81,6 +81,15 @@
}
}
+ public WifiDisplay getRememberedWifiDisplay(String deviceAddress) {
+ loadIfNeeded();
+ int index = findRememberedWifiDisplay(deviceAddress);
+ if (index >= 0) {
+ return mRememberedWifiDisplays.get(index);
+ }
+ return null;
+ }
+
public WifiDisplay[] getRememberedWifiDisplays() {
loadIfNeeded();
return mRememberedWifiDisplays.toArray(new WifiDisplay[mRememberedWifiDisplays.size()]);
@@ -137,22 +146,6 @@
return true;
}
- public boolean renameWifiDisplay(String deviceAddress, String alias) {
- int index = findRememberedWifiDisplay(deviceAddress);
- if (index >= 0) {
- WifiDisplay display = mRememberedWifiDisplays.get(index);
- if (Objects.equal(display.getDeviceAlias(), alias)) {
- return false; // already has this alias
- }
- WifiDisplay renamedDisplay = new WifiDisplay(deviceAddress,
- display.getDeviceName(), alias);
- mRememberedWifiDisplays.set(index, renamedDisplay);
- setDirty();
- return true;
- }
- return false;
- }
-
public boolean forgetWifiDisplay(String deviceAddress) {
int index = findRememberedWifiDisplay(deviceAddress);
if (index >= 0) {
diff --git a/services/java/com/android/server/display/WifiDisplayAdapter.java b/services/java/com/android/server/display/WifiDisplayAdapter.java
index 45fff30..c8a44d2 100644
--- a/services/java/com/android/server/display/WifiDisplayAdapter.java
+++ b/services/java/com/android/server/display/WifiDisplayAdapter.java
@@ -45,6 +45,8 @@
import java.io.PrintWriter;
import java.util.Arrays;
+import libcore.util.Objects;
+
/**
* Connects to Wifi displays that implement the Miracast protocol.
* <p>
@@ -224,16 +226,18 @@
}
}
- if (mPersistentDataStore.renameWifiDisplay(address, alias)) {
- mPersistentDataStore.saveIfNeeded();
- updateRememberedDisplaysLocked();
- scheduleStatusChangedBroadcastLocked();
+ WifiDisplay display = mPersistentDataStore.getRememberedWifiDisplay(address);
+ if (display != null && !Objects.equal(display.getDeviceAlias(), alias)) {
+ display = new WifiDisplay(address, display.getDeviceName(), alias);
+ if (mPersistentDataStore.rememberWifiDisplay(display)) {
+ mPersistentDataStore.saveIfNeeded();
+ updateRememberedDisplaysLocked();
+ scheduleStatusChangedBroadcastLocked();
+ }
}
- if (mActiveDisplay != null && mActiveDisplay.getDeviceAddress().equals(address)
- && mDisplayDevice != null) {
- mDisplayDevice.setNameLocked(mActiveDisplay.getFriendlyDisplayName());
- sendDisplayDeviceEventLocked(mDisplayDevice, DISPLAY_DEVICE_EVENT_CHANGED);
+ if (mActiveDisplay != null && mActiveDisplay.getDeviceAddress().equals(address)) {
+ renameDisplayDeviceLocked(mActiveDisplay.getFriendlyDisplayName());
}
}
@@ -272,9 +276,42 @@
mAvailableDisplays = mPersistentDataStore.applyWifiDisplayAliases(mAvailableDisplays);
}
- private void handleConnectLocked(WifiDisplay display,
+ private void fixRememberedDisplayNamesFromAvailableDisplaysLocked() {
+ // It may happen that a display name has changed since it was remembered.
+ // Consult the list of available displays and update the name if needed.
+ // We don't do anything special for the active display here. The display
+ // controller will send a separate event when it needs to be updates.
+ boolean changed = false;
+ for (int i = 0; i < mRememberedDisplays.length; i++) {
+ WifiDisplay rememberedDisplay = mRememberedDisplays[i];
+ WifiDisplay availableDisplay = findAvailableDisplayLocked(
+ rememberedDisplay.getDeviceAddress());
+ if (availableDisplay != null && !rememberedDisplay.equals(availableDisplay)) {
+ if (DEBUG) {
+ Slog.d(TAG, "fixRememberedDisplayNamesFromAvailableDisplaysLocked: "
+ + "updating remembered display to " + availableDisplay);
+ }
+ mRememberedDisplays[i] = availableDisplay;
+ changed |= mPersistentDataStore.rememberWifiDisplay(availableDisplay);
+ }
+ }
+ if (changed) {
+ mPersistentDataStore.saveIfNeeded();
+ }
+ }
+
+ private WifiDisplay findAvailableDisplayLocked(String address) {
+ for (WifiDisplay display : mAvailableDisplays) {
+ if (display.getDeviceAddress().equals(address)) {
+ return display;
+ }
+ }
+ return null;
+ }
+
+ private void addDisplayDeviceLocked(WifiDisplay display,
Surface surface, int width, int height, int flags) {
- handleDisconnectLocked();
+ removeDisplayDeviceLocked();
if (mPersistentDataStore.rememberWifiDisplay(display)) {
mPersistentDataStore.saveIfNeeded();
@@ -303,7 +340,7 @@
scheduleUpdateNotificationLocked();
}
- private void handleDisconnectLocked() {
+ private void removeDisplayDeviceLocked() {
if (mDisplayDevice != null) {
mDisplayDevice.clearSurfaceLocked();
sendDisplayDeviceEventLocked(mDisplayDevice, DISPLAY_DEVICE_EVENT_REMOVED);
@@ -313,6 +350,13 @@
}
}
+ private void renameDisplayDeviceLocked(String name) {
+ if (mDisplayDevice != null && !mDisplayDevice.getNameLocked().equals(name)) {
+ mDisplayDevice.setNameLocked(name);
+ sendDisplayDeviceEventLocked(mDisplayDevice, DISPLAY_DEVICE_EVENT_CHANGED);
+ }
+ }
+
private void scheduleStatusChangedBroadcastLocked() {
mCurrentStatus = null;
if (!mPendingStatusChangeBroadcast) {
@@ -446,6 +490,7 @@
|| !Arrays.equals(mAvailableDisplays, availableDisplays)) {
mScanState = WifiDisplayStatus.SCAN_STATE_NOT_SCANNING;
mAvailableDisplays = availableDisplays;
+ fixRememberedDisplayNamesFromAvailableDisplaysLocked();
scheduleStatusChangedBroadcastLocked();
}
}
@@ -483,7 +528,7 @@
int width, int height, int flags) {
synchronized (getSyncRoot()) {
display = mPersistentDataStore.applyWifiDisplayAlias(display);
- handleConnectLocked(display, surface, width, height, flags);
+ addDisplayDeviceLocked(display, surface, width, height, flags);
if (mActiveDisplayState != WifiDisplayStatus.DISPLAY_STATE_CONNECTED
|| mActiveDisplay == null
@@ -496,10 +541,24 @@
}
@Override
+ public void onDisplayChanged(WifiDisplay display) {
+ synchronized (getSyncRoot()) {
+ display = mPersistentDataStore.applyWifiDisplayAlias(display);
+ if (mActiveDisplay != null
+ && mActiveDisplay.hasSameAddress(display)
+ && !mActiveDisplay.equals(display)) {
+ mActiveDisplay = display;
+ renameDisplayDeviceLocked(display.getFriendlyDisplayName());
+ scheduleStatusChangedBroadcastLocked();
+ }
+ }
+ }
+
+ @Override
public void onDisplayDisconnected() {
// Stop listening.
synchronized (getSyncRoot()) {
- handleDisconnectLocked();
+ removeDisplayDeviceLocked();
if (mActiveDisplayState != WifiDisplayStatus.DISPLAY_STATE_NOT_CONNECTED
|| mActiveDisplay != null) {
diff --git a/services/java/com/android/server/display/WifiDisplayController.java b/services/java/com/android/server/display/WifiDisplayController.java
index 39d042f..886e049 100644
--- a/services/java/com/android/server/display/WifiDisplayController.java
+++ b/services/java/com/android/server/display/WifiDisplayController.java
@@ -120,6 +120,12 @@
// or are not trying to connect.
private WifiP2pDevice mConnectingDevice;
+ // The device from which we are currently disconnecting.
+ private WifiP2pDevice mDisconnectingDevice;
+
+ // The device to which we were previously trying to connect and are now canceling.
+ private WifiP2pDevice mCancelingDevice;
+
// The device to which we are currently connected, which means we have an active P2P group.
private WifiP2pDevice mConnectedDevice;
@@ -186,6 +192,7 @@
updateWfdEnableState();
}
+ @Override
public void dump(PrintWriter pw) {
pw.println("mWifiDisplayOnSetting=" + mWifiDisplayOnSetting);
pw.println("mWifiP2pEnabled=" + mWifiP2pEnabled);
@@ -196,6 +203,8 @@
pw.println("mDiscoverPeersRetriesLeft=" + mDiscoverPeersRetriesLeft);
pw.println("mDesiredDevice=" + describeWifiP2pDevice(mDesiredDevice));
pw.println("mConnectingDisplay=" + describeWifiP2pDevice(mConnectingDevice));
+ pw.println("mDisconnectingDisplay=" + describeWifiP2pDevice(mDisconnectingDevice));
+ pw.println("mCancelingDisplay=" + describeWifiP2pDevice(mCancelingDevice));
pw.println("mConnectedDevice=" + describeWifiP2pDevice(mConnectedDevice));
pw.println("mConnectionRetriesLeft=" + mConnectionRetriesLeft);
pw.println("mRemoteDisplay=" + mRemoteDisplay);
@@ -384,7 +393,9 @@
final int count = mAvailableWifiDisplayPeers.size();
final WifiDisplay[] displays = WifiDisplay.CREATOR.newArray(count);
for (int i = 0; i < count; i++) {
- displays[i] = createWifiDisplay(mAvailableWifiDisplayPeers.get(i));
+ WifiP2pDevice device = mAvailableWifiDisplayPeers.get(i);
+ displays[i] = createWifiDisplay(device);
+ updateDesiredDevice(device);
}
mHandler.post(new Runnable() {
@@ -395,6 +406,23 @@
});
}
+ private void updateDesiredDevice(WifiP2pDevice device) {
+ // Handle the case where the device to which we are connecting or connected
+ // may have been renamed or reported different properties in the latest scan.
+ final String address = device.deviceAddress;
+ if (mDesiredDevice != null && mDesiredDevice.deviceAddress.equals(address)) {
+ if (DEBUG) {
+ Slog.d(TAG, "updateDesiredDevice: new information "
+ + describeWifiP2pDevice(device));
+ }
+ mDesiredDevice.update(device);
+ if (mAdvertisedDisplay != null
+ && mAdvertisedDisplay.getDeviceAddress().equals(address)) {
+ readvertiseDisplay(createWifiDisplay(mDesiredDevice));
+ }
+ }
+ }
+
private void connect(final WifiP2pDevice device) {
if (mDesiredDevice != null
&& !mDesiredDevice.deviceAddress.equals(device.deviceAddress)) {
@@ -459,12 +487,17 @@
}
// Step 2. Before we try to connect to a new device, disconnect from the old one.
+ if (mDisconnectingDevice != null) {
+ return; // wait for asynchronous callback
+ }
if (mConnectedDevice != null && mConnectedDevice != mDesiredDevice) {
Slog.i(TAG, "Disconnecting from Wifi display: " + mConnectedDevice.deviceName);
+ mDisconnectingDevice = mConnectedDevice;
+ mConnectedDevice = null;
unadvertiseDisplay();
- final WifiP2pDevice oldDevice = mConnectedDevice;
+ final WifiP2pDevice oldDevice = mDisconnectingDevice;
mWifiP2pManager.removeGroup(mWifiP2pChannel, new ActionListener() {
@Override
public void onSuccess() {
@@ -480,8 +513,8 @@
}
private void next() {
- if (mConnectedDevice == oldDevice) {
- mConnectedDevice = null;
+ if (mDisconnectingDevice == oldDevice) {
+ mDisconnectingDevice = null;
updateConnection();
}
}
@@ -491,13 +524,18 @@
// Step 3. Before we try to connect to a new device, stop trying to connect
// to the old one.
+ if (mCancelingDevice != null) {
+ return; // wait for asynchronous callback
+ }
if (mConnectingDevice != null && mConnectingDevice != mDesiredDevice) {
Slog.i(TAG, "Canceling connection to Wifi display: " + mConnectingDevice.deviceName);
+ mCancelingDevice = mConnectingDevice;
+ mConnectingDevice = null;
unadvertiseDisplay();
mHandler.removeCallbacks(mConnectionTimeout);
- final WifiP2pDevice oldDevice = mConnectingDevice;
+ final WifiP2pDevice oldDevice = mCancelingDevice;
mWifiP2pManager.cancelConnect(mWifiP2pChannel, new ActionListener() {
@Override
public void onSuccess() {
@@ -513,8 +551,8 @@
}
private void next() {
- if (mConnectingDevice == oldDevice) {
- mConnectingDevice = null;
+ if (mCancelingDevice == oldDevice) {
+ mCancelingDevice = null;
updateConnection();
}
}
@@ -763,13 +801,17 @@
public void run() {
if (oldSurface != null && surface != oldSurface) {
mListener.onDisplayDisconnected();
- } else if (oldDisplay != null && !Objects.equal(display, oldDisplay)) {
+ } else if (oldDisplay != null && !oldDisplay.hasSameAddress(display)) {
mListener.onDisplayConnectionFailed();
}
if (display != null) {
- if (!Objects.equal(display, oldDisplay)) {
+ if (!display.hasSameAddress(oldDisplay)) {
mListener.onDisplayConnecting(display);
+ } else if (!display.equals(oldDisplay)) {
+ // The address is the same but some other property such as the
+ // name must have changed.
+ mListener.onDisplayChanged(display);
}
if (surface != null && surface != oldSurface) {
mListener.onDisplayConnected(display, surface, width, height, flags);
@@ -784,6 +826,12 @@
advertiseDisplay(null, null, 0, 0, 0);
}
+ private void readvertiseDisplay(WifiDisplay display) {
+ advertiseDisplay(display, mAdvertisedDisplaySurface,
+ mAdvertisedDisplayWidth, mAdvertisedDisplayHeight,
+ mAdvertisedDisplayFlags);
+ }
+
private static Inet4Address getInterfaceAddress(WifiP2pGroup info) {
NetworkInterface iface;
try {
@@ -885,6 +933,7 @@
void onDisplayConnecting(WifiDisplay display);
void onDisplayConnectionFailed();
+ void onDisplayChanged(WifiDisplay display);
void onDisplayConnected(WifiDisplay display,
Surface surface, int width, int height, int flags);
void onDisplayDisconnected();
diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/java/com/android/server/net/NetworkPolicyManagerService.java
index 43ddf8d..b839331 100644
--- a/services/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -131,6 +131,7 @@
import android.util.Xml;
import com.android.internal.R;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Objects;
@@ -184,9 +185,11 @@
private static final int VERSION_SWITCH_UID = 10;
private static final int VERSION_LATEST = VERSION_SWITCH_UID;
- // @VisibleForTesting
+ @VisibleForTesting
public static final int TYPE_WARNING = 0x1;
+ @VisibleForTesting
public static final int TYPE_LIMIT = 0x2;
+ @VisibleForTesting
public static final int TYPE_LIMIT_SNOOZED = 0x3;
private static final String TAG_POLICY_LIST = "policy-list";
@@ -214,10 +217,9 @@
private static final String TAG_ALLOW_BACKGROUND = TAG + ":allowBackground";
- // @VisibleForTesting
- public static final String ACTION_ALLOW_BACKGROUND =
+ private static final String ACTION_ALLOW_BACKGROUND =
"com.android.server.net.action.ALLOW_BACKGROUND";
- public static final String ACTION_SNOOZE_WARNING =
+ private static final String ACTION_SNOOZE_WARNING =
"com.android.server.net.action.SNOOZE_WARNING";
private static final long TIME_CACHE_MAX_AGE = DAY_IN_MILLIS;
@@ -2063,7 +2065,7 @@
return intent;
}
- // @VisibleForTesting
+ @VisibleForTesting
public void addIdleHandler(IdleHandler handler) {
mHandler.getLooper().getQueue().addIdleHandler(handler);
}
diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java
index 0efdead..7101520 100644
--- a/services/java/com/android/server/net/NetworkStatsService.java
+++ b/services/java/com/android/server/net/NetworkStatsService.java
@@ -115,6 +115,7 @@
import android.util.SparseIntArray;
import android.util.TrustedTime;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FileRotator;
import com.android.internal.util.IndentingPrintWriter;
@@ -165,7 +166,7 @@
private IConnectivityManager mConnManager;
- // @VisibleForTesting
+ @VisibleForTesting
public static final String ACTION_NETWORK_STATS_POLL =
"com.android.server.action.NETWORK_STATS_POLL";
public static final String ACTION_NETWORK_STATS_UPDATED =
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java
index e05442b..dbfe34d 100644
--- a/services/java/com/android/server/pm/UserManagerService.java
+++ b/services/java/com/android/server/pm/UserManagerService.java
@@ -16,8 +16,7 @@
package com.android.server.pm;
-import com.android.internal.util.ArrayUtils;
-import com.android.internal.util.FastXmlSerializer;
+import static android.text.format.DateUtils.MINUTE_IN_MILLIS;
import android.app.Activity;
import android.app.ActivityManager;
@@ -26,7 +25,6 @@
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.graphics.Bitmap;
@@ -34,6 +32,7 @@
import android.os.Binder;
import android.os.Environment;
import android.os.FileUtils;
+import android.os.Handler;
import android.os.IUserManager;
import android.os.Process;
import android.os.RemoteException;
@@ -42,9 +41,17 @@
import android.util.AtomicFile;
import android.util.Slog;
import android.util.SparseArray;
+import android.util.SparseBooleanArray;
import android.util.TimeUtils;
import android.util.Xml;
+import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.FastXmlSerializer;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlSerializer;
+
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileDescriptor;
@@ -54,13 +61,8 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-import org.xmlpull.v1.XmlSerializer;
-
public class UserManagerService extends IUserManager.Stub {
private static final String LOG_TAG = "UserManagerService";
@@ -86,7 +88,7 @@
private static final int MIN_USER_ID = 10;
- private static final int USER_VERSION = 1;
+ private static final int USER_VERSION = 2;
private static final long EPOCH_PLUS_30_YEARS = 30L * 365 * 24 * 60 * 60 * 1000L; // ms
@@ -95,19 +97,24 @@
private final Object mInstallLock;
private final Object mPackagesLock;
+ private final Handler mHandler;
+
private final File mUsersDir;
private final File mUserListFile;
private final File mBaseUserPath;
- private SparseArray<UserInfo> mUsers = new SparseArray<UserInfo>();
- private HashSet<Integer> mRemovingUserIds = new HashSet<Integer>();
+ private final SparseArray<UserInfo> mUsers = new SparseArray<UserInfo>();
+
+ /**
+ * Set of user IDs being actively removed. Removed IDs linger in this set
+ * for several seconds to work around a VFS caching issue.
+ */
+ // @GuardedBy("mPackagesLock")
+ private final SparseBooleanArray mRemovingUserIds = new SparseBooleanArray();
private int[] mUserIds;
private boolean mGuestEnabled;
private int mNextSerialNumber;
- // This resets on a reboot. Otherwise it keeps incrementing so that user ids are
- // not reused in quick succession
- private int mNextUserId = MIN_USER_ID;
private int mUserVersion = 0;
private static UserManagerService sInstance;
@@ -147,6 +154,7 @@
mPm = pm;
mInstallLock = installLock;
mPackagesLock = packagesLock;
+ mHandler = new Handler();
synchronized (mInstallLock) {
synchronized (mPackagesLock) {
mUsersDir = new File(dataDir, USER_INFO_DIR);
@@ -190,7 +198,7 @@
if (ui.partial) {
continue;
}
- if (!excludeDying || !mRemovingUserIds.contains(ui.id)) {
+ if (!excludeDying || !mRemovingUserIds.get(ui.id)) {
users.add(ui);
}
}
@@ -212,7 +220,7 @@
private UserInfo getUserInfoLocked(int userId) {
UserInfo ui = mUsers.get(userId);
// If it is partial and not in the process of being removed, return as unknown user.
- if (ui != null && ui.partial && !mRemovingUserIds.contains(userId)) {
+ if (ui != null && ui.partial && !mRemovingUserIds.get(userId)) {
Slog.w(LOG_TAG, "getUserInfo: unknown user #" + userId);
return null;
}
@@ -476,8 +484,7 @@
}
/**
- * This fixes an incorrect initialization of user name for the owner.
- * TODO: Remove in the next release.
+ * Upgrade steps between versions, either for fixing bugs or changing the data format.
*/
private void upgradeIfNecessary() {
int userVersion = mUserVersion;
@@ -491,6 +498,16 @@
userVersion = 1;
}
+ if (userVersion < 2) {
+ // Owner should be marked as initialized
+ UserInfo user = mUsers.get(UserHandle.USER_OWNER);
+ if ((user.flags & UserInfo.FLAG_INITIALIZED) == 0) {
+ user.flags |= UserInfo.FLAG_INITIALIZED;
+ writeUserLocked(user);
+ }
+ userVersion = 2;
+ }
+
if (userVersion < USER_VERSION) {
Slog.w(LOG_TAG, "User version " + mUserVersion + " didn't upgrade as expected to "
+ USER_VERSION);
@@ -502,7 +519,7 @@
private void fallbackToSingleUserLocked() {
// Create the primary user
- UserInfo primary = new UserInfo(0,
+ UserInfo primary = new UserInfo(0,
mContext.getResources().getString(com.android.internal.R.string.owner_name), null,
UserInfo.FLAG_ADMIN | UserInfo.FLAG_PRIMARY | UserInfo.FLAG_INITIALIZED);
mUsers.put(0, primary);
@@ -749,7 +766,7 @@
if (userHandle == 0 || user == null) {
return false;
}
- mRemovingUserIds.add(userHandle);
+ mRemovingUserIds.put(userHandle, true);
// Set this to a partially created user, so that the user will be purged
// on next startup, in case the runtime stops now before stopping and
// removing the user completely.
@@ -813,13 +830,25 @@
}
}
- private void removeUserStateLocked(int userHandle) {
+ private void removeUserStateLocked(final int userHandle) {
// Cleanup package manager settings
mPm.cleanUpUserLILPw(userHandle);
// Remove this user from the list
mUsers.remove(userHandle);
- mRemovingUserIds.remove(userHandle);
+
+ // Have user ID linger for several seconds to let external storage VFS
+ // cache entries expire. This must be greater than the 'entry_valid'
+ // timeout used by the FUSE daemon.
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ synchronized (mPackagesLock) {
+ mRemovingUserIds.delete(userHandle);
+ }
+ }
+ }, MINUTE_IN_MILLIS);
+
// Remove user file
AtomicFile userFile = new AtomicFile(new File(mUsersDir, userHandle + ".xml"));
userFile.delete();
@@ -906,14 +935,13 @@
*/
private int getNextAvailableIdLocked() {
synchronized (mPackagesLock) {
- int i = mNextUserId;
+ int i = MIN_USER_ID;
while (i < Integer.MAX_VALUE) {
- if (mUsers.indexOfKey(i) < 0 && !mRemovingUserIds.contains(i)) {
+ if (mUsers.indexOfKey(i) < 0 && !mRemovingUserIds.get(i)) {
break;
}
i++;
}
- mNextUserId = i + 1;
return i;
}
}
@@ -938,7 +966,7 @@
UserInfo user = mUsers.valueAt(i);
if (user == null) continue;
pw.print(" "); pw.print(user); pw.print(" serialNo="); pw.print(user.serialNumber);
- if (mRemovingUserIds.contains(mUsers.keyAt(i))) pw.print(" <removing> ");
+ if (mRemovingUserIds.get(mUsers.keyAt(i))) pw.print(" <removing> ");
if (user.partial) pw.print(" <partial>");
pw.println();
pw.print(" Created: ");
diff --git a/services/java/com/android/server/power/PowerManagerService.java b/services/java/com/android/server/power/PowerManagerService.java
index 8650192..2690442 100644
--- a/services/java/com/android/server/power/PowerManagerService.java
+++ b/services/java/com/android/server/power/PowerManagerService.java
@@ -618,8 +618,19 @@
}
}
+ private static boolean isScreenLock(final WakeLock wakeLock) {
+ switch (wakeLock.mFlags & PowerManager.WAKE_LOCK_LEVEL_MASK) {
+ case PowerManager.FULL_WAKE_LOCK:
+ case PowerManager.SCREEN_BRIGHT_WAKE_LOCK:
+ case PowerManager.SCREEN_DIM_WAKE_LOCK:
+ return true;
+ }
+ return false;
+ }
+
private void applyWakeLockFlagsOnAcquireLocked(WakeLock wakeLock) {
- if ((wakeLock.mFlags & PowerManager.ACQUIRE_CAUSES_WAKEUP) != 0) {
+ if ((wakeLock.mFlags & PowerManager.ACQUIRE_CAUSES_WAKEUP) != 0 &&
+ isScreenLock(wakeLock)) {
wakeUpNoUpdateLocked(SystemClock.uptimeMillis());
}
}
diff --git a/services/java/com/android/server/usb/UsbDeviceManager.java b/services/java/com/android/server/usb/UsbDeviceManager.java
index 95797ef..c7c2c62 100644
--- a/services/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/java/com/android/server/usb/UsbDeviceManager.java
@@ -47,6 +47,8 @@
import android.util.Pair;
import android.util.Slog;
+import com.android.internal.annotations.GuardedBy;
+
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
@@ -105,7 +107,7 @@
private final Context mContext;
private final ContentResolver mContentResolver;
- // @GuardedBy("mLock")
+ @GuardedBy("mLock")
private UsbSettingsManager mCurrentSettings;
private NotificationManager mNotificationManager;
private final boolean mHasUsbAccessory;
@@ -668,9 +670,9 @@
id = com.android.internal.R.string.usb_accessory_notification_title;
} else {
// There is a different notification for USB tethering so we don't need one here
- if (!containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_RNDIS)) {
- Slog.e(TAG, "No known USB function in updateUsbNotification");
- }
+ //if (!containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_RNDIS)) {
+ // Slog.e(TAG, "No known USB function in updateUsbNotification");
+ //}
}
}
if (id != mUsbNotificationId) {
diff --git a/services/java/com/android/server/usb/UsbHostManager.java b/services/java/com/android/server/usb/UsbHostManager.java
index 175ae6f..10272f2 100644
--- a/services/java/com/android/server/usb/UsbHostManager.java
+++ b/services/java/com/android/server/usb/UsbHostManager.java
@@ -26,6 +26,8 @@
import android.os.Parcelable;
import android.util.Slog;
+import com.android.internal.annotations.GuardedBy;
+
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.HashMap;
@@ -46,7 +48,7 @@
private final Context mContext;
private final Object mLock = new Object();
- // @GuardedBy("mLock")
+ @GuardedBy("mLock")
private UsbSettingsManager mCurrentSettings;
public UsbHostManager(Context context) {
diff --git a/services/java/com/android/server/usb/UsbService.java b/services/java/com/android/server/usb/UsbService.java
index 629f5fa..3918d15 100644
--- a/services/java/com/android/server/usb/UsbService.java
+++ b/services/java/com/android/server/usb/UsbService.java
@@ -30,6 +30,7 @@
import android.os.UserHandle;
import android.util.SparseArray;
+import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.IndentingPrintWriter;
import java.io.File;
@@ -52,7 +53,7 @@
private final Object mLock = new Object();
/** Map from {@link UserHandle} to {@link UsbSettingsManager} */
- // @GuardedBy("mLock")
+ @GuardedBy("mLock")
private final SparseArray<UsbSettingsManager>
mSettingsByUser = new SparseArray<UsbSettingsManager>();
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 4659c9d..c3fc19c 100755
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -2779,10 +2779,7 @@
}
}
- if (DEBUG_LAYOUT
- // TODO: Remove once b/7094175 is fixed
- || ((String)win.mAttrs.getTitle()).contains("Keyguard")
- ) Slog.v(TAG, "Relayout " + win + ": viewVisibility=" + viewVisibility
+ if (DEBUG_LAYOUT) Slog.v(TAG, "Relayout " + win + ": viewVisibility=" + viewVisibility
+ " req=" + requestedWidth + "x" + requestedHeight + " " + win.mAttrs);
win.mEnforceSizeCompat = (win.mAttrs.flags & FLAG_COMPATIBLE_WINDOW) != 0;
@@ -2851,7 +2848,7 @@
}
if (win.isConfigChanged()) {
if (DEBUG_CONFIGURATION) Slog.i(TAG, "Window " + win
- + " visible with new config: " + win.mConfiguration);
+ + " visible with new config: " + mCurConfiguration);
outConfig.setTo(mCurConfiguration);
}
}
@@ -3811,22 +3808,23 @@
final WindowList windows = getDefaultWindowListLocked();
int pos = windows.size() - 1;
while (pos >= 0) {
- WindowState wtoken = windows.get(pos);
+ WindowState win = windows.get(pos);
pos--;
- if (wtoken.mAppToken != null) {
+ if (win.mAppToken != null) {
// We hit an application window. so the orientation will be determined by the
// app window. No point in continuing further.
return (mLastWindowForcedOrientation=ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
- if (!wtoken.isVisibleLw() || !wtoken.mPolicyVisibilityAfterAnim) {
+ if (!win.isVisibleLw() || !win.mPolicyVisibilityAfterAnim) {
continue;
}
- int req = wtoken.mAttrs.screenOrientation;
+ int req = win.mAttrs.screenOrientation;
if((req == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) ||
(req == ActivityInfo.SCREEN_ORIENTATION_BEHIND)){
continue;
}
+ if (DEBUG_ORIENTATION) Slog.v(TAG, win + " forcing orientation to " + req);
return (mLastWindowForcedOrientation=req);
}
return (mLastWindowForcedOrientation=ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
@@ -9403,16 +9401,14 @@
"Reporting new frame to " + win + ": " + win.mCompatFrame);
int diff = 0;
boolean configChanged = win.isConfigChanged();
- if ((DEBUG_RESIZE || DEBUG_ORIENTATION || DEBUG_CONFIGURATION
- // TODO: Remove once b/7094175 is fixed
- || ((String)win.mAttrs.getTitle()).contains("Keyguard"))
+ if ((DEBUG_RESIZE || DEBUG_ORIENTATION || DEBUG_CONFIGURATION)
&& configChanged) {
Slog.i(TAG, "Sending new config to window " + win + ": "
+ winAnimator.mSurfaceW + "x" + winAnimator.mSurfaceH
+ " / " + mCurConfiguration + " / 0x"
+ Integer.toHexString(diff));
}
- win.mConfiguration = mCurConfiguration;
+ win.setConfiguration(mCurConfiguration);
if (DEBUG_ORIENTATION &&
winAnimator.mDrawState == WindowStateAnimator.DRAW_PENDING) Slog.i(
TAG, "Resizing " + win + " WITH DRAW PENDING");
@@ -10352,6 +10348,15 @@
return mSafeMode;
}
+ public void showAssistant() {
+ // TODO: What permission?
+ if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER)
+ != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ mPolicy.showAssistant();
+ }
+
void dumpPolicyLocked(PrintWriter pw, String[] args, boolean dumpAll) {
pw.println("WINDOW MANAGER POLICY STATE (dumpsys window policy)");
mPolicy.dump(" ", pw, args);
diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java
index 35bebbe..3dce939 100644
--- a/services/java/com/android/server/wm/WindowState.java
+++ b/services/java/com/android/server/wm/WindowState.java
@@ -21,6 +21,7 @@
import static android.view.WindowManager.LayoutParams.LAST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG;
+import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import com.android.server.input.InputWindowHandle;
@@ -112,6 +113,9 @@
int mLayoutSeq = -1;
Configuration mConfiguration = null;
+ // Sticky answer to isConfigChanged(), remains true until new Configuration is assigned.
+ // Used only on {@link #TYPE_KEYGUARD}.
+ private boolean mConfigHasChanged;
/**
* Actual frame shown on-screen (may be modified by animation). These
@@ -627,6 +631,7 @@
: WindowManagerService.DEFAULT_INPUT_DISPATCHING_TIMEOUT_NANOS;
}
+ @Override
public boolean hasAppShownWindows() {
return mAppToken != null && (mAppToken.firstWindowDrawn || mAppToken.startingDisplayed);
}
@@ -857,9 +862,17 @@
}
boolean isConfigChanged() {
- return mConfiguration != mService.mCurConfiguration
+ boolean configChanged = mConfiguration != mService.mCurConfiguration
&& (mConfiguration == null
|| (mConfiguration.diff(mService.mCurConfiguration) != 0));
+
+ if (mAttrs.type == TYPE_KEYGUARD) {
+ // Retain configuration changed status until resetConfiguration called.
+ mConfigHasChanged |= configChanged;
+ configChanged = mConfigHasChanged;
+ }
+
+ return configChanged;
}
boolean isConfigDiff(int mask) {
@@ -886,6 +899,11 @@
}
}
+ void setConfiguration(final Configuration newConfig) {
+ mConfiguration = newConfig;
+ mConfigHasChanged = false;
+ }
+
void setInputChannel(InputChannel inputChannel) {
if (mInputChannel != null) {
throw new IllegalStateException("Window already has an input channel.");
@@ -907,6 +925,7 @@
}
private class DeathRecipient implements IBinder.DeathRecipient {
+ @Override
public void binderDied() {
try {
synchronized(mService.mWindowMap) {
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 7b30c89..e33b7b7 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -803,7 +803,7 @@
mSurfaceShown = false;
mSurface = null;
- mWin.mHasSurface =false;
+ mWin.mHasSurface = false;
mDrawState = NO_SURFACE;
}
}
diff --git a/tests/AppLaunch/Android.mk b/tests/AppLaunch/Android.mk
new file mode 100644
index 0000000..c0560fd
--- /dev/null
+++ b/tests/AppLaunch/Android.mk
@@ -0,0 +1,17 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := tests
+
+# Only compile source java files in this apk.
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := AppLaunch
+
+LOCAL_CERTIFICATE := platform
+LOCAL_JAVA_LIBRARIES := android.test.runner
+
+include $(BUILD_PACKAGE)
+
+# Use the following include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))
\ No newline at end of file
diff --git a/tests/AppLaunch/AndroidManifest.xml b/tests/AppLaunch/AndroidManifest.xml
new file mode 100644
index 0000000..ac6760b
--- /dev/null
+++ b/tests/AppLaunch/AndroidManifest.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.applaunch"
+ android:sharedUserId="android.uid.system" >
+ <instrumentation android:label="Measure app start up time"
+ android:name="android.test.InstrumentationTestRunner"
+ android:targetPackage="com.android.tests.applaunch" />
+
+ <application android:label="App Launch Test">
+ <uses-library android:name="android.test.runner" />
+ </application>
+</manifest>
\ No newline at end of file
diff --git a/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
new file mode 100644
index 0000000..e9374e0
--- /dev/null
+++ b/tests/AppLaunch/src/com/android/tests/applaunch/AppLaunch.java
@@ -0,0 +1,216 @@
+/*
+ * 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.
+ */
+package com.android.tests.applaunch;
+
+import android.app.ActivityManager;
+import android.app.ActivityManager.ProcessErrorStateInfo;
+import android.app.ActivityManagerNative;
+import android.app.IActivityManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.test.InstrumentationTestCase;
+import android.test.InstrumentationTestRunner;
+import android.util.Log;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This test is intended to measure the time it takes for the apps to start.
+ * Names of the applications are passed in command line, and the
+ * test starts each application, and reports the start up time in milliseconds.
+ * The instrumentation expects the following key to be passed on the command line:
+ * apps - A list of applications to start and their corresponding result keys
+ * in the following format:
+ * -e apps <app name>^<result key>|<app name>^<result key>
+ */
+public class AppLaunch extends InstrumentationTestCase {
+
+ private static final int JOIN_TIMEOUT = 10000;
+ private static final String TAG = "AppLaunch";
+ private static final String KEY_APPS = "apps";
+
+ private Map<String, Intent> mNameToIntent;
+ private Map<String, String> mNameToProcess;
+ private Map<String, String> mNameToResultKey;
+
+ private IActivityManager mAm;
+
+ public void testMeasureStartUpTime() throws RemoteException {
+ InstrumentationTestRunner instrumentation =
+ (InstrumentationTestRunner)getInstrumentation();
+ Bundle args = instrumentation.getBundle();
+ mAm = ActivityManagerNative.getDefault();
+
+ createMappings();
+ parseArgs(args);
+
+ Bundle results = new Bundle();
+ for (String app : mNameToResultKey.keySet()) {
+ try {
+ startApp(app, results);
+ closeApp();
+ } catch (NameNotFoundException e) {
+ Log.i(TAG, "Application " + app + " not found");
+ }
+
+ }
+ instrumentation.sendStatus(0, results);
+ }
+
+ private void parseArgs(Bundle args) {
+ mNameToResultKey = new HashMap<String, String>();
+ String appList = args.getString(KEY_APPS);
+
+ if (appList == null)
+ return;
+
+ String appNames[] = appList.split("\\|");
+ for (String pair : appNames) {
+ String[] parts = pair.split("\\^");
+ if (parts.length != 2) {
+ Log.e(TAG, "The apps key is incorectly formatted");
+ fail();
+ }
+
+ mNameToResultKey.put(parts[0], parts[1]);
+ }
+ }
+
+ private void createMappings() {
+ mNameToIntent = new HashMap<String, Intent>();
+ mNameToProcess = new HashMap<String, String>();
+
+ PackageManager pm = getInstrumentation().getContext()
+ .getPackageManager();
+ Intent intentToResolve = new Intent(Intent.ACTION_MAIN);
+ intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER);
+ List<ResolveInfo> ris = pm.queryIntentActivities(intentToResolve, 0);
+ if (ris == null || ris.isEmpty()) {
+ Log.i(TAG, "Could not find any apps");
+ } else {
+ for (ResolveInfo ri : ris) {
+ Intent startIntent = new Intent(intentToResolve);
+ startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+ | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
+ startIntent.setClassName(ri.activityInfo.packageName,
+ ri.activityInfo.name);
+ mNameToIntent.put(ri.loadLabel(pm).toString(), startIntent);
+ mNameToProcess.put(ri.loadLabel(pm).toString(),
+ ri.activityInfo.processName);
+ }
+ }
+ }
+
+ private void startApp(String appName, Bundle results)
+ throws NameNotFoundException, RemoteException {
+ Log.i(TAG, "Starting " + appName);
+
+ Intent startIntent = mNameToIntent.get(appName);
+ AppLaunchRunnable runnable = new AppLaunchRunnable(startIntent);
+ Thread t = new Thread(runnable);
+ long startTime = System.currentTimeMillis();
+ t.start();
+ try {
+ t.join(JOIN_TIMEOUT);
+ } catch (InterruptedException e) {
+ // ignore
+ }
+ if(t.isAlive() || (runnable.getResult() != null &&
+ runnable.getResult().result != ActivityManager.START_SUCCESS)) {
+ Log.w(TAG, "Assuming app " + appName + " crashed.");
+ reportError(appName, mNameToProcess.get(appName), results);
+ return;
+ }
+ long startUpTime = System.currentTimeMillis() - startTime;
+ results.putString(mNameToResultKey.get(appName), String.valueOf(startUpTime));
+ sleep(5000);
+ }
+
+ private void closeApp() {
+ Intent homeIntent = new Intent(Intent.ACTION_MAIN);
+ homeIntent.addCategory(Intent.CATEGORY_HOME);
+ homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+ | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
+ getInstrumentation().getContext().startActivity(homeIntent);
+ sleep(3000);
+ }
+
+ private void sleep(int time) {
+ try {
+ Thread.sleep(time);
+ } catch (InterruptedException e) {
+ // ignore
+ }
+ }
+
+ private void reportError(String appName, String processName, Bundle results) {
+ ActivityManager am = (ActivityManager) getInstrumentation()
+ .getContext().getSystemService(Context.ACTIVITY_SERVICE);
+ List<ProcessErrorStateInfo> crashes = am.getProcessesInErrorState();
+ if (crashes != null) {
+ for (ProcessErrorStateInfo crash : crashes) {
+ if (!crash.processName.equals(processName))
+ continue;
+
+ Log.w(TAG, appName + " crashed: " + crash.shortMsg);
+ results.putString(mNameToResultKey.get(appName), crash.shortMsg);
+ return;
+ }
+ }
+
+ results.putString(mNameToResultKey.get(appName),
+ "Crashed for unknown reason");
+ Log.w(TAG, appName
+ + " not found in process list, most likely it is crashed");
+ }
+
+ private class AppLaunchRunnable implements Runnable {
+ private Intent mLaunchIntent;
+ private IActivityManager.WaitResult mResult;
+ public AppLaunchRunnable(Intent intent) {
+ mLaunchIntent = intent;
+ }
+
+ public IActivityManager.WaitResult getResult() {
+ return mResult;
+ }
+
+ public void run() {
+ try {
+ String mimeType = mLaunchIntent.getType();
+ if (mimeType == null && mLaunchIntent.getData() != null
+ && "content".equals(mLaunchIntent.getData().getScheme())) {
+ mimeType = mAm.getProviderMimeType(mLaunchIntent.getData(),
+ UserHandle.USER_CURRENT);
+ }
+
+ mResult = mAm.startActivityAndWait(null, mLaunchIntent, mimeType,
+ null, null, 0, mLaunchIntent.getFlags(), null, null, null,
+ UserHandle.USER_CURRENT);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Error launching app", e);
+ }
+ }
+ }
+}
diff --git a/tests/MemoryUsage/Android.mk b/tests/MemoryUsage/Android.mk
index e7bfb4f..0ab793b 100644
--- a/tests/MemoryUsage/Android.mk
+++ b/tests/MemoryUsage/Android.mk
@@ -8,7 +8,8 @@
LOCAL_PACKAGE_NAME := MemoryUsage
-LOCAL_SDK_VERSION := 7
+LOCAL_CERTIFICATE := platform
+LOCAL_JAVA_LIBRARIES := android.test.runner
include $(BUILD_PACKAGE)
diff --git a/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java b/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java
index 5e27ba7..b550957 100644
--- a/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java
+++ b/tests/MemoryUsage/src/com/android/tests/memoryusage/MemoryUsageTest.java
@@ -18,14 +18,17 @@
import android.app.ActivityManager;
import android.app.ActivityManager.ProcessErrorStateInfo;
import android.app.ActivityManager.RunningAppProcessInfo;
+import android.app.ActivityManagerNative;
+import android.app.IActivityManager;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.os.Debug.MemoryInfo;
+import android.os.RemoteException;
+import android.os.UserHandle;
import android.test.InstrumentationTestCase;
import android.util.Log;
@@ -48,8 +51,9 @@
private static final int SLEEP_TIME = 1000;
private static final int THRESHOLD = 1024;
- private static final int MAX_ITERATIONS = 10;
- private static final int MIN_ITERATIONS = 4;
+ private static final int MAX_ITERATIONS = 20;
+ private static final int MIN_ITERATIONS = 6;
+ private static final int JOIN_TIMEOUT = 10000;
private static final String TAG = "MemoryUsageInstrumentation";
private static final String KEY_APPS = "apps";
@@ -58,10 +62,13 @@
private Map<String, String> mNameToProcess;
private Map<String, String> mNameToResultKey;
+ private IActivityManager mAm;
+
public void testMemory() {
MemoryUsageInstrumentation instrumentation =
- (MemoryUsageInstrumentation) getInstrumentation();
+ (MemoryUsageInstrumentation) getInstrumentation();
Bundle args = instrumentation.getBundle();
+ mAm = ActivityManagerNative.getDefault();
createMappings();
parseArgs(args);
@@ -136,7 +143,16 @@
String process = mNameToProcess.get(appName);
Intent startIntent = mNameToIntent.get(appName);
- getInstrumentation().getContext().startActivity(startIntent);
+
+ AppLaunchRunnable runnable = new AppLaunchRunnable(startIntent);
+ Thread t = new Thread(runnable);
+ t.start();
+ try {
+ t.join(JOIN_TIMEOUT);
+ } catch (InterruptedException e) {
+ // ignore
+ }
+
return process;
}
@@ -234,7 +250,7 @@
}
int[] pids = {
- proc.pid };
+ proc.pid };
MemoryInfo meminfo = am.getProcessMemoryInfo(pids)[0];
return meminfo.getTotalPss();
@@ -242,4 +258,29 @@
}
return -1;
}
+
+ private class AppLaunchRunnable implements Runnable {
+ private Intent mLaunchIntent;
+
+ public AppLaunchRunnable(Intent intent) {
+ mLaunchIntent = intent;
+ }
+
+ public void run() {
+ try {
+ String mimeType = mLaunchIntent.getType();
+ if (mimeType == null && mLaunchIntent.getData() != null
+ && "content".equals(mLaunchIntent.getData().getScheme())) {
+ mimeType = mAm.getProviderMimeType(mLaunchIntent.getData(),
+ UserHandle.USER_CURRENT);
+ }
+
+ mAm.startActivityAndWait(null, mLaunchIntent, mimeType,
+ null, null, 0, mLaunchIntent.getFlags(), null, null, null,
+ UserHandle.USER_CURRENT_OR_SELF);
+ } catch (RemoteException e) {
+ Log.w(TAG, "Error launching app", e);
+ }
+ }
+ }
}
diff --git a/tests/StatusBar/res/layout/notification_builder_test.xml b/tests/StatusBar/res/layout/notification_builder_test.xml
index 94fc089..5987c84 100644
--- a/tests/StatusBar/res/layout/notification_builder_test.xml
+++ b/tests/StatusBar/res/layout/notification_builder_test.xml
@@ -222,307 +222,320 @@
>
<!-- setWhen -->
- <RadioGroup
- android:id="@+id/group_when"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setWhen"
/>
- <RadioButton
- android:id="@+id/when_midnight"
- style="@style/FieldContents"
- android:text="midnight"
- />
- <RadioButton
- android:id="@+id/when_now"
- style="@style/FieldContents"
- android:text="now"
- />
- <RadioButton
- android:id="@+id/when_now_plus_1h"
- style="@style/FieldContents.Disabled"
- android:text="now + 1h"
- />
- <RadioButton
- android:id="@+id/when_tomorrow"
- style="@style/FieldContents.Disabled"
- android:text="tomorrow"
- />
- </RadioGroup>
+ <RadioGroup
+ android:id="@+id/group_when"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/when_midnight"
+ style="@style/FieldContents"
+ android:text="midnight"
+ />
+ <RadioButton
+ android:id="@+id/when_now"
+ style="@style/FieldContents"
+ android:text="now"
+ />
+ <RadioButton
+ android:id="@+id/when_now_plus_1h"
+ style="@style/FieldContents.Disabled"
+ android:text="now + 1h"
+ />
+ <RadioButton
+ android:id="@+id/when_tomorrow"
+ style="@style/FieldContents.Disabled"
+ android:text="tomorrow"
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- icon -->
- <RadioGroup
- android:id="@+id/group_icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setSmallIcon"
/>
- <RadioButton
- android:id="@+id/icon_im"
- style="@style/FieldContents"
- android:text="IM"
- />
- <RadioButton
- android:id="@+id/icon_alert"
- style="@style/FieldContents"
- android:text="alert"
- />
- <RadioButton
- android:id="@+id/icon_surprise"
- style="@style/FieldContents"
- android:text="surprise"
- />
- <RadioButton
- android:id="@+id/icon_level0"
- style="@style/FieldContents.Disabled"
- android:text="level 0"
- />
- <RadioButton
- android:id="@+id/icon_level50"
- style="@style/FieldContents.Disabled"
- android:text="level 50"
- />
- <RadioButton
- android:id="@+id/icon_level100"
- style="@style/FieldContents.Disabled"
- android:text="level 100"
- />
- <!-- todo setSmallIcon(int icon, int level) -->
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_icon"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/icon_im"
+ style="@style/FieldContents"
+ android:text="IM"
+ />
+ <RadioButton
+ android:id="@+id/icon_alert"
+ style="@style/FieldContents"
+ android:text="alert"
+ />
+ <RadioButton
+ android:id="@+id/icon_surprise"
+ style="@style/FieldContents"
+ android:text="surprise"
+ />
+ <RadioButton
+ android:id="@+id/icon_level0"
+ style="@style/FieldContents.Disabled"
+ android:text="level 0"
+ />
+ <RadioButton
+ android:id="@+id/icon_level50"
+ style="@style/FieldContents.Disabled"
+ android:text="level 50"
+ />
+ <RadioButton
+ android:id="@+id/icon_level100"
+ style="@style/FieldContents.Disabled"
+ android:text="level 100"
+ />
+ <!-- todo setSmallIcon(int icon, int level) -->
+ </RadioGroup>
+ </LinearLayout>
+
<!-- setContentTitle -->
- <RadioGroup
- android:id="@+id/group_title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setContentTitle"
/>
- <RadioButton
- android:id="@+id/title_short"
- style="@style/FieldContents"
- android:text="none"
- android:tag=""
- />
- <RadioButton
- android:id="@+id/title_short"
- style="@style/FieldContents"
- android:text="short"
- android:tag="Title"
- />
- <RadioButton
- android:id="@+id/title_medium"
- style="@style/FieldContents"
- android:text="medium"
- android:tag="Notification Test"
- />
- <RadioButton
- android:id="@+id/title_long"
- style="@style/FieldContents"
- android:text="long"
- android:tag="This is one heckuva long title for a notification"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_title"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/title_short"
+ style="@style/FieldContents"
+ android:text="none"
+ android:tag=""
+ />
+ <RadioButton
+ android:id="@+id/title_short"
+ style="@style/FieldContents"
+ android:text="short"
+ android:tag="Title"
+ />
+ <RadioButton
+ android:id="@+id/title_medium"
+ style="@style/FieldContents"
+ android:text="medium"
+ android:tag="Notification Test"
+ />
+ <RadioButton
+ android:id="@+id/title_long"
+ style="@style/FieldContents"
+ android:text="long"
+ android:tag="This is one heckuva long title for a notification"
+ />
+ </RadioGroup>
+ </LinearLayout>
+
<!-- setContentText -->
- <RadioGroup
- android:id="@+id/group_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setContentText"
/>
- <RadioButton
- android:id="@+id/text_none"
- style="@style/FieldContents"
- android:text="none"
- android:tag=""
- />
- <RadioButton
- android:id="@+id/text_short"
- style="@style/FieldContents"
- android:tag="short"
- android:text="text"
- />
- <RadioButton
- android:id="@+id/text_medium"
- style="@style/FieldContents"
- android:text="medium"
- android:tag="Something happened"
- />
- <RadioButton
- android:id="@+id/text_long"
- style="@style/FieldContents"
- android:text="long"
- android:tag="Oh my goodness. SOMETHING HAPPENED!!!!"
- />
- <RadioButton
- android:id="@+id/text_emoji"
- style="@style/FieldContents"
- android:text="emoji"
- android:tag="_ Cactus _ Cactus _"
- />
- <RadioButton
- android:id="@+id/text_haiku"
- style="@style/FieldContents"
- android:text="haiku"
- android:tag="sholes final approach\nlanding gear punted to flan\nrunway foam glistens"
- />
- </RadioGroup>
+ <RadioGroup
+ android:id="@+id/group_text"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/text_none"
+ style="@style/FieldContents"
+ android:text="none"
+ android:tag=""
+ />
+ <RadioButton
+ android:id="@+id/text_short"
+ style="@style/FieldContents"
+ android:tag="short"
+ android:text="text"
+ />
+ <RadioButton
+ android:id="@+id/text_medium"
+ style="@style/FieldContents"
+ android:text="medium"
+ android:tag="Something happened"
+ />
+ <RadioButton
+ android:id="@+id/text_long"
+ style="@style/FieldContents"
+ android:text="long"
+ android:tag="Oh my goodness. SOMETHING HAPPENED!!!!"
+ />
+ <RadioButton
+ android:id="@+id/text_emoji"
+ style="@style/FieldContents"
+ android:text="emoji"
+ android:tag="_ Cactus _ Cactus _"
+ />
+ <RadioButton
+ android:id="@+id/text_haiku"
+ style="@style/FieldContents"
+ android:text="haiku"
+ android:tag="sholes final approach\nlanding gear punted to flan\nrunway foam glistens"
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- setContentInfo -->
- <RadioGroup
- android:id="@+id/group_info"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setContentInfo"
/>
- <RadioButton
- android:id="@+id/info_none"
- style="@style/FieldContents"
- android:text="none"
- android:tag=""
- />
- <RadioButton
- android:id="@+id/info_number"
- style="@style/FieldContents"
- android:text="snoozed"
- android:tag="snoozed"
- />
- <RadioButton
- android:id="@+id/info_long"
- style="@style/FieldContents"
- android:text="longer"
- android:tag="this content info is way too long"
- />
- </RadioGroup>
+ <RadioGroup
+ android:id="@+id/group_info"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/info_none"
+ style="@style/FieldContents"
+ android:text="none"
+ android:tag=""
+ />
+ <RadioButton
+ android:id="@+id/info_number"
+ style="@style/FieldContents"
+ android:text="snoozed"
+ android:tag="snoozed"
+ />
+ <RadioButton
+ android:id="@+id/info_long"
+ style="@style/FieldContents"
+ android:text="longer"
+ android:tag="this content info is way too long"
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- setNumber -->
- <RadioGroup
- android:id="@+id/group_number"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setNumber"
/>
- <RadioButton
- android:id="@+id/number_0"
- style="@style/FieldContents"
- android:text="0"
- android:tag="0"
- />
- <RadioButton
- android:id="@+id/number_1"
- style="@style/FieldContents"
- android:text="1"
- android:tag="1"
- />
- <RadioButton
- android:id="@+id/number_42"
- style="@style/FieldContents"
- android:text="42"
- android:tag="42"
- />
- <RadioButton
- android:id="@+id/number_334"
- style="@style/FieldContents"
- android:text="334"
- android:tag="334"
- />
- <RadioButton
- android:id="@+id/number_999"
- style="@style/FieldContents"
- android:text="999"
- android:tag="999"
- />
- <RadioButton
- android:id="@+id/number_9876"
- style="@style/FieldContents"
- android:text="9,876"
- android:tag="9876"
- />
- <RadioButton
- android:id="@+id/number_12345"
- style="@style/FieldContents"
- android:text="12,345"
- android:tag="12345"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_number"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/number_0"
+ style="@style/FieldContents"
+ android:text="0"
+ android:tag="0"
+ />
+ <RadioButton
+ android:id="@+id/number_1"
+ style="@style/FieldContents"
+ android:text="1"
+ android:tag="1"
+ />
+ <RadioButton
+ android:id="@+id/number_42"
+ style="@style/FieldContents"
+ android:text="42"
+ android:tag="42"
+ />
+ <RadioButton
+ android:id="@+id/number_334"
+ style="@style/FieldContents"
+ android:text="334"
+ android:tag="334"
+ />
+ <RadioButton
+ android:id="@+id/number_999"
+ style="@style/FieldContents"
+ android:text="999"
+ android:tag="999"
+ />
+ <RadioButton
+ android:id="@+id/number_9876"
+ style="@style/FieldContents"
+ android:text="9,876"
+ android:tag="9876"
+ />
+ <RadioButton
+ android:id="@+id/number_12345"
+ style="@style/FieldContents"
+ android:text="12,345"
+ android:tag="12345"
+ />
+ </RadioGroup>
+ </LinearLayout>
+
<!-- setContentIntent -->
- <RadioGroup
- android:id="@+id/group_intent"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setContentIntent"
/>
- <RadioButton
- android:id="@+id/intent_none"
- style="@style/FieldContents"
- android:text="none"
- />
- <RadioButton
- android:id="@+id/intent_alert"
- style="@style/FieldContents"
- android:text="alert"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_intent"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/intent_none"
+ style="@style/FieldContents"
+ android:text="none"
+ />
+ <RadioButton
+ android:id="@+id/intent_alert"
+ style="@style/FieldContents"
+ android:text="alert"
+ />
+ </RadioGroup>
+ </LinearLayout>
+
<!-- setDeleteIntent -->
- <RadioGroup
- android:id="@+id/group_delete"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setDeleteIntent"
/>
- <RadioButton
- android:id="@+id/delete_none"
- style="@style/FieldContents"
- android:text="none"
- />
- <RadioButton
- android:id="@+id/delete_alert"
- style="@style/FieldContents"
- android:text="alert"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_delete"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/delete_none"
+ style="@style/FieldContents"
+ android:text="none"
+ />
+ <RadioButton
+ android:id="@+id/delete_alert"
+ style="@style/FieldContents"
+ android:text="alert"
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- setFullScreenIntent -->
<RadioGroup
android:id="@+id/group_full_screen"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
+ style="@style/FieldChoices"
android:visibility="gone"
>
<TextView
@@ -543,94 +556,94 @@
<!-- setTicker -->
- <RadioGroup
- android:id="@+id/group_ticker"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setTicker"
/>
- <RadioButton
- android:id="@+id/ticker_none"
- style="@style/FieldContents"
- android:text="none"
- android:tag=""
- />
- <RadioButton
- android:id="@+id/ticker_short"
- style="@style/FieldContents"
- android:text="short"
- android:tag="tick"
- />
- <RadioButton
- android:id="@+id/ticker_wrap"
- style="@style/FieldContents"
- android:text="wrap"
- android:tag="tick tick tick tock tock tock something fun has happened but i don't know what it is just yet"
- />
- <RadioButton
- android:id="@+id/ticker_haiku"
- style="@style/FieldContents"
- android:text="haiku"
- android:tag="sholes final approach\nlanding gear punted to flan\nrunway foam glistens"
- />
- <RadioButton
- android:id="@+id/ticker_emoji"
- style="@style/FieldContents"
- android:text="emoji"
- android:tag="_ Cactus _ Cactus _"
- />
- <RadioButton
- android:id="@+id/ticker_custom"
- style="@style/FieldContents.Disabled"
- android:text="custom view"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_ticker"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/ticker_none"
+ style="@style/FieldContents"
+ android:text="none"
+ android:tag=""
+ />
+ <RadioButton
+ android:id="@+id/ticker_short"
+ style="@style/FieldContents"
+ android:text="short"
+ android:tag="tick"
+ />
+ <RadioButton
+ android:id="@+id/ticker_wrap"
+ style="@style/FieldContents"
+ android:text="wrap"
+ android:tag="tick tick tick tock tock tock something fun has happened but i don't know what it is just yet"
+ />
+ <RadioButton
+ android:id="@+id/ticker_haiku"
+ style="@style/FieldContents"
+ android:text="haiku"
+ android:tag="sholes final approach\nlanding gear punted to flan\nrunway foam glistens"
+ />
+ <RadioButton
+ android:id="@+id/ticker_emoji"
+ style="@style/FieldContents"
+ android:text="emoji"
+ android:tag="_ Cactus _ Cactus _"
+ />
+ <RadioButton
+ android:id="@+id/ticker_custom"
+ style="@style/FieldContents.Disabled"
+ android:text="custom view"
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- setLargeIcon -->
- <RadioGroup
- android:id="@+id/group_large_icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setLargeIcon"
/>
- <RadioButton
- android:id="@+id/large_icon_none"
- style="@style/FieldContents"
- android:text="none"
- />
- <RadioButton
- android:id="@+id/large_icon_pineapple"
- style="@style/FieldContents"
- android:text="pineapple"
- />
- <RadioButton
- android:id="@+id/large_icon_pineapple2"
- style="@style/FieldContents"
- android:text="pineapple2"
- />
- <RadioButton
- android:id="@+id/large_icon_small"
- style="@style/FieldContents"
- android:text="small"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_large_icon"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/large_icon_none"
+ style="@style/FieldContents"
+ android:text="none"
+ />
+ <RadioButton
+ android:id="@+id/large_icon_pineapple"
+ style="@style/FieldContents"
+ android:text="pineapple"
+ />
+ <RadioButton
+ android:id="@+id/large_icon_pineapple2"
+ style="@style/FieldContents"
+ android:text="pineapple2"
+ />
+ <RadioButton
+ android:id="@+id/large_icon_small"
+ style="@style/FieldContents"
+ android:text="small"
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- setSound -->
<RadioGroup
android:id="@+id/group_sound"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
+ style="@style/FieldChoices"
android:visibility="gone"
>
<TextView
@@ -646,190 +659,260 @@
<!-- setVibrate -->
- <RadioGroup
- android:id="@+id/group_vibrate"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setVibrate"
/>
- <RadioButton
- android:id="@+id/vibrate_none"
- style="@style/FieldContents"
- android:text="none"
- />
- <RadioButton
- android:id="@+id/vibrate_short"
- style="@style/FieldContents"
- android:text="short"
- />
- <RadioButton
- android:id="@+id/vibrate_medium"
- style="@style/FieldContents"
- android:text="long"
- />
- <RadioButton
- android:id="@+id/vibrate_long"
- style="@style/FieldContents"
- android:text="long"
- />
- <RadioButton
- android:id="@+id/vibrate_pattern"
- style="@style/FieldContents"
- android:text="longer"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_vibrate"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/vibrate_none"
+ style="@style/FieldContents"
+ android:text="none"
+ />
+ <RadioButton
+ android:id="@+id/vibrate_zero"
+ style="@style/FieldContents"
+ android:text="0"
+ />
+ <RadioButton
+ android:id="@+id/vibrate_short"
+ style="@style/FieldContents"
+ android:text="100"
+ />
+ <RadioButton
+ android:id="@+id/vibrate_long"
+ style="@style/FieldContents"
+ android:text="1000"
+ />
+ <RadioButton
+ android:id="@+id/vibrate_pattern"
+ style="@style/FieldContents"
+ android:text="...---..."
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- setLights -->
- <RadioGroup
- android:id="@+id/group_lights_color"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setLights (color)"
/>
- <RadioButton
- android:id="@+id/lights_red"
- style="@style/FieldContents"
- android:text="red"
- android:tag="0xff0000"
+ <RadioGroup
+ android:id="@+id/group_lights_color"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/lights_red"
+ style="@style/FieldContents"
+ android:text="red"
+ android:tag="0xff0000"
+ />
+ <RadioButton
+ android:id="@+id/lights_green"
+ style="@style/FieldContents"
+ android:text="green"
+ android:tag="0x00ff00"
+ />
+ <RadioButton
+ android:id="@+id/lights_blue"
+ style="@style/FieldContents"
+ android:text="blue"
+ android:tag="0x0000ff"
+ />
+ <RadioButton
+ android:id="@+id/lights_cyan"
+ style="@style/FieldContents"
+ android:text="cyan"
+ android:tag="0x00ffff"
+ />
+ <RadioButton
+ android:id="@+id/lights_magenta"
+ style="@style/FieldContents"
+ android:text="magenta"
+ android:tag="0xff00ff"
+ />
+ <RadioButton
+ android:id="@+id/lights_yellow"
+ style="@style/FieldContents"
+ android:text="yellow"
+ android:tag="0xffff00"
+ />
+ <RadioButton
+ android:id="@+id/lights_white"
+ style="@style/FieldContents"
+ android:text="white"
+ android:tag="0xffffff"
+ />
+ </RadioGroup>
+ </LinearLayout>
+
+ <!-- setPriority -->
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
+ <TextView
+ style="@style/FieldTitle"
+ android:text="setPriority"
/>
- <RadioButton
- android:id="@+id/lights_green"
- style="@style/FieldContents"
- android:text="green"
- android:tag="0x00ff00"
- />
- <RadioButton
- android:id="@+id/lights_blue"
- style="@style/FieldContents"
- android:text="blue"
- android:tag="0x0000ff"
- />
- <RadioButton
- android:id="@+id/lights_cyan"
- style="@style/FieldContents"
- android:text="cyan"
- android:tag="0x00ffff"
- />
- <RadioButton
- android:id="@+id/lights_magenta"
- style="@style/FieldContents"
- android:text="magenta"
- android:tag="0xff00ff"
- />
- <RadioButton
- android:id="@+id/lights_yellow"
- style="@style/FieldContents"
- android:text="yellow"
- android:tag="0xffff00"
- />
- <RadioButton
- android:id="@+id/lights_white"
- style="@style/FieldContents"
- android:text="white"
- android:tag="0xffffff"
- />
- </RadioGroup>
+ <RadioGroup
+ android:id="@+id/group_priority"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/pri_max"
+ style="@style/FieldContents"
+ android:text="MAX"
+ />
+ <RadioButton
+ android:id="@+id/pri_high"
+ style="@style/FieldContents"
+ android:text="HIGH"
+ />
+ <RadioButton
+ android:id="@+id/pri_default"
+ style="@style/FieldContents"
+ android:text="DEFAULT"
+ />
+ <RadioButton
+ android:id="@+id/pri_low"
+ style="@style/FieldContents"
+ android:text="LOW"
+ />
+ <RadioButton
+ android:id="@+id/pri_min"
+ style="@style/FieldContents"
+ android:text="MIN"
+ />
+ </RadioGroup>
+ </LinearLayout>
<!-- setLights -->
- <RadioGroup
- android:id="@+id/group_lights_blink"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="setLights (blink)"
/>
- <RadioButton
- android:id="@+id/lights_off"
- style="@style/FieldContents"
- android:text="off"
- />
- <RadioButton
- android:id="@+id/lights_slow"
- style="@style/FieldContents"
- android:text="slow"
- />
- <RadioButton
- android:id="@+id/lights_fast"
- style="@style/FieldContents"
- android:text="fast"
- />
- <RadioButton
- android:id="@+id/lights_on"
- style="@style/FieldContents"
- android:text="on"
- />
- </RadioGroup>
-
+ <RadioGroup
+ android:id="@+id/group_lights_blink"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/lights_off"
+ style="@style/FieldContents"
+ android:text="off"
+ />
+ <RadioButton
+ android:id="@+id/lights_slow"
+ style="@style/FieldContents"
+ android:text="slow"
+ />
+ <RadioButton
+ android:id="@+id/lights_fast"
+ style="@style/FieldContents"
+ android:text="fast"
+ />
+ <RadioButton
+ android:id="@+id/lights_on"
+ style="@style/FieldContents"
+ android:text="on"
+ />
+ </RadioGroup>
+ </LinearLayout>
+
<!-- flags -->
<LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_marginTop="12dp"
- >
+ style="@style/FieldGroup"
+ android:layout_marginTop="30dp"
+ >
<TextView
style="@style/FieldTitle"
android:text="flags"
/>
- <CheckBox
- android:id="@+id/flag_ongoing"
- style="@style/FieldContents"
- android:text="setOngoing"
- />
- <CheckBox
- android:id="@+id/flag_once"
- style="@style/FieldContents"
- android:text="setOnlyAlertOnce"
- />
- <CheckBox
- android:id="@+id/flag_auto_cancel"
- style="@style/FieldContents"
- android:text="setAutoCancel"
- />
+ <LinearLayout
+ style="@style/FieldChoices"
+ >
+ <CheckBox
+ android:id="@+id/flag_ongoing"
+ style="@style/FieldContents"
+ android:text="ongoing"
+ />
+ <CheckBox
+ android:id="@+id/flag_once"
+ style="@style/FieldContents"
+ android:text="onlyAlertOnce"
+ />
+ <CheckBox
+ android:id="@+id/flag_auto_cancel"
+ style="@style/FieldContents"
+ android:text="autoCancel"
+ />
+ </LinearLayout>
</LinearLayout>
-
+
<!-- defaults -->
<LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- >
+ style="@style/FieldGroup"
+ >
<TextView
style="@style/FieldTitle"
android:text="defaults"
/>
- <CheckBox
- android:id="@+id/default_sound"
- style="@style/FieldContents"
- android:text="sound"
- />
- <CheckBox
- android:id="@+id/default_vibrate"
- style="@style/FieldContents"
- android:text="vibrate"
- />
- <CheckBox
- android:id="@+id/default_lights"
- style="@style/FieldContents"
- android:text="lights"
- />
+ <LinearLayout
+ style="@style/FieldChoices"
+ >
+ <CheckBox
+ android:id="@+id/default_sound"
+ style="@style/FieldContents"
+ android:text="sound"
+ />
+ <CheckBox
+ android:id="@+id/default_vibrate"
+ style="@style/FieldContents"
+ android:text="vibrate"
+ />
+ <CheckBox
+ android:id="@+id/default_lights"
+ style="@style/FieldContents"
+ android:text="lights"
+ />
+ </LinearLayout>
</LinearLayout>
-
-
-
+ <!-- delay -->
+ <LinearLayout
+ style="@style/FieldGroup"
+ >
+ <TextView
+ style="@style/FieldTitle"
+ android:text="notify"
+ />
+ <RadioGroup
+ android:id="@+id/group_delay"
+ style="@style/FieldChoices"
+ >
+ <RadioButton
+ android:id="@+id/delay_none"
+ style="@style/FieldContents"
+ android:text="immediately"
+ />
+ <RadioButton
+ android:id="@+id/delay_5"
+ style="@style/FieldContents"
+ android:text="in 5 sec"
+ />
+ </RadioGroup>
+ </LinearLayout>
</LinearLayout>
</LinearLayout>
diff --git a/tests/StatusBar/res/values/styles.xml b/tests/StatusBar/res/values/styles.xml
index 103a25a..f2c9f0d 100644
--- a/tests/StatusBar/res/values/styles.xml
+++ b/tests/StatusBar/res/values/styles.xml
@@ -45,8 +45,10 @@
<style name="FieldTitle">
<item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
- <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_width">120dp</item>
<item name="android:layout_height">wrap_content</item>
+ <item name="android:gravity">right</item>
+ <item name="android:textStyle">bold</item>
</style>
<style name="FieldContents">
@@ -61,5 +63,18 @@
<item name="android:visibility">gone</item>
</style>
+ <style name="FieldGroup">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:orientation">horizontal</item>
+ <item name="android:layout_marginTop">18dp</item>
+ </style>
+
+ <style name="FieldChoices">
+ <item name="android:layout_width">wrap_content</item>
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:orientation">vertical</item>
+ <item name="android:baselineAlignedChildIndex">0</item>
+ </style>
</resources>
diff --git a/tests/StatusBar/src/com/android/statusbartest/NotificationBuilderTest.java b/tests/StatusBar/src/com/android/statusbartest/NotificationBuilderTest.java
index 2f0c173..5d0b155 100644
--- a/tests/StatusBar/src/com/android/statusbartest/NotificationBuilderTest.java
+++ b/tests/StatusBar/src/com/android/statusbartest/NotificationBuilderTest.java
@@ -30,6 +30,7 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
+import android.os.Handler;
import android.os.Vibrator;
import android.os.Handler;
import android.text.SpannableStringBuilder;
@@ -49,11 +50,14 @@
private final static String TAG = "NotificationTestList";
NotificationManager mNM;
+ Handler mHandler;
+ int mStartDelay;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
+ mHandler = new Handler();
setContentView(R.layout.notification_builder_test);
if (icicle == null) {
setDefaults();
@@ -100,8 +104,13 @@
setChecked(R.id.large_icon_none);
setChecked(R.id.sound_none);
setChecked(R.id.vibrate_none);
+ setChecked(R.id.pri_default);
setChecked(R.id.lights_red);
setChecked(R.id.lights_off);
+ setChecked(R.id.delay_none);
+// setChecked(R.id.default_vibrate);
+// setChecked(R.id.default_sound);
+// setChecked(R.id.default_lights);
}
private View.OnClickListener mClickListener = new View.OnClickListener() {
@@ -183,9 +192,13 @@
}
};
- private void sendNotification(int id) {
+ private void sendNotification(final int id) {
final Notification n = buildNotification(id);
- mNM.notify(id, n);
+ mHandler.postDelayed(new Runnable() {
+ public void run() {
+ mNM.notify(id, n);
+ }
+ }, mStartDelay);
}
private static CharSequence subst(CharSequence in, char ch, CharSequence sub) {
@@ -323,23 +336,26 @@
// vibrate
switch (getRadioChecked(R.id.group_vibrate)) {
case R.id.vibrate_none:
+ b.setVibrate(null);
+ break;
+ case R.id.vibrate_zero:
+ b.setVibrate(new long[] { 0 });
break;
case R.id.vibrate_short:
- b.setVibrate(new long[] { 0, 200 });
- break;
- case R.id.vibrate_medium:
- b.setVibrate(new long[] { 0, 500 });
+ b.setVibrate(new long[] { 0, 100 });
break;
case R.id.vibrate_long:
b.setVibrate(new long[] { 0, 1000 });
break;
case R.id.vibrate_pattern:
- b.setVibrate(new long[] { 0, 250, 250, 250, 250, 250, 250, 250 });
+ b.setVibrate(new long[] { 0, 50, 200, 50, 200, 50, 500,
+ 500, 200, 500, 200, 500, 500,
+ 50, 200, 50, 200, 50 });
break;
}
// lights
- final int color = getRadioInt(R.id.group_lights_color, 0xff0000);
+ final int color = getRadioHex(R.id.group_lights_color, 0xff0000);
int onMs;
int offMs;
switch (getRadioChecked(R.id.group_lights_blink)) {
@@ -365,6 +381,35 @@
b.setLights(color, onMs, offMs);
}
+ // priority
+ switch (getRadioChecked(R.id.group_priority)) {
+ case R.id.pri_min:
+ b.setPriority(Notification.PRIORITY_MIN);
+ break;
+ case R.id.pri_low:
+ b.setPriority(Notification.PRIORITY_LOW);
+ break;
+ case R.id.pri_default:
+ b.setPriority(Notification.PRIORITY_DEFAULT);
+ break;
+ case R.id.pri_high:
+ b.setPriority(Notification.PRIORITY_HIGH);
+ break;
+ case R.id.pri_max:
+ b.setPriority(Notification.PRIORITY_MAX);
+ break;
+ }
+
+ // start delay
+ switch (getRadioChecked(R.id.group_delay)) {
+ case R.id.delay_none:
+ mStartDelay = 0;
+ break;
+ case R.id.delay_5:
+ mStartDelay = 5000;
+ break;
+ }
+
// flags
b.setOngoing(getChecked(R.id.flag_ongoing));
b.setOnlyAlertOnce(getChecked(R.id.flag_once));
@@ -383,7 +428,7 @@
}
b.setDefaults(defaults);
- return b.getNotification();
+ return b.build();
}
private void setChecked(int id) {
@@ -396,14 +441,14 @@
return g.getCheckedRadioButtonId();
}
- private CharSequence getRadioTag(int id) {
+ private String getRadioTag(int id) {
final RadioGroup g = (RadioGroup)findViewById(id);
final View v = findViewById(g.getCheckedRadioButtonId());
- return (CharSequence) v.getTag();
+ return (String) v.getTag();
}
private int getRadioInt(int id, int def) {
- CharSequence str = getRadioTag(id);
+ String str = getRadioTag(id);
if (TextUtils.isEmpty(str)) {
return def;
} else {
@@ -415,6 +460,22 @@
}
}
+ private int getRadioHex(int id, int def) {
+ String str = getRadioTag(id);
+ if (TextUtils.isEmpty(str)) {
+ return def;
+ } else {
+ if (str.startsWith("0x")) {
+ str = str.substring(2);
+ }
+ try {
+ return Integer.parseInt(str.toString(), 16);
+ } catch (NumberFormatException ex) {
+ return def;
+ }
+ }
+ }
+
private boolean getChecked(int id) {
final CompoundButton b = (CompoundButton)findViewById(id);
return b.isChecked();
diff --git a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
index fa2cb50..3e625f9 100644
--- a/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
+++ b/tools/layoutlib/bridge/src/android/view/IWindowManagerImpl.java
@@ -453,6 +453,11 @@
}
@Override
+ public void showAssistant() {
+
+ }
+
+ @Override
public IBinder getFocusedWindowToken() {
// TODO Auto-generated method stub
return null;
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index b871cdc..0e29882 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -508,6 +508,10 @@
private Messenger mWifiServiceMessenger;
private final CountDownLatch mConnected = new CountDownLatch(1);
+ private static Object sThreadRefLock = new Object();
+ private static int sThreadRefCount;
+ private static HandlerThread sHandlerThread;
+
/**
* Create a new WifiManager instance.
* Applications will almost always want to use
@@ -1365,9 +1369,14 @@
return;
}
- HandlerThread t = new HandlerThread("WifiManager");
- t.start();
- mHandler = new ServiceHandler(t.getLooper());
+ synchronized (sThreadRefLock) {
+ if (++sThreadRefCount == 1) {
+ sHandlerThread = new HandlerThread("WifiManager");
+ sHandlerThread.start();
+ }
+ }
+
+ mHandler = new ServiceHandler(sHandlerThread.getLooper());
mAsyncChannel.connect(mContext, mHandler, mWifiServiceMessenger);
try {
mConnected.await();
@@ -1983,8 +1992,10 @@
protected void finalize() throws Throwable {
try {
- if (mHandler != null && mHandler.getLooper() != null) {
- mHandler.getLooper().quit();
+ synchronized (sThreadRefLock) {
+ if (--sThreadRefCount == 0 && sHandlerThread != null) {
+ sHandlerThread.getLooper().quit();
+ }
}
} finally {
super.finalize();