Merge change 23750 into eclair
* changes:
Add a test case to measure the power usage of loading a web page
diff --git a/Android.mk b/Android.mk
index 97f012c..138ff09 100644
--- a/Android.mk
+++ b/Android.mk
@@ -367,13 +367,13 @@
## SDK version identifiers used in the published docs
# major[.minor] version for current SDK. (full releases only)
-framework_docs_SDK_VERSION:=1.5
+framework_docs_SDK_VERSION:=1.6
# release version (ie "Release x") (full releases only)
-framework_docs_SDK_REL_ID:=3
+framework_docs_SDK_REL_ID:=1
# name of current SDK directory (full releases only)
framework_docs_SDK_CURRENT_DIR:=$(framework_docs_SDK_VERSION)_r$(framework_docs_SDK_REL_ID)
# flag to build offline docs for a preview release
-framework_docs_SDK_PREVIEW:=true
+framework_docs_SDK_PREVIEW:=0
framework_docs_LOCAL_DROIDDOC_OPTIONS += \
-hdf sdk.version $(framework_docs_SDK_VERSION) \
diff --git a/api/current.xml b/api/current.xml
index d8609ec..b052a61 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -34212,6 +34212,17 @@
visibility="public"
>
</field>
+<field name="EXTRA_CHANGED_COMPONENT_NAME"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value=""android.intent.extra.changed_component_name""
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="EXTRA_DATA_REMOVED"
type="java.lang.String"
transient="false"
diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c
index 3ddc922..6a00e3e 100644
--- a/cmds/dumpstate/dumpstate.c
+++ b/cmds/dumpstate/dumpstate.c
@@ -25,6 +25,7 @@
#include <sys/time.h>
#include <sys/resource.h>
+#include <cutils/sockets.h>
#include "private/android_filesystem_config.h"
#include "dumpstate.h"
@@ -164,11 +165,11 @@
int main(int argc, char *argv[]) {
int dumpcrash = check_command_name(argv[0], "dumpcrash");
- int bugreport = check_command_name(argv[0], "bugreport");
int add_date = 0;
char* outfile = 0;
int vibrate = 0;
int compress = 0;
+ int socket = 0;
int c, fd, vibrate_fd, fds[2];
char path[PATH_MAX];
pid_t pid;
@@ -180,31 +181,32 @@
get_time(&now);
- if (bugreport) {
- do {
- c = getopt(argc, argv, "do:vz");
- if (c == EOF)
+ do {
+ c = getopt(argc, argv, "do:svz");
+ if (c == EOF)
+ break;
+ switch (c) {
+ case 'd':
+ add_date = 1;
break;
- switch (c) {
- case 'd':
- add_date = 1;
- break;
- case 'o':
- outfile = optarg;
- break;
- case 'v':
- vibrate = 1;
- break;
- case 'z':
- compress = 1;
- break;
- case '?':
- fprintf(stderr, "%s: invalid option -%c\n",
- argv[0], optopt);
- exit(1);
- }
- } while (1);
- }
+ case 'o':
+ outfile = optarg;
+ break;
+ case 'v':
+ vibrate = 1;
+ break;
+ case 'z':
+ compress = 1;
+ break;
+ case 's':
+ socket = 1;
+ break;
+ case '?':
+ fprintf(stderr, "%s: invalid option -%c\n",
+ argv[0], optopt);
+ exit(1);
+ }
+ } while (1);
/* open vibrator before switching user */
if (vibrate) {
@@ -214,14 +216,40 @@
} else
vibrate_fd = -1;
+#if 0
/* switch to non-root user and group */
setgroups(sizeof(groups)/sizeof(groups[0]), groups);
setuid(AID_SHELL);
+#endif
/* make it safe to use both printf and STDOUT_FILENO */
setvbuf(stdout, 0, _IONBF, 0);
- if (outfile) {
+ if (socket) {
+ struct sockaddr addr;
+ socklen_t alen;
+
+ int s = android_get_control_socket("dumpstate");
+ if (s < 0) {
+ fprintf(stderr, "could not open dumpstate socket\n");
+ exit(1);
+ }
+ if (listen(s, 4) < 0) {
+ fprintf(stderr, "could not listen on dumpstate socket\n");
+ exit(1);
+ }
+
+ alen = sizeof(addr);
+ fd = accept(s, &addr, &alen);
+ if (fd < 0) {
+ fprintf(stderr, "could not accept dumpstate socket\n");
+ exit(1);
+ }
+
+ /* redirect stdout to the socket */
+ dup2(fd, STDOUT_FILENO);
+ close(fd);
+ } else if (outfile) {
if (strlen(outfile) > sizeof(path) - 100)
exit(1);
diff --git a/cmds/stagefright/Android.mk b/cmds/stagefright/Android.mk
index ef67611..51a0649 100644
--- a/cmds/stagefright/Android.mk
+++ b/cmds/stagefright/Android.mk
@@ -24,6 +24,7 @@
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
+ SineSource.cpp \
record.cpp
LOCAL_SHARED_LIBRARIES := \
diff --git a/cmds/stagefright/JPEGSource.cpp b/cmds/stagefright/JPEGSource.cpp
index a7994ed..4e9ca4e 100644
--- a/cmds/stagefright/JPEGSource.cpp
+++ b/cmds/stagefright/JPEGSource.cpp
@@ -102,7 +102,7 @@
meta->setCString(kKeyMIMEType, "image/jpeg");
meta->setInt32(kKeyWidth, mWidth);
meta->setInt32(kKeyHeight, mHeight);
- meta->setInt32(kKeyCompressedSize, mSize);
+ meta->setInt32(kKeyMaxInputSize, mSize);
return meta;
}
diff --git a/cmds/stagefright/SineSource.cpp b/cmds/stagefright/SineSource.cpp
new file mode 100644
index 0000000..3c25a7f
--- /dev/null
+++ b/cmds/stagefright/SineSource.cpp
@@ -0,0 +1,100 @@
+#include "SineSource.h"
+
+#include <math.h>
+
+#include <media/stagefright/MediaBufferGroup.h>
+#include <media/stagefright/MediaDebug.h>
+#include <media/stagefright/MetaData.h>
+
+namespace android {
+
+SineSource::SineSource(int32_t sampleRate, int32_t numChannels)
+ : mStarted(false),
+ mSampleRate(sampleRate),
+ mNumChannels(numChannels),
+ mPhase(0),
+ mGroup(NULL) {
+ CHECK(numChannels == 1 || numChannels == 2);
+}
+
+SineSource::~SineSource() {
+ if (mStarted) {
+ stop();
+ }
+}
+
+status_t SineSource::start(MetaData *params) {
+ CHECK(!mStarted);
+
+ mGroup = new MediaBufferGroup;
+ mGroup->add_buffer(new MediaBuffer(kBufferSize));
+
+ mPhase = 0;
+ mStarted = true;
+
+ return OK;
+}
+
+status_t SineSource::stop() {
+ CHECK(mStarted);
+
+ delete mGroup;
+ mGroup = NULL;
+
+ mStarted = false;
+
+ return OK;
+}
+
+sp<MetaData> SineSource::getFormat() {
+ sp<MetaData> meta = new MetaData;
+ meta->setCString(kKeyMIMEType, "audio/raw");
+ meta->setInt32(kKeyChannelCount, mNumChannels);
+ meta->setInt32(kKeySampleRate, mSampleRate);
+
+ return meta;
+}
+
+status_t SineSource::read(
+ MediaBuffer **out, const ReadOptions *options) {
+ *out = NULL;
+
+ MediaBuffer *buffer;
+ status_t err = mGroup->acquire_buffer(&buffer);
+
+ if (err != OK) {
+ return err;
+ }
+
+ size_t frameSize = mNumChannels * sizeof(int16_t);
+ size_t numFramesPerBuffer = buffer->size() / frameSize;
+
+ int16_t *ptr = (int16_t *)buffer->data();
+
+ const double k = kFrequency / mSampleRate * (2.0 * M_PI);
+
+ double x = mPhase * k;
+ for (size_t i = 0; i < numFramesPerBuffer; ++i) {
+ int16_t amplitude = (int16_t)(32767.0 * sin(x));
+
+ *ptr++ = amplitude;
+ if (mNumChannels == 2) {
+ *ptr++ = amplitude;
+ }
+
+ x += k;
+ }
+
+ buffer->meta_data()->setInt32(kKeyTimeUnits, mPhase);
+ buffer->meta_data()->setInt32(kKeyTimeScale, mSampleRate);
+
+ mPhase += numFramesPerBuffer;
+
+ buffer->set_range(0, numFramesPerBuffer * frameSize);
+
+ *out = buffer;
+
+ return OK;
+}
+
+} // namespace android
diff --git a/cmds/stagefright/SineSource.h b/cmds/stagefright/SineSource.h
new file mode 100644
index 0000000..76ab669
--- /dev/null
+++ b/cmds/stagefright/SineSource.h
@@ -0,0 +1,39 @@
+#ifndef SINE_SOURCE_H_
+
+#define SINE_SOURCE_H_
+
+#include <media/stagefright/MediaSource.h>
+
+namespace android {
+
+struct MediaBufferGroup;
+
+struct SineSource : public MediaSource {
+ SineSource(int32_t sampleRate, int32_t numChannels);
+
+ virtual status_t start(MetaData *params);
+ virtual status_t stop();
+
+ virtual sp<MetaData> getFormat();
+
+ virtual status_t read(
+ MediaBuffer **out, const ReadOptions *options = NULL);
+
+protected:
+ virtual ~SineSource();
+
+private:
+ enum { kBufferSize = 8192 };
+ static const double kFrequency = 500.0;
+
+ bool mStarted;
+ int32_t mSampleRate;
+ int32_t mNumChannels;
+ size_t mPhase;
+
+ MediaBufferGroup *mGroup;
+};
+
+} // namespace android
+
+#endif // SINE_SOURCE_H_
diff --git a/cmds/stagefright/record.cpp b/cmds/stagefright/record.cpp
index 4b44761..81a1c0a 100644
--- a/cmds/stagefright/record.cpp
+++ b/cmds/stagefright/record.cpp
@@ -14,7 +14,10 @@
* limitations under the License.
*/
+#include "SineSource.h"
+
#include <binder/ProcessState.h>
+#include <media/stagefright/AudioPlayer.h>
#include <media/stagefright/CameraSource.h>
#include <media/stagefright/MediaBufferGroup.h>
#include <media/stagefright/MediaDebug.h>
@@ -24,9 +27,11 @@
#include <media/stagefright/MmapSource.h>
#include <media/stagefright/OMXClient.h>
#include <media/stagefright/OMXCodec.h>
+#include <media/MediaPlayerInterface.h>
using namespace android;
+#if 0
class DummySource : public MediaSource {
public:
DummySource(int width, int height)
@@ -45,11 +50,6 @@
return meta;
}
- virtual status_t getMaxSampleSize(size_t *max_size) {
- *max_size = mSize;
- return OK;
- }
-
virtual status_t start(MetaData *params) {
return OK;
}
@@ -158,7 +158,7 @@
OMXCodec::Create(
client.interface(), enc_meta, true /* createEncoder */, decoder);
-#if 1
+#if 0
sp<MPEG4Writer> writer = new MPEG4Writer("/sdcard/output.mp4");
writer->addSource(enc_meta, encoder);
writer->start();
@@ -204,4 +204,60 @@
return 0;
}
+#else
+int main(int argc, char **argv) {
+ android::ProcessState::self()->startThreadPool();
+
+ OMXClient client;
+ CHECK_EQ(client.connect(), OK);
+
+ const int32_t kSampleRate = 22050;
+ const int32_t kNumChannels = 2;
+ sp<MediaSource> audioSource = new SineSource(kSampleRate, kNumChannels);
+
+#if 0
+ sp<MediaPlayerBase::AudioSink> audioSink;
+ AudioPlayer *player = new AudioPlayer(audioSink);
+ player->setSource(audioSource);
+ player->start();
+
+ sleep(10);
+
+ player->stop();
+#endif
+
+ sp<MetaData> encMeta = new MetaData;
+ encMeta->setCString(kKeyMIMEType, 1 ? "audio/3gpp" : "audio/mp4a-latm");
+ encMeta->setInt32(kKeySampleRate, kSampleRate);
+ encMeta->setInt32(kKeyChannelCount, kNumChannels);
+ encMeta->setInt32(kKeyMaxInputSize, 8192);
+
+ sp<MediaSource> encoder =
+ OMXCodec::Create(client.interface(), encMeta, true, audioSource);
+
+ encoder->start();
+
+ int32_t n = 0;
+ status_t err;
+ MediaBuffer *buffer;
+ while ((err = encoder->read(&buffer)) == OK) {
+ printf(".");
+ fflush(stdout);
+
+ buffer->release();
+ buffer = NULL;
+
+ if (++n == 10000) {
+ break;
+ }
+ }
+ printf("$\n");
+
+ encoder->stop();
+
+ client.disconnect();
+
+ return 0;
+}
+#endif
diff --git a/core/java/android/accounts/Constants.java b/core/java/android/accounts/Constants.java
index 8736f41..15b1773 100644
--- a/core/java/android/accounts/Constants.java
+++ b/core/java/android/accounts/Constants.java
@@ -52,7 +52,7 @@
/**
* Action sent as a broadcast Intent by the AccountsService
* when accounts are added to and/or removed from the device's
- * database, or when the primary account is changed.
+ * database.
*/
public static final String LOGIN_ACCOUNTS_CHANGED_ACTION =
"android.accounts.LOGIN_ACCOUNTS_CHANGED";
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 52d6891..213f26e 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -941,13 +941,6 @@
return true;
}
- case SYSTEM_READY_TRANSACTION: {
- data.enforceInterface(IActivityManager.descriptor);
- systemReady();
- reply.writeNoException();
- return true;
- }
-
case HANDLE_APPLICATION_ERROR_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
IBinder app = data.readStrongBinder();
@@ -2248,16 +2241,6 @@
data.recycle();
reply.recycle();
}
- public void systemReady() throws RemoteException
- {
- Parcel data = Parcel.obtain();
- Parcel reply = Parcel.obtain();
- data.writeInterfaceToken(IActivityManager.descriptor);
- mRemote.transact(SYSTEM_READY_TRANSACTION, data, reply, 0);
- reply.readException();
- data.recycle();
- reply.recycle();
- }
public boolean testIsSystemReady()
{
/* this base class version is never called */
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index 98a8481..a7bef54 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -233,7 +233,6 @@
// Special low-level communication with activity manager.
public void startRunning(String pkg, String cls, String action,
String data) throws RemoteException;
- public void systemReady() throws RemoteException;
// Returns 1 if the user wants to debug.
public int handleApplicationError(IBinder app,
int flags, /* 1 == can debug */
@@ -368,7 +367,7 @@
int PUBLISH_CONTENT_PROVIDERS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+29;
int SET_PERSISTENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+30;
int FINISH_SUB_ACTIVITY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+31;
- int SYSTEM_READY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+32;
+
int START_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+33;
int STOP_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+34;
int BIND_SERVICE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+35;
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index 7669306..dbe080b 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -29,6 +29,8 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -58,9 +60,25 @@
private IWallpaperManager mService;
private Bitmap mWallpaper;
- Globals() {
+ private static final int MSG_CLEAR_WALLPAPER = 1;
+
+ private final Handler mHandler;
+
+ Globals(Looper looper) {
IBinder b = ServiceManager.getService(Context.WALLPAPER_SERVICE);
mService = IWallpaperManager.Stub.asInterface(b);
+ mHandler = new Handler(looper) {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MSG_CLEAR_WALLPAPER:
+ synchronized (this) {
+ mWallpaper = null;
+ }
+ break;
+ }
+ }
+ };
}
public void onWallpaperChanged() {
@@ -69,9 +87,7 @@
* to null so if the user requests the wallpaper again then we'll
* fetch it.
*/
- synchronized (this) {
- mWallpaper = null;
- }
+ mHandler.sendEmptyMessage(MSG_CLEAR_WALLPAPER);
}
public Bitmap peekWallpaperBitmap(Context context) {
@@ -170,17 +186,17 @@
private static Object mSync = new Object();
private static Globals sGlobals;
- static Globals getGlobals() {
+ static void initGlobals(Looper looper) {
synchronized (mSync) {
if (sGlobals == null) {
- sGlobals = new Globals();
+ sGlobals = new Globals(looper);
}
- return sGlobals;
}
}
/*package*/ WallpaperManager(Context context, Handler handler) {
mContext = context;
+ initGlobals(context.getMainLooper());
}
/**
@@ -193,7 +209,7 @@
/** @hide */
public IWallpaperManager getIWallpaperManager() {
- return getGlobals().mService;
+ return sGlobals.mService;
}
/**
@@ -218,7 +234,7 @@
* null pointer if these is none.
*/
public Drawable peekDrawable() {
- Bitmap bm = getGlobals().peekWallpaperBitmap(mContext);
+ Bitmap bm = sGlobals.peekWallpaperBitmap(mContext);
return bm != null ? new BitmapDrawable(mContext.getResources(), bm) : null;
}
@@ -237,7 +253,7 @@
try {
Resources resources = mContext.getResources();
/* Set the wallpaper to the default values */
- ParcelFileDescriptor fd = getGlobals().mService.setWallpaper(
+ ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(
"res:" + resources.getResourceName(resid));
if (fd != null) {
FileOutputStream fos = null;
@@ -266,7 +282,7 @@
*/
public void setBitmap(Bitmap bitmap) throws IOException {
try {
- ParcelFileDescriptor fd = getGlobals().mService.setWallpaper(null);
+ ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null);
if (fd == null) {
return;
}
@@ -297,7 +313,7 @@
*/
public void setStream(InputStream data) throws IOException {
try {
- ParcelFileDescriptor fd = getGlobals().mService.setWallpaper(null);
+ ParcelFileDescriptor fd = sGlobals.mService.setWallpaper(null);
if (fd == null) {
return;
}
@@ -339,7 +355,7 @@
*/
public int getDesiredMinimumWidth() {
try {
- return getGlobals().mService.getWidthHint();
+ return sGlobals.mService.getWidthHint();
} catch (RemoteException e) {
// Shouldn't happen!
return 0;
@@ -362,7 +378,7 @@
*/
public int getDesiredMinimumHeight() {
try {
- return getGlobals().mService.getHeightHint();
+ return sGlobals.mService.getHeightHint();
} catch (RemoteException e) {
// Shouldn't happen!
return 0;
@@ -379,7 +395,7 @@
*/
public void suggestDesiredDimensions(int minimumWidth, int minimumHeight) {
try {
- getGlobals().mService.setDimensionHints(minimumWidth, minimumHeight);
+ sGlobals.mService.setDimensionHints(minimumWidth, minimumHeight);
} catch (RemoteException e) {
}
}
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 6bd2a5a..8975fe2 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -312,7 +312,7 @@
BluetoothServerSocket socket = new BluetoothServerSocket(
BluetoothSocket.TYPE_RFCOMM, true, true, channel);
try {
- socket.mSocket.bindListenNative();
+ socket.mSocket.bindListen();
} catch (IOException e) {
try {
socket.close();
@@ -334,7 +334,7 @@
BluetoothServerSocket socket = new BluetoothServerSocket(
BluetoothSocket.TYPE_RFCOMM, false, false, port);
try {
- socket.mSocket.bindListenNative();
+ socket.mSocket.bindListen();
} catch (IOException e) {
try {
socket.close();
@@ -356,7 +356,7 @@
BluetoothServerSocket socket = new BluetoothServerSocket(
BluetoothSocket.TYPE_SCO, false, false, -1);
try {
- socket.mSocket.bindListenNative();
+ socket.mSocket.bindListen();
} catch (IOException e) {
try {
socket.close();
diff --git a/core/java/android/bluetooth/BluetoothInputStream.java b/core/java/android/bluetooth/BluetoothInputStream.java
index c060f32..03af953 100644
--- a/core/java/android/bluetooth/BluetoothInputStream.java
+++ b/core/java/android/bluetooth/BluetoothInputStream.java
@@ -37,7 +37,7 @@
* Return number of bytes available before this stream will block.
*/
public int available() throws IOException {
- return mSocket.availableNative();
+ return mSocket.available();
}
public void close() throws IOException {
@@ -57,7 +57,7 @@
*/
public int read() throws IOException {
byte b[] = new byte[1];
- int ret = mSocket.readNative(b, 0, 1);
+ int ret = mSocket.read(b, 0, 1);
if (ret == 1) {
return (int)b[0] & 0xff;
} else {
@@ -93,6 +93,6 @@
if ((offset | length) < 0 || length > b.length - offset) {
throw new ArrayIndexOutOfBoundsException("invalid offset or length");
}
- return mSocket.readNative(b, offset, length);
+ return mSocket.read(b, offset, length);
}
}
diff --git a/core/java/android/bluetooth/BluetoothOutputStream.java b/core/java/android/bluetooth/BluetoothOutputStream.java
index 7e2ead4..62242a2 100644
--- a/core/java/android/bluetooth/BluetoothOutputStream.java
+++ b/core/java/android/bluetooth/BluetoothOutputStream.java
@@ -53,7 +53,7 @@
public void write(int oneByte) throws IOException {
byte b[] = new byte[1];
b[0] = (byte)oneByte;
- mSocket.writeNative(b, 0, 1);
+ mSocket.write(b, 0, 1);
}
/**
@@ -82,6 +82,6 @@
if ((offset | count) < 0 || count > b.length - offset) {
throw new IndexOutOfBoundsException("invalid offset or length");
}
- mSocket.writeNative(b, offset, count);
+ mSocket.write(b, offset, count);
}
}
diff --git a/core/java/android/bluetooth/BluetoothServerSocket.java b/core/java/android/bluetooth/BluetoothServerSocket.java
index e653c23..b650841 100644
--- a/core/java/android/bluetooth/BluetoothServerSocket.java
+++ b/core/java/android/bluetooth/BluetoothServerSocket.java
@@ -47,6 +47,7 @@
* operations and close the socket.
*/
public final class BluetoothServerSocket implements Closeable {
+
/*package*/ final BluetoothSocket mSocket;
/**
@@ -88,7 +89,7 @@
* timeout
*/
public BluetoothSocket accept(int timeout) throws IOException {
- return mSocket.acceptNative(timeout);
+ return mSocket.accept(timeout);
}
/**
@@ -97,6 +98,6 @@
* throw an IOException.
*/
public void close() throws IOException {
- mSocket.closeNative();
+ mSocket.close();
}
}
diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java
index eae0f37..ccbe23e 100644
--- a/core/java/android/bluetooth/BluetoothSocket.java
+++ b/core/java/android/bluetooth/BluetoothSocket.java
@@ -21,6 +21,8 @@
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
/**
* A connected or connecting Bluetooth socket.
*
@@ -63,7 +65,14 @@
private final BluetoothInputStream mInputStream;
private final BluetoothOutputStream mOutputStream;
- private int mSocketData; /* used by native code only */
+ /** prevents all native calls after destroyNative() */
+ private boolean mClosed;
+
+ /** protects mClosed */
+ private final ReentrantReadWriteLock mLock;
+
+ /** used by native code only */
+ private int mSocketData;
/**
* Construct a BluetoothSocket.
@@ -95,6 +104,8 @@
}
mInputStream = new BluetoothInputStream(this);
mOutputStream = new BluetoothOutputStream(this);
+ mClosed = false;
+ mLock = new ReentrantReadWriteLock();
}
/**
@@ -132,7 +143,13 @@
* @throws IOException on error, for example connection failure
*/
public void connect() throws IOException {
- connectNative();
+ mLock.readLock().lock();
+ try {
+ if (mClosed) throw new IOException("socket closed");
+ connectNative();
+ } finally {
+ mLock.readLock().unlock();
+ }
}
/**
@@ -141,7 +158,24 @@
* throw an IOException.
*/
public void close() throws IOException {
- closeNative();
+ // abort blocking operations on the socket
+ mLock.readLock().lock();
+ try {
+ if (mClosed) return;
+ abortNative();
+ } finally {
+ mLock.readLock().unlock();
+ }
+
+ // all native calls are guarenteed to immediately return after
+ // abortNative(), so this lock should immediatley acquire
+ mLock.writeLock().lock();
+ try {
+ mClosed = true;
+ destroyNative();
+ } finally {
+ mLock.writeLock().unlock();
+ }
}
/**
@@ -174,14 +208,64 @@
return mOutputStream;
}
+ /*package*/ void bindListen() throws IOException {
+ mLock.readLock().lock();
+ try {
+ if (mClosed) throw new IOException("socket closed");
+ bindListenNative();
+ } finally {
+ mLock.readLock().unlock();
+ }
+ }
+
+ /*package*/ BluetoothSocket accept(int timeout) throws IOException {
+ mLock.readLock().lock();
+ try {
+ if (mClosed) throw new IOException("socket closed");
+ return acceptNative(timeout);
+ } finally {
+ mLock.readLock().unlock();
+ }
+ }
+
+ /*package*/ int available() throws IOException {
+ mLock.readLock().lock();
+ try {
+ if (mClosed) throw new IOException("socket closed");
+ return availableNative();
+ } finally {
+ mLock.readLock().unlock();
+ }
+ }
+
+ /*package*/ int read(byte[] b, int offset, int length) throws IOException {
+ mLock.readLock().lock();
+ try {
+ if (mClosed) throw new IOException("socket closed");
+ return readNative(b, offset, length);
+ } finally {
+ mLock.readLock().unlock();
+ }
+ }
+
+ /*package*/ int write(byte[] b, int offset, int length) throws IOException {
+ mLock.readLock().lock();
+ try {
+ if (mClosed) throw new IOException("socket closed");
+ return writeNative(b, offset, length);
+ } finally {
+ mLock.readLock().unlock();
+ }
+ }
+
private native void initSocketNative() throws IOException;
private native void initSocketFromFdNative(int fd) throws IOException;
private native void connectNative() throws IOException;
- /*package*/ native void bindListenNative() throws IOException;
- /*package*/ native BluetoothSocket acceptNative(int timeout) throws IOException;
- /*package*/ native int availableNative() throws IOException;
- /*package*/ native int readNative(byte[] b, int offset, int length) throws IOException;
- /*package*/ native int writeNative(byte[] b, int offset, int length) throws IOException;
- /*package*/ native void closeNative() throws IOException;
+ private native void bindListenNative() throws IOException;
+ private native BluetoothSocket acceptNative(int timeout) throws IOException;
+ private native int availableNative() throws IOException;
+ private native int readNative(byte[] b, int offset, int length) throws IOException;
+ private native int writeNative(byte[] b, int offset, int length) throws IOException;
+ private native void abortNative() throws IOException;
private native void destroyNative() throws IOException;
}
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 2a17672..87a8f39 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -2039,7 +2039,7 @@
/**
* Used as an int extra field in {@link android.content.Intent#ACTION_PACKAGE_CHANGED}
* intent to supply the name of the component that changed.
- * @hide
+ *
*/
public static final String EXTRA_CHANGED_COMPONENT_NAME =
"android.intent.extra.changed_component_name";
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index 4e9e49c..5ffe962 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -177,6 +177,7 @@
private BroadcastReceiver mBootCompletedReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if (!mFactoryTest) {
+ mBootCompleted = true;
AccountManager.get(mContext).addOnAccountsUpdatedListener(SyncManager.this,
mSyncHandler, true /* updateImmediately */);
}
@@ -283,6 +284,8 @@
private final boolean mFactoryTest;
+ private volatile boolean mBootCompleted = false;
+
private ConnectivityManager getConnectivityManager() {
synchronized (this) {
if (mConnManagerDoNotUseDirectly == null) {
@@ -541,6 +544,13 @@
Bundle extras, long delay, boolean onlyThoseWithUnkownSyncableState) {
boolean isLoggable = Log.isLoggable(TAG, Log.VERBOSE);
+ if (!mBootCompleted) {
+ if (isLoggable) {
+ Log.v(TAG, "suppressing scheduleSync() since boot hasn't completed");
+ }
+ return;
+ }
+
if (!isSyncEnabled()) {
if (isLoggable) {
Log.v(TAG, "not syncing because sync is disabled");
@@ -2025,6 +2035,7 @@
private void sendSyncStateIntent() {
Intent syncStateIntent = new Intent(Intent.ACTION_SYNC_STATE_CHANGED);
+ syncStateIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
syncStateIntent.putExtra("active", mNeedSyncActiveNotification);
syncStateIntent.putExtra("failing", mNeedSyncErrorNotification);
mContext.sendBroadcast(syncStateIntent);
diff --git a/core/java/android/content/pm/RegisteredServicesCache.java b/core/java/android/content/pm/RegisteredServicesCache.java
index 342de2b..f5f8f30 100644
--- a/core/java/android/content/pm/RegisteredServicesCache.java
+++ b/core/java/android/content/pm/RegisteredServicesCache.java
@@ -54,7 +54,7 @@
private final String mAttributesName;
// no need to be synchronized since the map is never changed once mService is written
- private volatile Map<V, ServiceInfo<V>> mServices;
+ volatile Map<V, ServiceInfo<V>> mServices;
// synchronized on "this"
private BroadcastReceiver mReceiver = null;
@@ -81,6 +81,7 @@
if (mReceiver == null) {
synchronized (this) {
mReceiver = new BroadcastReceiver() {
+ @Override
public void onReceive(Context context, Intent intent) {
mServices = generateServicesMap();
}
@@ -91,6 +92,7 @@
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_CHANGED);
intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+ intentFilter.addDataScheme("package");
mContext.registerReceiver(mReceiver, intentFilter);
return true;
}
@@ -122,6 +124,7 @@
this.uid = uid;
}
+ @Override
public String toString() {
return "ServiceInfo: " + type + ", " + componentName;
}
@@ -159,6 +162,7 @@
maybeUnregisterForPackageChanges();
}
+ @Override
protected void finalize() throws Throwable {
synchronized (this) {
if (mReceiver != null) {
@@ -169,7 +173,7 @@
super.finalize();
}
- private Map<V, ServiceInfo<V>> generateServicesMap() {
+ Map<V, ServiceInfo<V>> generateServicesMap() {
Map<V, ServiceInfo<V>> services = Maps.newHashMap();
PackageManager pm = mContext.getPackageManager();
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 980cff3..699ddb2 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -74,6 +74,12 @@
public static final int SHELL_UID = 2000;
/**
+ * Defines the UID/GID for the log group.
+ * @hide
+ */
+ public static final int LOG_UID = 1007;
+
+ /**
* Defines the UID/GID for the WIFI supplicant process.
* @hide
*/
diff --git a/core/java/android/pim/ContactsAsyncHelper.java b/core/java/android/pim/ContactsAsyncHelper.java
index 342d208..7c78a81 100644
--- a/core/java/android/pim/ContactsAsyncHelper.java
+++ b/core/java/android/pim/ContactsAsyncHelper.java
@@ -183,8 +183,14 @@
switch (msg.arg1) {
case EVENT_LOAD_IMAGE:
- InputStream inputStream = Contacts.openContactPhotoInputStream(
- args.context.getContentResolver(), args.uri);
+ InputStream inputStream = null;
+ try {
+ inputStream = Contacts.openContactPhotoInputStream(
+ args.context.getContentResolver(), args.uri);
+ } catch (Exception e) {
+ Log.e(LOG_TAG, "Error opening photo input stream", e);
+ }
+
if (inputStream != null) {
args.result = Drawable.createFromStream(inputStream, args.uri.toString());
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 2b67946..86729a9 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -688,6 +688,15 @@
public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "data");
/**
+ * The content:// style URI for this table joined with {@link Presence}
+ * data where applicable.
+ *
+ * @hide
+ */
+ public static final Uri CONTENT_WITH_PRESENCE_URI = Uri.withAppendedPath(AUTHORITY_URI,
+ "data_with_presence");
+
+ /**
* The MIME type of {@link #CONTENT_URI} providing a directory of data.
*/
public static final String CONTENT_TYPE = "vnd.android.cursor.dir/data";
diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
index 4584382..c637e02 100644
--- a/core/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -490,6 +490,13 @@
public static final int RESULT_SMS_OUT_OF_MEMORY = 3;
/**
+ * Set by BroadcastReceiver. Indicates the message, while
+ * possibly valid, is of a format or encoding that is not
+ * supported.
+ */
+ public static final int RESULT_SMS_UNSUPPORTED = 4;
+
+ /**
* Broadcast Action: A new text based SMS message has been received
* by the device. The intent will have the following extra
* values:</p>
@@ -1696,7 +1703,3 @@
public static final String EXTRA_SPN = "spn";
}
}
-
-
-
-
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index d569220..82bff4a 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -5410,6 +5410,18 @@
}
/**
+ * @hide
+ */
+ protected void onDrawVScrollBar(Canvas canvas, ScrollBarDrawable scrollBar,
+ int l, int t, int r, int b) {
+ scrollBar.setBounds(l, t, r, b);
+ scrollBar.setParameters(computeVerticalScrollRange(),
+ computeVerticalScrollOffset(),
+ computeVerticalScrollExtent(), true);
+ scrollBar.draw(canvas);
+ }
+
+ /**
* <p>Draw the vertical scrollbar if {@link #isVerticalScrollBarEnabled()}
* returns true.</p>
*
@@ -5441,13 +5453,11 @@
// TODO: Deal with RTL languages to position scrollbar on left
final int left = scrollX + width - size - (mUserPaddingRight & inside);
- scrollBar.setBounds(left, scrollY + (mPaddingTop & inside),
- left + size, scrollY + height - (mUserPaddingBottom & inside));
- scrollBar.setParameters(
- computeVerticalScrollRange(),
- computeVerticalScrollOffset(),
- computeVerticalScrollExtent(), true);
- scrollBar.draw(canvas);
+ onDrawVScrollBar(canvas, scrollBar,
+ left,
+ scrollY + (mPaddingTop & inside),
+ left + size,
+ scrollY + height - (mUserPaddingBottom & inside));
}
/**
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java
index ce27fd7f9..599c6b0 100644
--- a/core/java/android/webkit/BrowserFrame.java
+++ b/core/java/android/webkit/BrowserFrame.java
@@ -112,8 +112,6 @@
// create PluginManager with current Context
PluginManager.getInstance(context);
}
- AssetManager am = context.getAssets();
- nativeCreateFrame(w, am, proxy.getBackForwardList());
mSettings = settings;
mContext = context;
@@ -121,6 +119,9 @@
mDatabase = WebViewDatabase.getInstance(context);
mWebViewCore = w;
+ AssetManager am = context.getAssets();
+ nativeCreateFrame(w, am, proxy.getBackForwardList());
+
if (DebugFlags.BROWSER_FRAME) {
Log.v(LOGTAG, "BrowserFrame constructor: this=" + this);
}
@@ -670,6 +671,7 @@
// these ids need to be in sync with enum RAW_RES_ID in WebFrame
private static final int NODOMAIN = 1;
private static final int LOADERROR = 2;
+ private static final int DRAWABLEDIR = 3;
String getRawResFilename(int id) {
int resid;
@@ -682,12 +684,26 @@
resid = com.android.internal.R.raw.loaderror;
break;
+ case DRAWABLEDIR:
+ // use one known resource to find the drawable directory
+ resid = com.android.internal.R.drawable.btn_check_off;
+ break;
+
default:
Log.e(LOGTAG, "getRawResFilename got incompatible resource ID");
return "";
}
TypedValue value = new TypedValue();
mContext.getResources().getValue(resid, value, true);
+ if (id == DRAWABLEDIR) {
+ String path = value.string.toString();
+ int index = path.lastIndexOf('/');
+ if (index < 0) {
+ Log.e(LOGTAG, "Can't find drawable directory.");
+ return "";
+ }
+ return path.substring(0, index + 1);
+ }
return value.string.toString();
}
diff --git a/core/java/android/webkit/CallbackProxy.java b/core/java/android/webkit/CallbackProxy.java
index 41e604d..e504591 100644
--- a/core/java/android/webkit/CallbackProxy.java
+++ b/core/java/android/webkit/CallbackProxy.java
@@ -177,17 +177,6 @@
}
/**
- * Tell the host application that the WebView has changed viewing modes.
- * @param newViewingMode One of the values described in WebView as possible
- * values for the viewing mode
- */
- /* package */ void uiOnChangeViewingMode(int newViewingMode) {
- if (mWebChromeClient != null) {
- mWebChromeClient.onChangeViewingMode(mWebView, newViewingMode);
- }
- }
-
- /**
* Called by the UI side. Calling overrideUrlLoading from the WebCore
* side will post a message to call this method.
*/
diff --git a/core/java/android/webkit/GeolocationService.java b/core/java/android/webkit/GeolocationService.java
index 78b25ba..646f8c5 100755
--- a/core/java/android/webkit/GeolocationService.java
+++ b/core/java/android/webkit/GeolocationService.java
@@ -156,11 +156,16 @@
* Registers this object with the location service.
*/
private void registerForLocationUpdates() {
- mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
- mIsNetworkProviderAvailable = true;
- if (mIsGpsEnabled) {
- mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
- mIsGpsProviderAvailable = true;
+ try {
+ mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
+ mIsNetworkProviderAvailable = true;
+ if (mIsGpsEnabled) {
+ mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
+ mIsGpsProviderAvailable = true;
+ }
+ } catch(SecurityException e) {
+ Log.e(TAG, "Caught security exception registering for location updates from system. " +
+ "This should only happen in DumpRenderTree.");
}
}
diff --git a/core/java/android/webkit/ViewManager.java b/core/java/android/webkit/ViewManager.java
index af33b4f..63f4033 100644
--- a/core/java/android/webkit/ViewManager.java
+++ b/core/java/android/webkit/ViewManager.java
@@ -50,8 +50,8 @@
}
setBounds(x, y, width, height);
final AbsoluteLayout.LayoutParams lp =
- new AbsoluteLayout.LayoutParams(ctv(width), ctv(height),
- ctv(x), ctv(y));
+ new AbsoluteLayout.LayoutParams(ctvX(width), ctvX(height),
+ ctvX(x), ctvY(y));
mWebView.mPrivateHandler.post(new Runnable() {
public void run() {
// This method may be called multiple times. If the view is
@@ -97,9 +97,21 @@
return new ChildView();
}
- // contentToView shorthand.
- private int ctv(int val) {
- return mWebView.contentToView(val);
+ /**
+ * Shorthand for calling mWebView.contentToViewX. Used when obtaining a
+ * view x coordinate from a content x coordinate, or when getting a
+ * view dimension from a content dimension, whether it be in x or y.
+ */
+ private int ctvX(int val) {
+ return mWebView.contentToViewX(val);
+ }
+
+ /**
+ * Shorthand for calling mWebView.contentToViewY. Used when obtaining a
+ * view y coordinate from a content y coordinate.
+ */
+ private int ctvY(int val) {
+ return mWebView.contentToViewY(val);
}
void scaleAll() {
@@ -107,10 +119,10 @@
View view = v.mView;
AbsoluteLayout.LayoutParams lp =
(AbsoluteLayout.LayoutParams) view.getLayoutParams();
- lp.width = ctv(v.width);
- lp.height = ctv(v.height);
- lp.x = ctv(v.x);
- lp.y = ctv(v.y);
+ lp.width = ctvX(v.width);
+ lp.height = ctvX(v.height);
+ lp.x = ctvX(v.x);
+ lp.y = ctvY(v.y);
view.setLayoutParams(lp);
}
}
diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java
index ad4ba05..6421fe7 100644
--- a/core/java/android/webkit/WebChromeClient.java
+++ b/core/java/android/webkit/WebChromeClient.java
@@ -23,15 +23,6 @@
public class WebChromeClient {
/**
- * Tell the host application that the WebView has changed viewing modes.
- * @param view The WebView that initiated the callback.
- * @param newViewingMode One of the values described in WebView as possible
- * values for the viewing mode
- * @hide
- */
- public void onChangeViewingMode(WebView view, int newViewingMode) {}
-
- /**
* Tell the host application the current progress of loading a page.
* @param view The WebView that initiated the callback.
* @param newProgress Current page loading progress, represented by
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index a1f2223..95b3a12 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -697,8 +697,12 @@
* Set the selection, and disable our onSelectionChanged action.
*/
/* package */ void setSelectionFromWebKit(int start, int end) {
+ if (start < 0 || end < 0) return;
+ Spannable text = (Spannable) getText();
+ int length = text.length();
+ if (start > length || end > length) return;
mFromWebKit = true;
- Selection.setSelection((Spannable) getText(), start, end);
+ Selection.setSelection(text, start, end);
mFromWebKit = false;
}
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 792fdf2..611681f 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -525,48 +525,6 @@
// the last zoom scale.
boolean mInZoomOverview = false;
- // The viewing mode of this webview. Reported back to the WebChromeClient
- // so we can hide and display the title bar as appropriate.
- private int mViewingMode;
- /**
- * Not supporting overview vs reading mode
- * @hide
- */
- public final static int NO_VIEWING_MODE = 0;
- /**
- * Zoom overview mode. The page is zoomed all the way out, mInZoomOverview
- * is true, and the title bar is showing. Double tapping will change to
- * reading mode.
- * @hide
- */
- public final static int OVERVIEW_MODE = 1;
- /**
- * Reading mode. The page is at the level specified by the user,
- * mInZoomOverview is false, and the title bar is not showing. Double
- * tapping will change to zoom overview mode.
- * @hide
- */
- public final static int READING_MODE = 2;
- /**
- * Modified reading mode, which shows the title bar. mInZoomOverview is
- * false, and double tapping will change to zoom overview mode. However,
- * if the scrolling will change to reading mode. Used when swiping a
- * tab into view which was in reading mode, unless it was a mobile site
- * with zero scroll.
- * @hide
- */
- public final static int READING_MODE_WITH_TITLE_BAR = 3;
- /**
- * Another modified reading mode. For loading a mobile site, or swiping a
- * tab into view which was displaying a mobile site in reading mode
- * with zero scroll
- * @hide
- */
- public final static int TITLE_BAR_DISMISS_MODE = 4;
- // Whether the current site is a mobile site. Determined when we receive
- // NEW_PICTURE_MSG_ID to help determine how to handle double taps
- private boolean mMobileSite;
-
// ideally mZoomOverviewWidth should be mContentWidth. But sites like espn,
// engadget always have wider mContentWidth no matter what viewport size is.
int mZoomOverviewWidth = WebViewCore.DEFAULT_VIEWPORT_WIDTH;
@@ -962,14 +920,20 @@
/*
* Return the height of the view where the content of WebView should render
- * to.
+ * to. Note that this excludes mTitleBar, if there is one.
*/
private int getViewHeight() {
- if (!isHorizontalScrollBarEnabled() || mOverlayHorizontalScrollbar) {
- return getHeight();
- } else {
- return getHeight() - getHorizontalScrollbarHeight();
+ int height = getHeight();
+ if (isHorizontalScrollBarEnabled() && mOverlayHorizontalScrollbar) {
+ height -= getHorizontalScrollbarHeight();
}
+ if (mTitleBar != null) {
+ int titleBarVisibleHeight = mTitleBar.getHeight() - mScrollY;
+ if (titleBarVisibleHeight > 0) {
+ height -= titleBarVisibleHeight;
+ }
+ }
+ return height;
}
/**
@@ -1180,7 +1144,6 @@
if (mInZoomOverview) {
b.putFloat("lastScale", mLastScale);
}
- b.putBoolean("mobile", mMobileSite);
return true;
}
return false;
@@ -1226,20 +1189,12 @@
// correctly
mActualScale = scale;
float lastScale = b.getFloat("lastScale", -1.0f);
- mMobileSite = b.getBoolean("mobile", false);
if (lastScale > 0) {
mInZoomOverview = true;
- mViewingMode = OVERVIEW_MODE;
mLastScale = lastScale;
} else {
mInZoomOverview = false;
- if (mMobileSite && (mScrollX | mScrollY) == 0) {
- mViewingMode = TITLE_BAR_DISMISS_MODE;
- } else {
- mViewingMode = READING_MODE_WITH_TITLE_BAR;
- }
}
- mCallbackProxy.uiOnChangeViewingMode(mViewingMode);
invalidate();
return true;
}
@@ -1692,8 +1647,8 @@
if (type == HitTestResult.UNKNOWN_TYPE
|| type == HitTestResult.SRC_ANCHOR_TYPE) {
// Now check to see if it is an image.
- int contentX = viewToContent((int) mLastTouchX + mScrollX);
- int contentY = viewToContent((int) mLastTouchY + mScrollY);
+ int contentX = viewToContentX((int) mLastTouchX + mScrollX);
+ int contentY = viewToContentY((int) mLastTouchY + mScrollY);
String text = nativeImageURI(contentX, contentY);
if (text != null) {
result.setType(type == HitTestResult.UNKNOWN_TYPE ?
@@ -1736,8 +1691,8 @@
* as the data member with "url" as key. The result can be null.
*/
public void requestImageRef(Message msg) {
- int contentX = viewToContent((int) mLastTouchX + mScrollX);
- int contentY = viewToContent((int) mLastTouchY + mScrollY);
+ int contentX = viewToContentX((int) mLastTouchX + mScrollX);
+ int contentY = viewToContentY((int) mLastTouchY + mScrollY);
String ref = nativeImageURI(contentX, contentY);
Bundle data = msg.getData();
data.putString("url", ref);
@@ -1771,31 +1726,88 @@
return pinLoc(y, getViewHeight(), computeVerticalScrollRange());
}
- /*package*/ int viewToContent(int x) {
+ /**
+ * A title bar which is embedded in this WebView, and scrolls along with it
+ * vertically, but not horizontally.
+ */
+ private View mTitleBar;
+
+ /**
+ * Add or remove a title bar to be embedded into the WebView, and scroll
+ * along with it vertically, while remaining in view horizontally. Pass
+ * null to remove the title bar from the WebView, and return to drawing
+ * the WebView normally without translating to account for the title bar.
+ * @hide
+ */
+ public void addTitleBar(View v) {
+ if (null == v) {
+ removeView(mTitleBar);
+ } else {
+ addView(v, new AbsoluteLayout.LayoutParams(
+ ViewGroup.LayoutParams.FILL_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT, mScrollX, 0));
+ }
+ mTitleBar = v;
+ }
+
+ /**
+ * Given an x coordinate in view space, convert it to content space. Also
+ * may be used for absolute heights (such as for the WebTextView's
+ * textSize, which is unaffected by the height of the title bar).
+ */
+ /*package*/ int viewToContentX(int x) {
return Math.round(x * mInvActualScale);
}
- /*package*/ int contentToView(int x) {
+ /**
+ * Given a y coordinate in view space, convert it to content space.
+ * Takes into account the height of the title bar if there is one
+ * embedded into the WebView.
+ */
+ /*package*/ int viewToContentY(int y) {
+ if (mTitleBar != null) {
+ y -= mTitleBar.getHeight();
+ }
+ return viewToContentX(y);
+ }
+
+ /**
+ * Given an x coordinate in content space, convert it to view
+ * space. Also used for absolute heights.
+ */
+ /*package*/ int contentToViewX(int x) {
return Math.round(x * mActualScale);
}
+ /**
+ * Given a y coordinate in content space, convert it to view
+ * space. Takes into account the height of the title bar.
+ */
+ /*package*/ int contentToViewY(int y) {
+ int val = Math.round(y * mActualScale);
+ if (mTitleBar != null) {
+ val += mTitleBar.getHeight();
+ }
+ return val;
+ }
+
// Called by JNI to invalidate the View, given rectangle coordinates in
// content space
private void viewInvalidate(int l, int t, int r, int b) {
- invalidate(contentToView(l), contentToView(t), contentToView(r),
- contentToView(b));
+ invalidate(contentToViewX(l), contentToViewY(t), contentToViewX(r),
+ contentToViewY(b));
}
// Called by JNI to invalidate the View after a delay, given rectangle
// coordinates in content space
private void viewInvalidateDelayed(long delay, int l, int t, int r, int b) {
- postInvalidateDelayed(delay, contentToView(l), contentToView(t),
- contentToView(r), contentToView(b));
+ postInvalidateDelayed(delay, contentToViewX(l), contentToViewY(t),
+ contentToViewX(r), contentToViewY(b));
}
private Rect contentToView(Rect x) {
- return new Rect(contentToView(x.left), contentToView(x.top)
- , contentToView(x.right), contentToView(x.bottom));
+ return new Rect(contentToViewX(x.left), contentToViewY(x.top)
+ , contentToViewX(x.right), contentToViewY(x.bottom));
}
// stop the scroll animation, and don't let a subsequent fling add
@@ -1934,10 +1946,10 @@
// Sets r to be our visible rectangle in content coordinates
private void calcOurContentVisibleRect(Rect r) {
calcOurVisibleRect(r);
- r.left = viewToContent(r.left);
- r.top = viewToContent(r.top);
- r.right = viewToContent(r.right);
- r.bottom = viewToContent(r.bottom);
+ r.left = viewToContentX(r.left);
+ r.top = viewToContentY(r.top);
+ r.right = viewToContentX(r.right);
+ r.bottom = viewToContentY(r.bottom);
}
static class ViewSizeData {
@@ -1994,7 +2006,7 @@
if (mDrawHistory) {
return mHistoryWidth;
} else {
- return contentToView(mContentWidth);
+ return contentToViewX(mContentWidth);
}
}
@@ -2006,7 +2018,7 @@
if (mDrawHistory) {
return mHistoryHeight;
} else {
- int height = contentToView(mContentHeight);
+ int height = contentToViewX(mContentHeight);
if (mFindIsUp) {
height += FIND_HEIGHT;
}
@@ -2014,6 +2026,23 @@
}
}
+ @Override
+ protected int computeVerticalScrollOffset() {
+ int offset = super.computeVerticalScrollOffset();
+ if (mTitleBar != null) {
+ // Need to adjust so that the resulting offset is at minimum
+ // the height of the title bar, if it is visible.
+ offset += mTitleBar.getHeight()*computeVerticalScrollRange()
+ /getViewHeight();
+ }
+ return offset;
+ }
+
+ @Override
+ protected int computeVerticalScrollExtent() {
+ return getViewHeight();
+ }
+
/**
* Get the url for the current page. This is not always the same as the url
* passed to WebViewClient.onPageStarted because although the load for
@@ -2365,8 +2394,8 @@
// keys are hit, this should be safe. Right?
return false;
}
- cx = contentToView(cx);
- cy = contentToView(cy);
+ cx = contentToViewX(cx);
+ cy = contentToViewY(cy);
if (mHeightCanMeasure) {
// move our visible rect according to scroll request
if (cy != 0) {
@@ -2398,8 +2427,8 @@
// saved scroll position, it is ok to skip this.
return false;
}
- int vx = contentToView(cx);
- int vy = contentToView(cy);
+ int vx = contentToViewX(cx);
+ int vy = contentToViewY(cy);
// Log.d(LOGTAG, "content scrollTo [" + cx + " " + cy + "] view=[" +
// vx + " " + vy + "]");
pinScrollTo(vx, vy, false, 0);
@@ -2417,8 +2446,8 @@
// is used in the view system.
return;
}
- int vx = contentToView(cx);
- int vy = contentToView(cy);
+ int vx = contentToViewX(cx);
+ int vy = contentToViewY(cy);
pinScrollTo(vx, vy, true, 0);
}
@@ -2435,12 +2464,12 @@
}
if (mHeightCanMeasure) {
- if (getMeasuredHeight() != contentToView(mContentHeight)
+ if (getMeasuredHeight() != contentToViewX(mContentHeight)
&& updateLayout) {
requestLayout();
}
} else if (mWidthCanMeasure) {
- if (getMeasuredWidth() != contentToView(mContentWidth)
+ if (getMeasuredWidth() != contentToViewX(mContentWidth)
&& updateLayout) {
requestLayout();
}
@@ -2582,7 +2611,22 @@
}
@Override
+ protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
+ if (child == mTitleBar) {
+ // When drawing the title bar, move it horizontally to always show
+ // at the top of the WebView.
+ mTitleBar.offsetLeftAndRight(mScrollX - mTitleBar.getLeft());
+ }
+ return super.drawChild(canvas, child, drawingTime);
+ }
+
+ @Override
protected void onDraw(Canvas canvas) {
+ int saveCount = canvas.getSaveCount();
+ if (mTitleBar != null) {
+ canvas.save();
+ canvas.translate(0, (int) mTitleBar.getHeight());
+ }
// if mNativeClass is 0, the WebView has been destroyed. Do nothing.
if (mNativeClass == 0) {
return;
@@ -2596,7 +2640,7 @@
mTouchMode = TOUCH_DONE_MODE;
}
}
- int sc = canvas.save();
+ canvas.save();
if (mTouchMode >= FIRST_SCROLL_ZOOM && mTouchMode <= LAST_SCROLL_ZOOM) {
scrollZoomDraw(canvas);
} else {
@@ -2613,7 +2657,7 @@
|| mTrackballDown || mGotCenterDown, false);
drawCoreAndCursorRing(canvas, mBackgroundColor, mDrawCursorRing);
}
- canvas.restoreToCount(sc);
+ canvas.restoreToCount(saveCount);
if (AUTO_REDRAW_HACK && mAutoRedraw) {
invalidate();
@@ -3210,7 +3254,7 @@
// Initialize our generation number.
mTextGeneration = 0;
}
- mWebTextView.setTextSize(contentToView(nativeFocusCandidateTextSize()));
+ mWebTextView.setTextSize(contentToViewX(nativeFocusCandidateTextSize()));
Rect visibleRect = new Rect();
calcOurContentVisibleRect(visibleRect);
// Note that sendOurVisibleRect calls viewToContent, so the coordinates
@@ -3370,8 +3414,8 @@
mShiftIsPressed = true;
if (nativeHasCursorNode()) {
Rect rect = nativeCursorNodeBounds();
- mSelectX = contentToView(rect.left);
- mSelectY = contentToView(rect.top);
+ mSelectX = contentToViewX(rect.left);
+ mSelectY = contentToViewY(rect.top);
} else {
mSelectX = mScrollX + (int) mLastTouchX;
mSelectY = mScrollY + (int) mLastTouchY;
@@ -3758,12 +3802,6 @@
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
- if (mViewingMode == READING_MODE_WITH_TITLE_BAR
- || mViewingMode == TITLE_BAR_DISMISS_MODE) {
- mViewingMode = READING_MODE;
- mCallbackProxy.uiOnChangeViewingMode(mViewingMode);
- }
-
sendOurVisibleRect();
}
@@ -3840,8 +3878,8 @@
eventTime - mLastSentTouchTime > TOUCH_SENT_INTERVAL)) {
WebViewCore.TouchEventData ted = new WebViewCore.TouchEventData();
ted.mAction = action;
- ted.mX = viewToContent((int) x + mScrollX);
- ted.mY = viewToContent((int) y + mScrollY);
+ ted.mX = viewToContentX((int) x + mScrollX);
+ ted.mY = viewToContentY((int) y + mScrollY);
mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
mLastSentTouchTime = eventTime;
}
@@ -3873,8 +3911,8 @@
if (DebugFlags.WEB_VIEW) {
Log.v(LOGTAG, "select=" + mSelectX + "," + mSelectY);
}
- nativeMoveSelection(viewToContent(mSelectX)
- , viewToContent(mSelectY), false);
+ nativeMoveSelection(viewToContentX(mSelectX),
+ viewToContentY(mSelectY), false);
mTouchSelection = mExtendSelection = true;
} else if (mPrivateHandler.hasMessages(RELEASE_SINGLE_TAP)) {
mPrivateHandler.removeMessages(RELEASE_SINGLE_TAP);
@@ -3930,8 +3968,8 @@
if (DebugFlags.WEB_VIEW) {
Log.v(LOGTAG, "xtend=" + mSelectX + "," + mSelectY);
}
- nativeMoveSelection(viewToContent(mSelectX)
- , viewToContent(mSelectY), true);
+ nativeMoveSelection(viewToContentX(mSelectX),
+ viewToContentY(mSelectY), true);
invalidate();
break;
}
@@ -3981,13 +4019,6 @@
deltaY = newScrollY - mScrollY;
boolean done = false;
if (deltaX == 0 && deltaY == 0) {
- // The user attempted to pan the page, so dismiss the title
- // bar
- if (mViewingMode == READING_MODE_WITH_TITLE_BAR
- || mViewingMode == TITLE_BAR_DISMISS_MODE) {
- mViewingMode = READING_MODE;
- mCallbackProxy.uiOnChangeViewingMode(mViewingMode);
- }
done = true;
} else {
if (mSnapScrollMode == SNAP_X || mSnapScrollMode == SNAP_Y) {
@@ -4307,8 +4338,8 @@
+ " yRate=" + yRate
);
}
- nativeMoveSelection(viewToContent(mSelectX)
- , viewToContent(mSelectY), mExtendSelection);
+ nativeMoveSelection(viewToContentX(mSelectX),
+ viewToContentY(mSelectY), mExtendSelection);
int scrollX = mSelectX < mScrollX ? -SELECT_CURSOR_OFFSET
: mSelectX > maxX - SELECT_CURSOR_OFFSET ? SELECT_CURSOR_OFFSET
: 0;
@@ -4687,8 +4718,8 @@
return;
}
// mLastTouchX and mLastTouchY are the point in the current viewport
- int contentX = viewToContent((int) mLastTouchX + mScrollX);
- int contentY = viewToContent((int) mLastTouchY + mScrollY);
+ int contentX = viewToContentX((int) mLastTouchX + mScrollX);
+ int contentY = viewToContentY((int) mLastTouchY + mScrollY);
Rect rect = new Rect(contentX - mNavSlop, contentY - mNavSlop,
contentX + mNavSlop, contentY + mNavSlop);
nativeSelectBestAt(rect);
@@ -4703,8 +4734,8 @@
if (!inEditingMode() || mWebViewCore == null) {
return;
}
- mWebViewCore.sendMessage(EventHub.SCROLL_TEXT_INPUT, viewToContent(x),
- viewToContent(y));
+ mWebViewCore.sendMessage(EventHub.SCROLL_TEXT_INPUT, viewToContentX(x),
+ viewToContentY(y));
}
/**
@@ -4751,16 +4782,16 @@
if (!inEditingMode()) {
return;
}
- int x = viewToContent((int) event.getX() + mWebTextView.getLeft());
- int y = viewToContent((int) event.getY() + mWebTextView.getTop());
+ int x = viewToContentX((int) event.getX() + mWebTextView.getLeft());
+ int y = viewToContentY((int) event.getY() + mWebTextView.getTop());
nativeTextInputMotionUp(x, y);
}
/*package*/ void shortPressOnTextField() {
if (inEditingMode()) {
View v = mWebTextView;
- int x = viewToContent((v.getLeft() + v.getRight()) >> 1);
- int y = viewToContent((v.getTop() + v.getBottom()) >> 1);
+ int x = viewToContentX((v.getLeft() + v.getRight()) >> 1);
+ int y = viewToContentY((v.getTop() + v.getBottom()) >> 1);
nativeTextInputMotionUp(x, y);
}
}
@@ -4771,8 +4802,8 @@
}
switchOutDrawHistory();
// mLastTouchX and mLastTouchY are the point in the current viewport
- int contentX = viewToContent((int) mLastTouchX + mScrollX);
- int contentY = viewToContent((int) mLastTouchY + mScrollY);
+ int contentX = viewToContentX((int) mLastTouchX + mScrollX);
+ int contentY = viewToContentY((int) mLastTouchY + mScrollY);
if (nativeMotionUp(contentX, contentY, mNavSlop)) {
if (mLogEvent) {
Checkin.updateStats(mContext.getContentResolver(),
@@ -4784,42 +4815,13 @@
}
}
- /**
- * Called when the Tabs are used to slide this WebView's tab into view.
- * @hide
- */
- public void slideIntoFocus() {
- if (mViewingMode == READING_MODE) {
- if (!mMobileSite || (mScrollX | mScrollY) != 0) {
- mViewingMode = READING_MODE_WITH_TITLE_BAR;
- } else {
- mViewingMode = TITLE_BAR_DISMISS_MODE;
- }
- mCallbackProxy.uiOnChangeViewingMode(mViewingMode);
- }
- }
-
private void doDoubleTap() {
- if (mWebViewCore.getSettings().getUseWideViewPort() == false ||
- mViewingMode == NO_VIEWING_MODE) {
+ if (mWebViewCore.getSettings().getUseWideViewPort() == false) {
return;
}
- if (mViewingMode == TITLE_BAR_DISMISS_MODE) {
- mViewingMode = READING_MODE;
- // mInZoomOverview will not change, so change the viewing mode
- // and return
- mCallbackProxy.uiOnChangeViewingMode(mViewingMode);
- return;
- }
- if (mViewingMode == READING_MODE_WITH_TITLE_BAR && mMobileSite) {
- scrollTo(0,0);
- }
- // READING_MODE_WITH_TITLE_BAR will go to OVERVIEW_MODE here.
mZoomCenterX = mLastTouchX;
mZoomCenterY = mLastTouchY;
mInZoomOverview = !mInZoomOverview;
- mViewingMode = mInZoomOverview ? OVERVIEW_MODE : READING_MODE;
- mCallbackProxy.uiOnChangeViewingMode(mViewingMode);
// remove the zoom control after double tap
if (getSettings().getBuiltInZoomControls()) {
if (mZoomButtonsController.isVisible()) {
@@ -4837,8 +4839,8 @@
zoomWithPreview((float) getViewWidth() / mZoomOverviewWidth);
} else {
// mLastTouchX and mLastTouchY are the point in the current viewport
- int contentX = viewToContent((int) mLastTouchX + mScrollX);
- int contentY = viewToContent((int) mLastTouchY + mScrollY);
+ int contentX = viewToContentX((int) mLastTouchX + mScrollX);
+ int contentY = viewToContentY((int) mLastTouchY + mScrollY);
int left = nativeGetBlockLeftEdge(contentX, contentY, mActualScale);
if (left != NO_LEFTEDGE) {
// add a 5pt padding to the left edge. Re-calculate the zoom
@@ -5169,22 +5171,12 @@
restoreState.mScrollY);
if (!ENABLE_DOUBLETAP_ZOOM
|| !settings.getLoadWithOverviewMode()) {
- mMobileSite = false;
- mViewingMode = NO_VIEWING_MODE;
} else {
- mMobileSite = restoreState.mMobileSite;
if (useWideViewport
&& restoreState.mViewScale == 0) {
- mViewingMode = OVERVIEW_MODE;
mInZoomOverview = true;
- } else if (mMobileSite
- && (mScrollX | mScrollY) == 0) {
- mViewingMode = TITLE_BAR_DISMISS_MODE;
- } else {
- mViewingMode = READING_MODE_WITH_TITLE_BAR;
}
}
- mCallbackProxy.uiOnChangeViewingMode(mViewingMode);
// As we are on a new page, remove the WebTextView. This
// is necessary for page loads driven by webkit, and in
// particular when the user was on a password field, so
@@ -5648,7 +5640,7 @@
width = visRect.width() / 2;
}
// FIXME the divisor should be retrieved from somewhere
- return viewToContent(width);
+ return viewToContentX(width);
}
private int getScaledMaxYScroll() {
@@ -5663,7 +5655,7 @@
// FIXME the divisor should be retrieved from somewhere
// the closest thing today is hard-coded into ScrollView.java
// (from ScrollView.java, line 363) int maxJump = height/2;
- return viewToContent(height);
+ return viewToContentY(height);
}
/**
diff --git a/core/jni/android_bluetooth_BluetoothSocket.cpp b/core/jni/android_bluetooth_BluetoothSocket.cpp
index 0aeaadc..51cf0cb9 100644
--- a/core/jni/android_bluetooth_BluetoothSocket.cpp
+++ b/core/jni/android_bluetooth_BluetoothSocket.cpp
@@ -468,7 +468,7 @@
return -1;
}
-static void closeNative(JNIEnv *env, jobject obj) {
+static void abortNative(JNIEnv *env, jobject obj) {
#ifdef HAVE_BLUETOOTH
LOGV(__FUNCTION__);
struct asocket *s = get_socketData(env, obj);
@@ -510,7 +510,7 @@
{"availableNative", "()I", (void *) availableNative},
{"readNative", "([BII)I", (void *) readNative},
{"writeNative", "([BII)I", (void *) writeNative},
- {"closeNative", "()V", (void *) closeNative},
+ {"abortNative", "()V", (void *) abortNative},
{"destroyNative", "()V", (void *) destroyNative},
};
diff --git a/core/res/res/drawable-hdpi/divider_vertical_bright.9.png b/core/res/res/drawable-hdpi/divider_vertical_bright.9.png
index 128a4de..1035656 100644
--- a/core/res/res/drawable-hdpi/divider_vertical_bright.9.png
+++ b/core/res/res/drawable-hdpi/divider_vertical_bright.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_focus.9.png b/core/res/res/drawable-hdpi/tab_focus.9.png
index 0c3a9ee..6e8a71f 100644
--- a/core/res/res/drawable-hdpi/tab_focus.9.png
+++ b/core/res/res/drawable-hdpi/tab_focus.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_focus_bar_left.9.png b/core/res/res/drawable-hdpi/tab_focus_bar_left.9.png
index 54e3022..51194a4 100644
--- a/core/res/res/drawable-hdpi/tab_focus_bar_left.9.png
+++ b/core/res/res/drawable-hdpi/tab_focus_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_focus_bar_right.9.png b/core/res/res/drawable-hdpi/tab_focus_bar_right.9.png
index 34a85f0..51194a4 100644
--- a/core/res/res/drawable-hdpi/tab_focus_bar_right.9.png
+++ b/core/res/res/drawable-hdpi/tab_focus_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_press.9.png b/core/res/res/drawable-hdpi/tab_press.9.png
index 6b3c1c7..119b2c6 100644
--- a/core/res/res/drawable-hdpi/tab_press.9.png
+++ b/core/res/res/drawable-hdpi/tab_press.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_press_bar_left.9.png b/core/res/res/drawable-hdpi/tab_press_bar_left.9.png
index f998532..dc2fbce 100644
--- a/core/res/res/drawable-hdpi/tab_press_bar_left.9.png
+++ b/core/res/res/drawable-hdpi/tab_press_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_press_bar_right.9.png b/core/res/res/drawable-hdpi/tab_press_bar_right.9.png
index 43515bd..dc2fbce 100644
--- a/core/res/res/drawable-hdpi/tab_press_bar_right.9.png
+++ b/core/res/res/drawable-hdpi/tab_press_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected.9.png b/core/res/res/drawable-hdpi/tab_selected.9.png
index b128b48..29d45a17 100644
--- a/core/res/res/drawable-hdpi/tab_selected.9.png
+++ b/core/res/res/drawable-hdpi/tab_selected.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected_bar_left.9.png b/core/res/res/drawable-hdpi/tab_selected_bar_left.9.png
index a49ef68..aa935fe 100644
--- a/core/res/res/drawable-hdpi/tab_selected_bar_left.9.png
+++ b/core/res/res/drawable-hdpi/tab_selected_bar_left.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected_bar_right.9.png b/core/res/res/drawable-hdpi/tab_selected_bar_right.9.png
index 472f839..aa935fe 100644
--- a/core/res/res/drawable-hdpi/tab_selected_bar_right.9.png
+++ b/core/res/res/drawable-hdpi/tab_selected_bar_right.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_unselected.9.png b/core/res/res/drawable-hdpi/tab_unselected.9.png
index ed9e311..f5781ab 100644
--- a/core/res/res/drawable-hdpi/tab_unselected.9.png
+++ b/core/res/res/drawable-hdpi/tab_unselected.9.png
Binary files differ
diff --git a/docs/html/community/index.jd b/docs/html/community/index.jd
index eb5887a..3e69de4 100644
--- a/docs/html/community/index.jd
+++ b/docs/html/community/index.jd
@@ -3,8 +3,8 @@
@jd:body
<div id="mainBodyFluid">
- <h1>Community</h1>
- <p>Welcome to the Android developers community! We're glad you're here and invite you to participate in these discussions. Before posting, please read the <a href="http://source.android.com/discuss/android-discussion-groups-charter">Groups Charter</a> that covers the community guidelines.</p>
+<h1>Community</h1>
+<p>Welcome to the Android developers community! We're glad you're here and invite you to participate in these discussions. Before posting, please read the <a href="http://source.android.com/discuss/android-discussion-groups-charter">Groups Charter</a> that covers the community guidelines.</p>
<p class="note"><strong>Note:</strong> If you are seeking discussion about Android source code (not application development),
then please refer to the <a href="http://source.android.com/discuss">Open Source Project Mailing lists</a>.</p>
@@ -53,48 +53,42 @@
<li><b>Android beginners</b> - You're new to Android application development. You want to figure out how to get started with the Android SDK and the basic Android APIs? Start here. This list is open to any discussion around beginner-type questions for developers using the SDK; this is a great way to get up and running with your new application on the Android platform. Ask about getting your development environment set up, get help with the first steps of Android development (your first User Interface, your first permission, your first file on the Android filesystem, your first app on the Android Market...). Be sure to check the archives first before asking new questions. Please avoid advanced subjects, which belong on android-developers, and user questions, which will get a better reception on android-discuss.
<ul>
<li>Subscribe using Google Groups: <a href="http://groups.google.com/group/android-beginners">android-beginners</a></li>
-<li>Subscribe via email: <a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-</a></li>
+<li>Subscribe via email: <a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android developers</b> - You're now an experienced Android application developer. You've grasped the basics of Android app development, you're comfortable using the SDK, now you want to move to advanced topics. Get help here with troubleshooting applications, advice on implementation, and strategies for improving your application's performance and user experience. This is the not the right place to discuss user issues (use android-discuss for that) or beginner questions with the Android SDK (use android-beginners for that).
<ul>
<li>Subscribe using Google Groups: <a href="http://groups.google.com/group/android-developers">android-developers</a></li>
-<li>Subscribe via email: <a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
-</a></li>
+<li>Subscribe via email: <a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android discuss</b> - The "water cooler" of Android discussion. You can discuss just about anything Android-related here, ideas for the Android platform, announcements about your applications, discussions about Android devices, community resources... As long as your discussion is related to Android, it's on-topic here. However, if you have a discussion here that could belong on another list, you are probably not reaching all of your target audience here and may want to consider shifting to a more targeted list.
<ul>
<li>Subscribe using Google Groups: <a href="http://groups.google.com/group/android-discuss">android-discuss</a></li>
-<li>Subscribe via email: <a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
- </a></li>
+<li>Subscribe via email: <a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android ndk</b> - A place for discussing the Android NDK and topics related to using native code in Android applications.
<ul>
<li>Subscribe using Google Groups: <a href="http://groups.google.com/group/android-ndk">android-ndk</a></li>
-<li>Subscribe via email: <a href="mailto:android-ndk-subscribe@googlegroups.com">android-ndk-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
- </a></li>
+<li>Subscribe via email: <a href="mailto:android-ndk-subscribe@googlegroups.com">android-ndk-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android security discuss</b> - A place for open discussion on secure development, emerging security concerns, and best practices for and by android developers. Please don't disclose vulnerabilities directly on this list, you'd be putting all Android users at risk.
<ul>
<li>Subscribe using Google Groups: <a href="http://groups.google.com/group/android-security-discuss">android-security-discuss</a></li>
-<li>Subscribe via email: <a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com">
- </a></li>
+<li>Subscribe via email: <a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android security announce</b> - A low-volume group for security-related announcements by the Android Security Team.
<ul>
<li>Subscribe using Google Groups: <a href="http://groups.google.com/group/android-security-announce">android-security-announce</a></li>
-<li>Subscribe via email: <a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a>
-<a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>Subscribe via email: <a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a></li>
</ul>
</li>
diff --git a/docs/html/guide/appendix/api-levels.jd b/docs/html/guide/appendix/api-levels.jd
index 8fc899b..a4dcc5e 100644
--- a/docs/html/guide/appendix/api-levels.jd
+++ b/docs/html/guide/appendix/api-levels.jd
@@ -1,81 +1,323 @@
page.title=Android API Levels
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
-<p>The Android <em>API Level</em> is an integer that indicates a set of APIs available in an Android SDK
-and on a version of the Android platform. Each version of the Android platform supports a specific set
-of APIs, which are always backward-compatible. For example, Android 1.5 supports all APIs available in
-Android 1.0, but the reverse is not true. If an application uses APIs
-available in Android 1.5 that are not available in 1.0, then the application should never be installed
-on an Android 1.0 device, because it will fail due to missing APIs. The API Level ensures this does not happen
-by comparing the minimum API Level required by the applicaiton to the API Level available on the device.</p>
+ <h2>In this document</h2>
+<ol>
+ <li><a href="intro">What is API Level?</a></li>
+ <li><a href="#uses">Uses of API Level</a></li>
+ <li><a href="#considerations">Development Considerations</a>
+ <ol>
+ <li><a href="#fc">Application forward compatibility</a></li>
+ <li><a href="#bc">Application backward compatibility</a></li>
+ <li><a href="#platform">Selecting a platform version for compiling</a></li>
+ <li><a href="#apilevel">Declaring a minimum API Level</a></li>
+ <li><a href="#testing">Testing against higher API Levels</a></li>
+ </ol>
+ </li>
+ <li><a href="#filtering">Filtering the documentation</a></li>
+</ol>
-<p>When a new version of Android adds APIs, a new API Level is added to the platform. The new APIs
-are available only to applications that declare a minimum API Level that is equal-to or greater-than
-the API Level in which the APIs were introduced. The API Level required by an application is declared with the
-<code><uses-sdk></code> element inside the Android manifest, like this:</p>
+ <h2>See also</h2>
+ <ol>
+ <li><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a> manifest element</li>
+ </ol>
-<pre><uses-sdk android:minSdkVersion="3" /></pre>
+</div>
+</div>
-<p>The value for <code>minSdkVersion</code> is the minimum API Level required by the application.
-If this is not declared, then it is assumed that the application is compatible with all versions and defaults to
-API Level 1. In which case, if the application actually uses APIs introduced with an API Level greater than 1, then
-the application will fail in unpredictable ways when installed on a device that only supports API Level 1
-(such as an Android 1.0 device).
-See the <code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></code>
-documentation for more about declaring the API Level in your manifest.</p>
+<p>As you develop your application on Android, it's useful to understand the
+platform's general approach to API change management. It's also important to
+understand the API Level identifier and the role it plays in ensuring your
+application's compatibility with devices on which it may be installed. </p>
-<p>For example, the {@link android.appwidget} package was introduced with API Level 3. If your application
-has set <code>minSdkVersion</code> to 1 or 2, then your application cannot use this package,
-even if the device running your application uses a version of Android that supports it.
-In order to use the {@link android.appwidget} package, your application must set <code>minSdkVersion</code>
-to 3 or higher. When the <code>minSdkVersion</code> is set to 3, the application will no longer be able to install
-on a device running a platform version with an API Level less than 3.</p>
+<p>The sections below provide information about API Level and how it affects
+your applications. </p>
-<p>Despite the name of the manifest attribute (<code>minSdkVersion</code>), the API Level is not directly
-associated with a specific SDK. For example, the SDK for Android 1.0 uses
-API Level 1 and the SDK for Android 1.1 uses API Level 2. So it may seem that the API Level increases consistently.
-However, it's possible that a subsequent platform
-releases will not introduce new APIs, and thus, the API Level will remain the same. In addition, there are often
-multiple SDK releases for a single platform version (there were three SDK releases for Android 1.5), and
-there's no guarantee that the API Level will remain the same between these. It's possible (but unlikely) that
-a second or third SDK for a given version of the platform will provide new APIs and add a new API Level.
-When you install a new SDK, be sure to read the SDK Contents on the install page, which specifies the API
-Level for each platform available in the SDK. Also see the comparison of
-<a href="#VersionsVsApiLevels">Platform Versions vs. API Levels</a>, below.</p>
+<p>For information about how to use the "Filter by API Level" control
+available in the API reference documentation, see
+<a href="#filtering">Filtering the documentation</a> at the
+end of this document. </p>
-<p class="note"><strong>Note:</strong> During an "Early Look" SDK release, the APIs may not be final, so the
-API Level number cannot be specified. In this case, a string value matching the
-platform codename must be used as the value for <code>minSdkVersion</code>. This codename value
-will only be valid while using the Early Look SDK with the emulator. An application using this API Level
-can never be installed on an Android device. When the final SDK is released, you must update your manifest to use
-the official API Level integer.</p>
+<h2 id="intro">What is API Level?</h2>
-<h2 id="VersionsVsApiLevels">Platform Versions vs. API Levels</h2>
+<p>API Level is an integer value that uniquely identifies the framework API
+revision offered by a version of the Android platform.</p>
-<p>The following table specifies the <em>maximum</em> API Level supported by each version of the Android platform.
-(Every platform is backward-compatible to API Level 1.)</p>
+<p>The Android platform provides a framework API that applications can use to
+interact with the underlying Android system. The framework API consists of:</p>
+
+<ul>
+<li>A core set of packages and classes</li>
+<li>A set of XML elements and attributes for declaring a manifest file</li>
+<li>A set of XML elements and attributes for declaring and accessing resources</li>
+<li>A set of Intents</li>
+<li>A set of permissions that applications can request, as well as permission
+enforcements included in the system</li>
+</ul>
+
+<p>Each successive version of the Android platform can include updates to the
+Android application framework API that it delivers. </p>
+
+<p>Updates to the framework API are designed so that the new API remains
+compatible with earlier versions of the API. That is, most changes in the API
+are additive and introduce new or replacement functionality. As parts of the API
+are upgraded, the older replaced parts are deprecated but are not removed, so
+that existing applications can still use them. In a very small number of cases,
+parts of the API may be modified or removed, although typically such changes are
+only needed to ensure API robustness and application or system security. All
+other API parts from earlier revisions are carried forward without
+modification.</p>
+
+<p>The framework API that an Android platform delivers is specified using an
+integer identifier called "API Level". Each Android platform version supports
+exactly one API Level, although support is implicit for all earlier API Levels
+(down to API Level 1). The initial release of the Android platform provided
+API Level 1 and subsequent releases have incremented the API Level.</p>
+
+<p>The following table specifies the API Level supported by each version of the
+Android platform.</p>
<table>
<tr><th>Platform Version</th><th>API Level</th></tr>
- <tr><td>Android 1.0</td><td>1</td></tr>
- <tr><td>Android 1.1</td><td>2</td></tr>
+ <tr><td>Android 1.6</td><td>4</td></tr>
<tr><td>Android 1.5</td><td>3</td></tr>
- <tr><td>Android Donut</td><td>Donut</td></tr>
+ <tr><td>Android 1.1</td><td>2</td></tr>
+ <tr><td>Android 1.0</td><td>1</td></tr>
</table>
-<h2 id="ViewingTheApiReference">Viewing the API Reference Based on API Level</h2>
+<h2 id="uses">Uses of API Level in Android</h2>
-<p>The Android API reference includes information that specififies the minimum API Level required for each
-package, class, and member. You can see this information on the right side of each header or label.</p>
+<p>The API Level identifier serves a key role in ensuring the best possible
+experience for users and application developers:
-<p>By default, the reference documentation shows all APIs available with the latest SDK release.
-This means that the reference assumes you're using the latest API Level and will show you everything available
-with it. If you're developing applications for a version of Android that does not support the latest API Level,
-then you can filter the reference to reveal only the packages, classes, and members available for that API Level.
-When viewing the reference, use the "Filter by API Level" selection box (below the search box) to pick the API Level
-you'd like to view.</p>
+<ul>
+<li>It lets the Android platform describe the maximum framework API revision
+that it supports</li>
+<li>It lets applications describe the framework API revision that they
+require</li>
+<li>It lets the system negotiate the installation of applications on the user's
+device, such that version-incompatible applications are not installed on a
+user's device</li>
+</ul>
+
+<p>Each Android platform version stores its API Level identifier internally, in
+the Android system itself. </p>
+
+<p>Applications can use a manifest element provided by the framework API —
+<code><uses-sdk></code> — to describe the minimum and maximum API
+Levels under which they are able to run, as well as the preferred API Level that
+they are designed to support. The element offers two key attributes:</p>
+
+<ul>
+<li><code>android:minSdkVersion</code> — Specifies the minimum API Level
+on which the application is able to run. The default value is "1".</li>
+<li><code>android:maxSdkVersion</code> — Specifies the maximum API Level
+on which the application is able to run.</li>
+</ul>
+
+<p>For example, to specify the minimum system API Level that an application
+requires in order to run, the application would include in its manifest a
+<code><uses-sdk></code> element with a <code>android:minSdkVersion</code>
+attribute. The value of <code>android:minSdkVersion</code> would be the integer
+corresponding to the API Level of the earliest version of the Android platform
+under which the application can run. </p>
+
+<p>When the user attempts to install an application, the Android system first
+checks the <code><uses-sdk></code> attributes in the application's
+manifest and compares them against its own internal API Level. The system
+allows the installation to begin only if these conditions are met:</p>
+
+<ul>
+<li>If a <code>android:minSdkVersion</code> attribute is declared, its value
+must be less than or equal to the system's API Level integer. If not declared,
+the system assumes that the application requires API Level 1. </li>
+<li>If a <code>android:maxSdkVersion</code> attribute is declared, its value
+must be equal to or greater than the system's API Level integer.
+in the system itself. If not declared, the system assumes that the application
+has no maximum API Level. </li>
+</ul>
+
+<p>When declared in an application's manifest, a <code><uses-sdk></code>
+element might look like this: </p>
+
+<pre><manifest>
+ ...
+ <uses-sdk android:minSdkVersion="4" />
+ ...
+</manifest></pre>
+
+<p>The principal reason that an application would declare an API Level in
+<code>android:minSdkVersion</code> is to tell the Android system that it is
+using APIs that were <em>introduced</em> in the API Level specified. If the
+application were to be somehow installed on a platform with a lower API Level,
+then it would crash at run-time when it tries to access APIs that don't exist.
+The system prevents such an outcome by not allowing the application to be
+installed if the lowest API Level it requires is higher than that of the
+platform version on the target device.</p>
+
+<p>For example, the {@link android.appwidget} package was introduced with API
+Level 3. If an application uses that API, it must declare a
+<code>android:minSdkVersion</code> attribute with a value of "3". The
+application will then be installable on platforms such as Android 1.5 (API Level
+3) and Android 1.6 (API Level 4), but not on the Android 1.1 (API Level 2) and
+Android 1.0 platforms (API Level 1).</p>
+
+<p>For more information about how to specify an application's API Level
+requirements, see the <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code><uses-sdk></code></a>
+ section of the manifest file documentation.</p>
+<h2 id="considerations">Development Considerations</h2>
+<p>The sections below provide information related to API level that you should
+consider when developing your application.</p>
+
+<h3 id="fc">Application forward compatibility</h3>
+
+<p>Android applications are generally forward-compatible with new versions of
+the Android platform.</p>
+
+<p>Because almost all changes to the framework API are additive, an Android
+application developed using any given version of the API (as specified by its
+API Level) is forward-compatible with later versions of the Android platform and
+higher API levels. The application should be able to run on all later versions
+of the Android platform, except in isolated cases where the application uses a
+part of the API that is later removed for some reason. </p>
+
+<p>Forward compatibility is important because many Android-powered devices
+receive over-the-air (OTA) system updates. The user may install your
+application and use it successfully, then later receive an OTA update to a new
+version of the Android platform. Once the update is installed, your application
+will run in a new run-time version of the environment, but one that has the API
+and system capabilities that it depends on. </p>
+
+<p>In some cases, changes <em>below</em> the API, such those in the underlying
+system itself, may affect your application when it is run in the new
+environment. For that reason it's important for you, as the application
+developer, to understand how the application will look and behave in each system
+environment. To help you test your application on various versions of the Android
+platform, the Android SDK includes multiple platforms that you can download.
+Each platform includes a compatible system image that you can run in an AVD, to
+test your application. </p>
+
+<h3 id="bc">Application backward compatibility</h3>
+
+<p>Android applications are not necessarily backward compatible with versions of
+the Android platform older than the version against which they were compiled.
+</p>
+
+<p>Each new version of the Android platform can include new framework APIs, such
+as those that give applications access to new platform capabilities or replace
+existing API parts. The new APIs are accessible to applications when running on
+the new platform and, as mentioned above, also when running on later versions of
+the platform, as specified by API Level. Conversely, because earlier versions of
+the platform do not include the new APIs, applications that use the new APIs are
+unable to run on those platforms.</p>
+
+<p>Although it's unlikely that an Android-powered device would be downgraded to
+a previous version of the platform, it's important to realize that there are
+likely to be many devices in the field that run earlier versions of the
+platform. Even among devices that receive OTA updates, some might lag and not
+receive an update for a significant amount of time. </p>
+
+<h3 id="platform">Selecting a platform version and API Level</h3>
+
+<p>When you are developing your application, you will need to choose
+the platform version against which you will compile the application. In
+general, you should compile your application against the lowest possible
+version of the platform that your application can support.
+
+<p>You can determine the lowest possible platform version by compiling the
+application against successively lower build targets. After you determine the
+lowest version, you should create an AVD using the corresponding platform
+version (and API Level) and fully test your application. Make sure to declare a
+<code>android:minSdkVersion</code> attribute in the application's manifest and
+set its value to the API Level of the platform version. </p>
+
+<h3 id="apilevel">Declaring a minimum API Level</h3>
+
+<p>If you build an application that uses APIs or system features introduced in
+the latest platform version, you should set the
+<code>android:minSdkVersion</code> attribute to the API Level of the latest
+platform version. This ensures that users will only be able to install your
+application if their devices are running a compatible version of the Android
+platform. In turn, this ensures that your application can function properly on
+their devices. </p>
+
+<p>If your application uses APIs introduced in the latest platform version but
+does <em>not</em> declare a <code>android:minSdkVersion</code> attribute, then
+it will run properly on devices running the latest version of the platform, but
+<em>not</em> on devices running earlier versions of the platform. In the latter
+case, the application will crash at runtime when it tries to use APIs that don't
+exist on the earlier versions.</p>
+
+<h3 id="testing">Testing against higher API Levels</h3>
+
+<p>After compiling your application, you should make sure to test it on the
+platform specified in the application's <code>android:minSdkVersion</code>
+attribute. To do so, create an AVD that uses the platform version required by
+your application. Additionally, to ensure forward-compatibility, you should run
+and test the application on all platforms that use a higher API Level than that
+used by your application. </p>
+
+<p>The Android SDK includes multiple platform versions that you can use,
+including the latest version, and provides an updater tool that you can use to
+download other platform versions as necessary. </p>
+
+<p>To access the updater, use the <code>android</code> command-line tool,
+located in the <sdk>/tools directory. You can launch the Updater by using
+the <code>android</code> command without specifying any options. You can
+also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
+In ADT, you can also access the updater by selecting
+<strong>Window</strong> > <strong>Android SDK and AVD
+Manager</strong>.</p>
+
+<p>To run your application against different platform versions in the emulator,
+create an AVD for each platform version that you want to test. For more
+information about AVDs, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>. If
+you are using a physical device for testing, ensure that you know the API Level
+of the Android platform it runs. See the table at the top of this document for
+a list of platform versions and their API Levels. </p>
+
+<!--
+The Framework API makeup: the API available in a specific platform version is
+made up of API parts introduced in previous versions, plus some parts that are
+new.
+-->
+
+<h2 id="filtering">Filtering the Reference Documentation by API Level</h2>
+
+<p>Reference documentation pages on the Android Developers site offer a "Filter
+by API Level" control in the top-right area of each page. </p>
+
+<p>The "Filter by API Level" lets you show documentation only for parts of the
+API that are actually accessible to your application, based on the API Level
+that it specifies in the <code>minSdkVersion</code> attribute in its manifest
+file </p>
+
+<p>When you filter the reference documentation by an API level, only the APIs
+available at that API level are shown. APIs introduced in a later API level are
+grayed out and their content is masked, since they would not be accessible to
+your application. </p>
+
+<p>Note that filtering by API Level in the documentation does not provide a view
+of what is new or introduced in each API Level. Filtering simply provides a way
+to view the entire API associated with a given API Level, while excluding API
+elements introduced in later API Levels.</p>
+
+<p>By default, API Level filtering is enabled and set to show the latest API
+Level. If you do not want to use filtering reference documentation, select the
+highest available API Level.</p>
+
+<p>Note that the reference documentation for API elements also specifies the API
+Level at which the element was introduced. The API Level for packages and
+classes is specified as "Since <api level>" at the top-right corner of the
+content area on each documentation page. The API Level for each class member is
+specified in the member's detailed description section header, at the right
+margin. </p>
diff --git a/docs/html/guide/developing/eclipse-adt.jd b/docs/html/guide/developing/eclipse-adt.jd
index a5cf735..c3ec2e5 100644
--- a/docs/html/guide/developing/eclipse-adt.jd
+++ b/docs/html/guide/developing/eclipse-adt.jd
@@ -149,15 +149,15 @@
<h3 id="CreatingAnAvd">Creating an AVD</h3>
-<p>With ADT 0.9.2 and above, the Android AVD Manager provides a simple graphical interface
+<p>With ADT 0.9.3 and above, the Android SDK and AVD Manager provides a simple graphical interface
for creating and managing AVDs. (If you're using ADT version 0.9.1 or older, you must
use the <code>android</code> tool to create your AVDs—read the AVD guide to
<a href="{@docRoot}guide/developing/tools/avd.html#creating">Creating an AVD</a>.)
-<p>To create an AVD with the Android AVD Manager:</p>
+<p>To create an AVD with the AVD Manager:</p>
<ol>
- <li>Select <strong>Window > Android AVD Manager</strong>, or click the Android AVD Manager icon (a black device)
+ <li>Select <strong>Window > Android SDK and AVD Manager</strong>, or click the Android SDK and AVD Manager icon (a black device)
in the Eclipse toolbar.</p>
</li>
<li>In the Virtual Devices panel, you'll see a list of existing AVDs. Click <strong>New</strong>
@@ -169,7 +169,7 @@
<li>Click <strong>Create AVD</strong>.</li>
</ol>
-<p>Your AVD is now ready and you can close the Android AVD Manager.
+<p>Your AVD is now ready and you can close the AVD Manager.
In the next section, you'll see how the AVD is used
when launching your application on an emulator.</p>
@@ -217,7 +217,7 @@
as an <em>Android Application</em>, ADT will automatically create a run configuration.
The default run configuration will
launch the default project Activity and use automatic target mode for device selection
-(with no preferred AVD). If the default setting don't suit your project, you can
+(with no preferred AVD). If the default settings don't suit your project, you can
customize the launch configuration or even create a new.</p>
<p>To create or modify a launch configuration, follow these steps as appropriate
@@ -256,6 +256,12 @@
when selecting an AVD to run your application.
See the following section on <a href=#AutoAndManualModes">Automatic and manual target
modes</a>).</p>
+ <p>You can specify any emulator options to the Additional Emulator Command
+ Line Options field. For example, you could add <code>-scale 96dpi</code> to
+ scale the AVD's screen to an accurate size, based on the dpi of your
+ computer monitor. For a full list of emulator options, see the <a
+ href="{@docRoot}guide/developing/tools/emulator.html">Android Emulator</a>
+document.</p>
</li>
</ol>
diff --git a/docs/html/guide/developing/other-ide.jd b/docs/html/guide/developing/other-ide.jd
index 8cdf0b9..2080873 100644
--- a/docs/html/guide/developing/other-ide.jd
+++ b/docs/html/guide/developing/other-ide.jd
@@ -85,7 +85,8 @@
navigate to the <code>tools/</code> directory of your SDK and run:</p>
<pre>
android create project \
---target <em><targetID></em> \
+--target <em><target_ID></em> \
+--name <em><your_project_name></em> \
--path <em>/path/to/your/project</em> \
--activity <em><your_activity_name></em> \
--package <em><your_package_namespace></em>
@@ -96,11 +97,14 @@
to an Android platform library (including any add-ons, such as Google APIs) that you would like to
build your project against. To see a list of available targets and their corresponding IDs,
execute: <code>android list targets</code>.</li>
+ <li><code>name</code> is the name for your project. This is optional. If provided, this name will be used
+ for your .apk filename when you build your application.</li>
<li><code>path</code> is the location of your project directory. If the directory does not exist,
it will be created for you.</li>
- <li><code>activity</code> is the name for your {@link android.app.Activity} class. This class file
+ <li><code>activity</code> is the name for your default {@link android.app.Activity} class. This class file
will be created for you inside
- <code><em><path_to_your_project></em>/src/<em><your_package_namespace_path></em>/</code>.</li>
+ <code><em><path_to_your_project></em>/src/<em><your_package_namespace_path></em>/</code>.
+ This will also be used for your .apk filename unless you provide a the <code>name</code>.</li>
<li><code>package</code> is the package namespace for your project, following the same rules as for
packages in the Java programming language.</li>
</ul>
@@ -109,9 +113,10 @@
<pre>
android create project \
--target 1 \
---path ./myProject \
---activity MyActivity \
---package com.example.myproject
+--name MyAndroidApp \
+--path ./MyAndroidAppProject \
+--activity MyAndroidAppActivity \
+--package com.example.myandroid
</pre>
<p>The tool generates the following files and directories:</p>
@@ -123,7 +128,8 @@
<li><code>default.properties</code> - Properties for the build system. <em>Do not modify
this file</em>.</li>
<li><code>build.properties</code> - Customizable properties for the build system. You can edit this
- file to overried default build settings used by Ant.</li>
+ file to override default build settings used by Ant and provide a pointer to your keystore and key alias
+ so that the build tools can sign your application when built in release mode.</li>
<li><code>src<em>/your/package/namespace/ActivityName</em>.java</code> - The Activity class
you specified during project creation.</li>
<li><code>bin/</code> - Output directory for the build script.</li>
@@ -141,7 +147,7 @@
to the emulator (discussed later). So you need access between your project solution and
the <code>tools/</code> folder.</p>
-<p class="warning"><strong>Note:</strong> You should refrain from moving the
+<p class="caution"><strong>Caution:</strong> You should refrain from moving the
location of the SDK directory, because this will break the build scripts. (They
will need to be manually updated to reflect the new SDK location before they will
work again.)</p>
@@ -153,14 +159,15 @@
a new project from existing code, use the
<code>android update project</code> command to update the project to the new development
environment. You can also use this command to revise the build target of an existing project
-(with the <code>--target</code> option). The <code>android</code> tool will generate any files and
+(with the <code>--target</code> option) and the project name (with the <code>--name</code>
+option). The <code>android</code> tool will generate any files and
folders (listed in the previous section) that are either missing or need to be updated,
as needed for the Android project.</p>
<p>To update an existing Android project, open a command-line
and navigate to the <code>tools/</code> directory of your SDK. Now run:</p>
<pre>
-android update project --target <em><targetID></em> --path <em>path/to/your/project/</em>
+android update project --name <em><project_name></em> --target <em><target_ID></em> --path <em>path/to/your/project/</em>
</pre>
<ul>
@@ -169,11 +176,13 @@
like to build your project against. To see a list of available targets and their corresponding IDs,
execute: <code>android list targets</code>.</li>
<li><code>path</code> is the location of your project directory.</li>
+ <li><code>name</code> is the name for the project. This is optional—if you're not
+ changing the project name, you don't need this.</li>
</ul>
<p>Here's an example:</p>
<pre>
-android update project --target 2 --path ./myProject
+android update project --name MyApp --target 2 --path ./MyAppProject
</pre>
@@ -237,8 +246,9 @@
<h3 id="DebugMode">Building in debug mode</h3>
<p>For immediate application testing and debugging, you can build your application
-in debug mode and immediately install it on an emulator. In debug mode, the build tools automatically
-sign your application with a debug key. However, you can (and should) also test your
+in debug mode and immediately install it on an emulator. In debug mode, the build tools
+automatically sign your application with a debug key and optimize the package with
+{@code zipalign}. However, you can (and should) also test your
application in release mode. Debug mode simply allows you to run your application without
manually signing the application.</p>
@@ -248,9 +258,9 @@
<li>Open a command-line and navigate to the root of your project directory.</li>
<li>Use Ant to compile your project in debug mode:
<pre>ant debug</pre>
- <p>This creates your Android application .apk file inside the project <code>bin/</code>
- directory, named <code><em><your_DefaultActivity_name></em>-debug.apk</code>. The file
- is already signed with the debug key.</p>
+ <p>This creates your debug .apk file inside the project <code>bin/</code>
+ directory, named <code><em><your_project_name></em>-debug.apk</code>. The file
+ is already signed with the debug key and has been aligned with {@code zipalign}.</p>
</li>
</ol>
@@ -267,23 +277,86 @@
your application in release mode. Once you have built in release mode, it's a good idea to perform
additional testing and debugging with the final .apk.</p>
-<p>To build in release mode:</p>
+<p>Before you start building your application in release mode, be aware that you must sign
+the resulting application package with your private key, and should then align it using the
+{@code zipalign} tool. There are two approaches to building in release mode:
+build an unsigned package in release mode and then manually sign and align
+the package, or allow the build script
+to sign and align the package for you.</p>
+
+<h4 id="ManualReleaseMode">Build unsigned</h4>
+
+<p>If you build your application <em>unsigned</em>, then you will need to
+manually sign and align the package.</p>
+
+<p>To build an <em>unsigned</em> .apk in release mode:</p>
<ol>
<li>Open a command-line and navigate to the root of your project directory.</li>
<li>Use Ant to compile your project in release mode:
<pre>ant release</pre>
- <p>This creates your Android application .apk file inside the project <code>bin/</code>
- directory, named <code><em><your_DefaultActivity_name></em>.apk</code>.</p>
- <p class="note"><strong>Note:</strong> The .apk file is <em>unsigned</em> at this point.
- You can't install it on an emulator or device until you sign it with your private key.</p>
</li>
</ol>
-<p>Because release mode builds your application unsigned, your next step is to sign
-it with your private key, in order to distribute it to end-users. To complete this procedure,
+<p>This creates your Android application .apk file inside the project <code>bin/</code>
+directory, named <code><em><your_project_name></em>-unsigned.apk</code>.</p>
+
+<p class="note"><strong>Note:</strong> The .apk file is <em>unsigned</em> at this point
+and can't be installed until signed with your private key.</p>
+
+<p>Once you have created the unsigned .apk, your next step is to sign the .apk
+with your private key and then align it with {@code zipalign}. To complete this procedure,
read <a href="{@docRoot}guide/publishing/app-signing.html">Signing Your Applications</a>.</p>
+<p>When your .apk has been signed and aligned, it's ready to be distributed to end-users.</p>
+
+<h4 id="AutoReleaseMode">Build signed and aligned</h4>
+
+<p>If you would like, you can configure the Android build script to automatically
+sign and align your application package. To do so, you must provide the path to your keystore
+and the name of your key alias in your project's {@code build.properties} file. With this
+information provided, the build script will prompt you for your keystore and alias password
+when you build in release mode and produce your final application package, which will be ready
+for distribution.</p>
+
+<p class="caution"><strong>Caution:</strong> Due to the way Ant handles input, the password that
+you enter during the build process <strong>will be visible</strong>. If you are
+concerned about your keystore and alias password being visible on screen, then you
+may prefer to perform the application signing manually, via Jarsigner (or a similar tool). To instead
+perform the signing procedure manually, <a href="#ManualReleaseMode">buid unsigned</a> and then continue
+with <a href="{@docRoot}guide/publishing/app-signing.html">Signing Your Applications</a>.</p>
+
+<p>To specify your keystore and alias, open the project {@code build.properties} file (found in the
+root of the project directory) and add entries for {@code key.store} and {@code key.alias}.
+For example:</p>
+
+<pre>
+key.store=/path/to/my.keystore
+key.alias=mykeystore
+</pre>
+
+<p>Save your changes. Now you can build a <em>signed</em> .apk in release mode:</p>
+
+<ol>
+ <li>Open a command-line and navigate to the root of your project directory.</li>
+ <li>Use Ant to compile your project in release mode:
+ <pre>ant release</pre>
+ </li>
+ <li>When prompted, enter you keystore and alias passwords.
+ <p class="caution"><strong>Caution:</strong> As described above,
+ your password will be visible on the screen.</p>
+ </li>
+</ol>
+
+<p>This creates your Android application .apk file inside the project <code>bin/</code>
+directory, named <code><em><your_project_name></em>-release.apk</code>.
+This .apk file has been signed with the private key specified in
+{@code build.properties} and aligned with {@code zipalign}. It's ready for
+installation and distribution.</p>
+
+
+<h4>Once built and signed in release mode</h4>
+
<p>Once you have signed your application with a private key, you can install it on an
emulator or device as discussed in the following section about
<a href="#Running">Running Your Application</a>.
@@ -329,7 +402,7 @@
you'll use this in the next step.</p>
</li>
<li>Create a new AVD using your selected deployment target:
- <pre>android create avd --name <em><your_avd_name></em> --target <em><targetID></em></pre>
+ <pre>android create avd --name <em><your_avd_name></em> --target <em><target_ID></em></pre>
<li>Next, you'll be asked whether you'd like to create a custom hardware profile.
If you respond "yes," you'll be presented with a series of prompts to define various aspects of the
device hardware (leave entries blank to use default values, which are shown in brackets). Otherwise,
diff --git a/docs/html/guide/developing/tools/avd.jd b/docs/html/guide/developing/tools/avd.jd
index b8f205e..06b1245 100644
--- a/docs/html/guide/developing/tools/avd.jd
+++ b/docs/html/guide/developing/tools/avd.jd
@@ -11,6 +11,8 @@
hardware options, system image, and data storage.
<li>You create AVD configurations to model different device environments
in the Android emulator.</li>
+ <li>The <code>android</code> tool offers a graphical Android AVD
+ Manager and a command-line interface for creating AVDs.</li>
</ul>
<h2>In this document</h2>
<ol>
@@ -72,9 +74,18 @@
href="{@docRoot}guide/developing/tools/emulator.html">Emulator</a>
documentation. </p>
-<p>To create and manage AVDs, you use the android tool provided in the Android
-SDK. For more information about how to work with AVDs from inside
-your development environment, see <a
+<p>To create and manage AVDs, you use the <code>android</code> tool provided in
+the <code>tools/</code> directory of the Android SDK. The tool provides both a
+graphical AVD manager and a command-line interface that you can use to
+create AVDs. To access the graphical AVD manager, run the
+<code>android</code> tool without options. The sections below describe how to
+use the <code>android</code> command-line interface to create and manage AVDs.
+Note that some functionality, such as the capability to create an AVD with a
+custom hardware configuration, are only available through the command-line
+interface. </p>
+
+<p>For more information about how to work with AVDs from inside your development
+environment, see <a
href="{@docRoot}guide/developing/eclipse-adt.html">Developing in Eclipse with
ADT</a> or <a href="{@docRoot}guide/developing/other-ide.html">Developing in
Other IDEs</a>, as appropriate for your environment.</p>
@@ -89,11 +100,11 @@
</div>
</div>
-<p>To create an AVD, you use the android tool, a command-line utility
-available in the <code><sdk>/tools/</code> directory. Managing AVDs is one
-of the two main function of the android tool (the other is creating and updating
-Android projects). Open a terminal window and change to the
-<code><sdk>/tools/</code> directory, if needed</p>
+<p>To create an AVD, you use the <code>android</code> tool, a command-line
+utility available in the <code><sdk>/tools/</code> directory. Managing
+AVDs is one of the two main function of the <code>android</code> tool (the other
+is creating and updating Android projects). Open a terminal window and change to
+the <code><sdk>/tools/</code> directory, if needed</p>
<p>To create each AVD, you issue the command <code>android create avd</code>,
with options that specify a name for the new AVD and the system image you want
@@ -118,11 +129,12 @@
be running on the system that you specify in the <code>-t</code> argument.<p>
<p>To specify the system image to use, you refer to its <em>target ID</em>
-— an integer — as assigned by the android tool. The target ID is not
-derived from the system image name, version, or API Level, or other attribute,
-so you need to have the android tool list the available system images and the
-target ID of each, as described in the next section. You should do this
-<em>before</em> you run the <code>android create avd</code> command.
+— an integer — as assigned by the <code>android</code> tool. The
+target ID is not derived from the system image name, version, or API Level, or
+other attribute, so you need to have the <code>android</code> tool list the
+available system images and the target ID of each, as described in the next
+section. You should do this <em>before</em> you run the <code>android create
+avd</code> command.
</p>
<h3 id="listingtargets">Listing targets</h3>
@@ -131,7 +143,7 @@
<pre>android list targets</pre>
-<p>The android tool scans the <code><sdk>/platforms</code> and
+<p>The <code>android</code> tool scans the <code><sdk>/platforms</code> and
<code><sdk>/add-ons</code> directories looking for valid system images and
then generates the list of targets. Here's an example of the command output:
</p>
@@ -199,24 +211,22 @@
<pre>android create avd -n my_android1.5 -t 2</pre>
<p>If the target you selected was a standard Android system image ("Type:
-platform"), the android tool next asks you whether you want to create a custom
-hardware profile. </p>
-
+platform"), the <code>android</code> tool next asks you whether you want to
+create a custom hardware profile. </p>
<pre>Android 1.5 is a basic Android platform.
Do you wish to create a custom hardware profile [no]</pre>
<p>If you want to set custom hardware emulation options for the AVD, enter
"yes" and set values as needed. If you want to use the default hardware
emulation options for the AVD, just press the return key (the default is "no").
-The android tool creates the AVD with name and system image mapping you
+The <code>android</code> tool creates the AVD with name and system image mapping you
requested, with the options you specified.
-<p class="note">If you are creating an AVD whose target is an SDK add-on,
-the android tool does not allow you to set hardware emulation options. It
-assumes that the provider of the add-on has set emulation options appropriately
-for the device that the add-on is modeling, and so prevents you from resetting
-the options. </p>
-
+<p class="note">If you are creating an AVD whose target is an SDK add-on, the
+<code>android</code> tool does not allow you to set hardware emulation options.
+It assumes that the provider of the add-on has set emulation options
+appropriately for the device that the add-on is modeling, and so prevents you
+from resetting the options. </p>
<p>For a list of options you can use in the <code>android create avd</code>
command, see the table in <a href="#options">Command-line options for AVDs</a>,
at the bottom of
@@ -225,11 +235,11 @@
<h3 id="hardwareopts">Setting hardware emulation options</h3>
<p>When are creating a new AVD that uses a standard Android system image ("Type:
-platform"), the android tool lets you set hardware emulation options for virtual
-device. The table below lists the options available and the default values, as
-well as the names of properties that store the emulated hardware options in the AVD's
-configuration file (the config.ini file in the AVD's local directory). </p>
-
+platform"), the <code>android</code> tool lets you set hardware emulation
+options for virtual device. The table below lists the options available and the
+default values, as well as the names of properties that store the emulated
+hardware options in the AVD's configuration file (the config.ini file in the
+AVD's local directory). </p>
<table>
<tr>
@@ -249,7 +259,6 @@
<td>Whether there is a touch screen or not on the device. Default value is "yes".</td>
<td>hw.touchScreen
-
<tr>
<td>Trackball support </td>
<td>Whether there is a trackball on the device. Default value is "yes".</td>
@@ -339,23 +348,30 @@
<td>Default value is "66MB".</td>
<td>disk.cachePartition.size </td>
</tr>
+
+<tr>
+<td>Abstracted LCD density</td>
+<td>Sets the generalized density characteristic used by the AVD's screen. Default value is "160".</td>
+<td>hw.lcd.density </td>
+</tr>
+
</table>
<h3 id="location">Default location of the AVD files</h3>
-<p>When you create an AVD, the android tool creates a dedicated directory for it
+<p>When you create an AVD, the <code>android</code> tool creates a dedicated directory for it
on your development computer. The directory contains the AVD configuration file,
the user data image and SD card image (if available), and any other files
associated with the device. Note that the directory does not contain a system
image — instead, the AVD configuration file contains a mapping to the
system image, which it loads when the AVD is launched. </p>
-<p>The android tool also creates a <AVD name>.ini file for the AVD at the
+<p>The <code>android</code> tool also creates a <AVD name>.ini file for the AVD at the
root of the .android/avd directory on your computer. The file specifies the
location of the AVD directory and always remains at the root the .android
directory.</p>
-<p>By default, the android tool creates the AVD directory inside
+<p>By default, the <code>android</code> tool creates the AVD directory inside
<code>~/.android/avd/</code> (on Linux/Mac), <code>C:\Documents and
Settings\<user>\.android\</code> on Windows XP, and
<code>C:\Users\<user>\.android\</code> on Windows Vista.
@@ -396,18 +412,18 @@
<h3 id="deleting">Deleting an AVD</h3>
-<p>You can use the android tool to delete an AVD. Here is the command usage:</p>
+<p>You can use the <code>android</code> tool to delete an AVD. Here is the command usage:</p>
<pre>android delete avd -n <name> </pre>
-<p>When you issue the command, the android tool looks for an AVD matching the
+<p>When you issue the command, the <code>android</code> tool looks for an AVD matching the
specified name deletes the AVD's directory and files. </p>
<h2 id="options">Command-line options for AVDs</h2>
<p>The table below lists the command-line options you can use with the
-android tool. </p>
+<code>android</code> tool. </p>
<table>
@@ -448,9 +464,9 @@
<td><code>-f</code></td>
<td>Force creation of the AVD</td>
<td>By default, if the name of the AVD being created matches that of an
- existing AVD, the android tool will not create the new AVD or overwrite
+ existing AVD, the <code>android</code> tool will not create the new AVD or overwrite
the existing AVD. If you specify the <code>-f</code> option, however, the
- android tool will automatically overwrite any existing AVD that has the
+ <code>android</code> tool will automatically overwrite any existing AVD that has the
same name as the new AVD. The files and data of the existing AVD are
deleted. </td>
</tr>
@@ -465,7 +481,7 @@
<td><code>-s <name></code> or <br>
<code>-s <width>-<height></code> </td>
<td>The skin to use for this AVD, identified by name or dimensions.</td>
- <td>The android tool scans for a matching skin by name or dimension in the
+ <td>The <code>android</code> tool scans for a matching skin by name or dimension in the
<code>skins/</code> directory of the target referenced in the <code>-t
<targetID></code> argument. Example: <code>-s HVGA-L</code></td>
</tr>
diff --git a/docs/html/guide/developing/tools/emulator.jd b/docs/html/guide/developing/tools/emulator.jd
index 82d3c8d..a9b6914 100644
--- a/docs/html/guide/developing/tools/emulator.jd
+++ b/docs/html/guide/developing/tools/emulator.jd
@@ -1,7 +1,7 @@
page.title=Android Emulator
@jd:body
-<img src="{@docRoot}images/emulator-hvga-p.png" alt="Image of the Android Emulator" width="271" height="524" style="margin-left:0em;margin-top:-4em;float:right;"/>
+<div style="padding:1em;"><img src="/images/emulator-wvga800l.png" alt="Image of the Android Emulator" width="367" height="349" style="margin-left:2em;margin-top:-4em;float:right;"/></div>
<p>The Android SDK includes a mobile device emulator -- a virtual mobile device
that runs on your computer. The emulator lets you prototype, develop, and test
@@ -27,9 +27,13 @@
arriving SMS messages or phone calls), and simulate latency effects and dropouts
on the data channel.</p>
-<div class="inline-toc" style="whitespace:nowrap;">
-<h4>In this document:</h4>
-<div class="g-unit g-first" style="whitespace:nowrap;width:35%;">
+<table>
+<tr>
+<td colspan="2" style="border:0;"><strong>In this document:</strong></td>
+</tr>
+<tr>
+<td style="border:0;">
+
<ol class="toc">
<li><a href="#overview">Overview</a></li>
<li><a href="#starting">Starting and Stopping the Emulator</a></li>
@@ -53,9 +57,9 @@
<li><a href="#calling">Sending a Voice Call or SMS to Another Emulator Instance</a></li>
</ol></li>
</ol>
-</div>
+</td>
-<div class="g-unit" style="whitespace:nowrap;">
+<td style="border:0;">
<ol class="toc">
<li><a href="#console">Using the Emulator Console</a>
<ol class="toc">
@@ -85,9 +89,9 @@
<li><a href="#troubleshooting">Troubleshooting Emulator Problems</a></li>
<li><a href="#limitations">Emulator Limitations</a></li>
</ol>
-</div>
+</td>
-</div>
+</table>
<a name="overview"></a>
@@ -260,11 +264,11 @@
</tr>
<tr>
<td>Switch to previous layout orientation (for example, portrait, landscape)</td>
- <td>KEYPAD_7, F11</td>
+ <td>KEYPAD_7, Ctrl-F11</td>
</tr>
<tr>
<td>Switch to next layout orientation (for example, portrait, landscape)</td>
- <td>KEYPAD_9, F12</td>
+ <td>KEYPAD_9, Ctrl-F12</td>
</tr>
<tr>
<td>Toggle cell networking on/off</td>
@@ -721,19 +725,19 @@
</tr>
<tr>
<td><code>-skin <skinID></code></td>
- <td>Start the emulator with the specified skin. </td>
- <td>The standard Android platforms includes a <a href="#skins">choice of
- four skins</a>:<br />
- <li>HVGA-L (480x320, landscape)</li>
- <li>HVGA-P (320x480, portrait) (default) </li>
- <li>QVGA-L (320x240, landscape)</li>
- <li>QVGA-P (240x320, portrait) </li>
+ <td>This emulator option is deprecated. </td>
+ <td>Please set skin options using AVDs, rather than by using this emulator
+option. Using this option may yield unexpected and in some cases misleading
+results, since the density with which to render the skin may not be defined.
+AVDs let you associate each skin with a default density and override the default
+as needed. For more information, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>.
</td>
</tr>
<tr>
<td><code>-skindir <dir></code></td>
- <td>Search for emulator skins in <dir>. </td>
- <td> </td></tr>
+ <td>This emulator option is deprecated. </td>
+ <td>See comments for <code>-skin</code>, above.</td></tr>
</table>
<a name="diskimages"></a>
@@ -1636,41 +1640,9 @@
<h2>Using Emulator Skins</h2>
-<p>You can run the emulator with any of four default skins, as described in the table below. To specify a skin, use <code>-skin <skinID></code> when starting the emulator. </p>
+<p>The Android SDK includes several Emulator skins that you can use to control the resolution and density of the emulated device's screen. To select a specific skin for running the emulator, create an AVD that uses that skin. Please do not use deprecated emulator options such as <code>-skin</code> to control the skin used by an emulator instance. For more information about AVDs, see <a
+href="{@docRoot}guide/developing/tools/avd.html">Android Virtual Devices</a>. </p>
-<p>For example: </p>
-
-<pre>emulator -skin HVGA-L</pre>
-
-<p>Note that you must enter the <code><skinID></code> in uppercase letters (if your development computer is case-sensitive).</p>
-
-<table border="0" style="clear:left;padding:2em;">
- <tr>
- <th width="20%">skinID</th>
- <th >Description</th>
- <th >Skin</th>
- </tr>
- <tr>
- <td><code>HVGA-L</code></td>
- <td>480x320, landscape</td>
- <td><img src="{@docRoot}images/e-mini-hvga-l.png" width="219" height="113"></td>
- </tr>
- <tr>
- <td><code>HVGA-P</code></td>
- <td>320x480, portrait (default)</td>
- <td><img src="{@docRoot}images/e-mini-hvga-p.png" width="113" height="219"></td>
- </tr>
- <tr>
- <td><code>QVGA-L</code></td>
- <td>320x240, landscape</td>
- <td><img src="{@docRoot}images/e-mini-qvga-l.png" width="119" height="197"></td>
- </tr>
- <tr>
- <td><code>QVGA-P</code></td>
- <td>240x320, portrait</td>
- <td><img src="{@docRoot}images/e-mini-qvga-p.png" width="95" height="173"></td>
- </tr>
-</table>
<a name="multipleinstances"></a>
diff --git a/docs/html/guide/developing/tools/index.jd b/docs/html/guide/developing/tools/index.jd
index 2c9e45d..91b430f 100644
--- a/docs/html/guide/developing/tools/index.jd
+++ b/docs/html/guide/developing/tools/index.jd
@@ -89,5 +89,10 @@
<dd>A script that lets you manage AVDs and generate <a
href="http://ant.apache.org/" title="Ant">Ant</a> build files that
you can use to compile your Android applications. </dd>
+
+ <dt><a href="zipalign.html">zipalign</a></dt>
+ <dd>An important .apk optimization tool. This tool ensures that all uncompressed data starts
+ with a particular alignment relative to the start of the file. This should always be used
+ to align .apk files after they have been signed.</dd>
</dl>
diff --git a/docs/html/guide/developing/tools/zipalign.jd b/docs/html/guide/developing/tools/zipalign.jd
new file mode 100644
index 0000000..6231798
--- /dev/null
+++ b/docs/html/guide/developing/tools/zipalign.jd
@@ -0,0 +1,65 @@
+page.title=zipalign
+@jd:body
+
+<p>zipalign is an archive alignment tool that provides important
+optimization to Android application (.apk) files.
+The purpose is to ensure that all uncompressed data starts
+with a particular alignment relative to the start of the file. Specifically,
+it causes all uncompressed data within the .apk, such as images or raw files,
+to be aligned on 4-byte boundaries. This
+allows all portions to be accessed directly with {@code mmap()} even if they
+contain binary data with alignment restrictions.
+The benefit is a reduction in the amount of RAM consumed
+when running the application.</p>
+
+<p>This tool should always be used to align your .apk file before
+distributing it to end-users. The Android build tools can handle
+this for you. When using Eclipse with the ADT plugin, the Export Wizard
+will automatically zipalign your .apk after it signs it with your private key.
+The build scripts used
+when compiling your application with Ant will also zipalign your .apk,
+as long as you have provided the path to your keystore and the key alias in
+your project {@code build.properties} file, so that the build tools
+can sign the package first.</p>
+
+<p class="caution"><strong>Caution:</strong> zipalign must only be performed
+<strong>after</strong> the .apk file has been signed with your private key.
+If you perform zipalign before signing, then the signing procedure will undo
+the alignment. Also, do not make alterations to the aligned package.
+Alterations to the archive, such as renaming or deleting entries, will
+potentially disrupt the alignment of the modified entry and all later
+entries. And any files added to an "aligned" archive will not be aligned.</p>
+
+<p>The adjustment is made by altering the size of
+the "extra" field in the zip Local File Header sections. Existing data
+in the "extra" fields may be altered by this process.</p>
+
+<p>For more information about how to use zipalign when building your
+application, please read <a href="{@docRoot}guide/publishing/app-signing.html">Signing
+Your Application</a>.</p>
+
+
+<h3>Usage</h3>
+
+<p>To align {@code infile.apk} and save it as {@code outfile.apk}:</p>
+
+<pre>zipalign [-f] [-v] <alignment> infile.apk outfile.apk</pre>
+
+<p>To confirm the alignment of {@code existing.apk}:</p>
+
+<pre>zipalign -c -v <alignment> existing.apk</pre>
+
+<p>The {@code <alignment>} is an integer that defines the byte-alignment boundaries.
+This must always be 4 (which provides 32-bit alignment) or else it effectively
+does nothing.</p>
+
+<p>Flags:</p>
+
+<ul>
+ <li>{@code -f} : overwrite existing outfile.zip</li>
+ <li>{@code -v} : verbose output</li>
+ <li>{@code -c} : confirm the alignment of the given file</li>
+</ul>
+
+
+
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index a5dadbc..5abc872 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -256,6 +256,7 @@
<li><a href="<?cs var:toroot ?>guide/developing/tools/monkey.html">Monkey</a></li>
<li><a href="<?cs var:toroot ?>guide/developing/tools/adb.html#sqlite">sqlite3</a></li>
<li><a href="<?cs var:toroot ?>guide/developing/tools/traceview.html" >Traceview</a></li>
+ <li><a href="<?cs var:toroot ?>guide/developing/tools/zipalign.html" >zipalign</a></li>
</ul>
</li>
<!--<li><a href="<?cs var:toroot ?>guide/developing/instrumentation/index.html">Instrumentation</a></li>
diff --git a/docs/html/guide/publishing/app-signing.jd b/docs/html/guide/publishing/app-signing.jd
index a16c910..f0febc0 100644
--- a/docs/html/guide/publishing/app-signing.jd
+++ b/docs/html/guide/publishing/app-signing.jd
@@ -22,10 +22,11 @@
<li><a href="#debugmode">Signing in Debug Mode</a></li>
<li><a href="#releasemode">Signing for Public Release</a>
<ol>
- <li><a href="#releasecompile">Compiling for release</a></li>
- <li><a href="#cert">Obtaining a suitable private key</a></li>
- <li><a href="#signapp">Signing your application</a></li>
- <li><a href="#ExportWizard">Compiling and signing with Eclipse ADT</a></li>
+ <li><a href="#cert">Obtain a suitable private key</a></li>
+ <li><a href="#releasecompile">Compile the application in release mode</a></li>
+ <li><a href="#signapp">Sign your application with your private key</a></li>
+ <li><a href="#align">Align the final APK package</a></li>
+ <li><a href="#ExportWizard">Compile and sign with Eclipse ADT</a></li>
</ol>
</li>
<li><a href="#secure-key">Securing Your Private Key</a></li>
@@ -71,6 +72,7 @@
will continue to function normally.</li>
<li>You can use standard tools — Keytool and Jarsigner — to generate keys and
sign your application .apk files.</li>
+ <li>Once you have signed the application, use the <code>zipalign</code> tool to optimize the final APK package.</li>
</ul>
<p>The Android system will not install or run an application that is not signed appropriately. This
@@ -107,6 +109,9 @@
</li>
</ul>
+<p>Once your application is signed, don't forget to run {@code zipalign} on the APK
+for additional optimization.</p>
+
<h2 id="strategies">Signing Strategies</h2>
<p>Some aspects of application signing may affect how you approach the development
@@ -171,16 +176,16 @@
<h2 id="setup">Basic Setup for Signing</h2>
-<p>To support the generation of a keystore and debug key, you should first make sure that
+<p>Before you begin, you should make sure that
Keytool is available to the SDK build
-tools. In most cases, you can tell the SDK build tools how to find Keytool by making sure
-that your JAVA_HOME environment variable is set and that it references a suitable JDK.
-Alternatively, you can add the JDK version of Keytool to your PATH variable.</p>
+tools. In most cases, you can tell the SDK build tools how to find Keytool by setting
+your <code>JAVA_HOME</code> environment variable to references a suitable JDK.
+Alternatively, you can add the JDK version of Keytool to your <code>PATH</code> variable.</p>
<p>If you are developing on a version of Linux that originally came with GNU Compiler for
Java, make sure that the system is using the JDK version of Keytool, rather than the gcj
-version. If Keytool is already in your PATH, it might be pointing to a symlink at
-<code>/usr/bin/keytool</code>. In this case, check the symlink target to make sure that it points
+version. If Keytool is already in your <code>PATH</code>, it might be pointing to a symlink at
+<code>/usr/bin/keytool</code>. In this case, check the symlink target to be sure it points
to the Keytool in the JDK.</p>
<p>If you will release your application to the public, you will also need to have
@@ -191,46 +196,50 @@
<p>The Android build tools provide a debug signing mode that makes it easier for you
to develop and debug your application, while still meeting the Android system
-requirement for signing your .apk when it is installed in the emulator or a device.
-When you use debug mode, the SDK tools invoke Keytool to create a debug
-keystore and key.</p>
+requirement for signing your .apk.
+When using debug mode to build your app, the SDK tools invoke Keytool to automatically create
+a debug keystore and key. This debug key is then used to automatically sign the .apk, so
+you do not need to sign the package with your own key.</p>
-<p>The SDK tools create the debug keystore/key with predetermined names/passwords;</p>
+<p>The SDK tools create the debug keystore/key with predetermined names/passwords:</p>
<ul>
-<li>Keystore name – "debug.keystore"</li>
-<li>Keystore password – "android"</li>
-<li>Key alias – "androiddebugkey"</li>
-<li>Key password – "android"</li>
-<li>CN – "CN=Android Debug,O=Android,C=US"</li>
+<li>Keystore name: "debug.keystore"</li>
+<li>Keystore password: "android"</li>
+<li>Key alias: "androiddebugkey"</li>
+<li>Key password: "android"</li>
+<li>CN: "CN=Android Debug,O=Android,C=US"</li>
</ul></p>
<p>If necessary, you can change the location/name of the debug keystore/key or
-supply a custom debug keystore/key to use. In Eclipse/ADT, you can use
-<strong>Windows</strong> > <strong>Prefs</strong> >
-<strong>Android</strong> > <strong>Build</strong>. However, any custom debug
+supply a custom debug keystore/key to use. However, any custom debug
keystore/key must use the same keystore/key names and passwords as the default
-debug key (as described above).</p>
+debug key (as described above). (To do so in Eclipse/ADT, go to
+<strong>Windows</strong> > <strong>Preferences</strong> >
+<strong>Android</strong> > <strong>Build</strong>.) </p>
-<p class="note"><strong>Note:</strong> You <em>cannot</em> release your application
+<p class="caution"><strong>Caution:</strong> You <em>cannot</em> release your application
to the public when signed with the debug certificate.</p>
<h3>Eclipse Users</h3>
-<p>If you are developing in Eclipse/ADT and have set up Keytool as described
-above, signing in debug mode is enabled by default. When you run or debug your
-application, ADT signs the .apk with the debug certificate and installs it on
-the emulator. No specific action on your part is needed, provided ADT has
-access to Keytool.</p>
+<p>If you are developing in Eclipse/ADT (and have set up Keytool as described above in
+<a href="#setup">Basic Setup for Signing</a>),
+signing in debug mode is enabled by default. When you run or debug your
+application, ADT signs the .apk with the debug certificate, runs {@code zipalign} on the
+package, then installs it on
+the selected emulator or connected device. No specific action on your part is needed,
+provided ADT has access to Keytool.</p>
<h3>Ant Users</h3>
-<p>If you use Ant to build your .apk files, debug signing mode
-is enabled by using the <code>debug</code> option, assuming that you are using a
-<code>build.xml</code> file generated by the
-<code>android</code> tool. When you run <code>ant debug</code> to
+<p>If you are using Ant to build your .apk files, debug signing mode
+is enabled by using the <code>debug</code> option with the <code>ant</code> command
+(assuming that you are using a <code>build.xml</code> file generated by the
+<code>android</code> tool). When you run <code>ant debug</code> to
compile your app, the build script generates a keystore/key and signs the .apk for you.
+The script then also aligns the .apk with the <code>zipalign</code> tool.
No other action on your part is needed. Read
-<a href="{@docRoot}guide/developing/other-ide.html#DebugMode">Developing In Other IDEs: Building
+<a href="{@docRoot}guide/developing/other-ide.html#DebugMode">Developing In Other IDEs: Building
in debug mode</a> for more information.</p>
@@ -268,51 +277,20 @@
<p>When your application is ready for release to other users, you must:</p>
<ol>
- <li>Compile the application in release mode</li>
- <li>Obtain a suitable private key</li>
- <li>Sign the application with your private key</li>
+ <li><a href="#cert">Obtain a suitable private key</a></li>
+ <li><a href="#releasecompile">Compile the application in release mode</li>
+ <li><a href="#signapp">Sign your application with your private key</a></li>
+ <li><a href="#align">Align the final APK package</a></li>
</ol>
-<p>The sections below provide information about how to perform these steps.</p>
-
-<p>If you use Eclipse with the ADT plugin, you can instead use the Export Wizard
-to compile and sign an .apk with your private key. The Export Wizard even allows you to
-generate a new keystore and private key in the process. Skip to
-<a href="#ExportWizard">Compiling and signing with Eclipse ADT</a>.</p>
+<p>If you are developing in Eclipse with the ADT plugin, you can use the Export Wizard
+to perform the compile, sign, and align procedures. The Export Wizard even allows you to
+generate a new keystore and private key in the process. So if you use Eclipse, you can
+skip to <a href="#ExportWizard">Compile and sign with Eclipse ADT</a>.</p>
-<h3 id="releasecompile">Compiling for release</h3>
-<p>To prepare your application for release, you must first compile it in release mode.
-In release mode, the Android build tools compile your application as usual,
-but without signing it with the debug key.</p>
-
-<p class="warning"><strong>Note:</strong>
-You can not release your application unsigned, or signed with the debug key.</p>
-
-<h4>Eclipse users</h4>
-
-<p>To export an <em>unsigned</em> .apk from Eclipse, right-click the project in the Package
-Explorer and select <strong>Android Tools</strong> > <strong>Export Unsigned Application
-Package</strong>. Then simply specify the file location for the unsigned .apk.
-(Alternatively, open your <code>AndroidManifest.xml</code> file in Eclipse, open
-the <em>Overview</em> tab, and click <strong>Export an unsigned .apk</strong>.)</p>
-
-<p>You can also combine the compiling and signing steps with the Export Wizard. See
-<a href="#ExportWizard">Compiling and signing with Eclipse ADT</a>.</p>
-
-<h4>Ant users</h4>
-
-<p>If you are using Ant, all you need to do is specify the build target
-"release" in the Ant command. For example, if you are running Ant from the
-directory containing your build.xml file, the command would look like this:</p>
-
-<pre>$ ant release</pre>
-
-<p>The build script compiles the application .apk without signing it.</p>
-
-
-<h3 id="cert">Obtaining a Suitable Private Key</h3>
+<h3 id="cert">1. Obtain a suitable private key</h3>
<p>In preparation for signing your application, you must first ensure that
you have a suitable private key with which to sign. A suitable private
@@ -339,7 +317,8 @@
command and pass any of the options listed below (and any others, as
needed). </p>
-<p class="warning"><strong>Note:</strong> Before you run Keytool, make sure to read
+<p class="warning"><strong>Warning:</strong> Keep your private key secure.
+Before you run Keytool, make sure to read
<a href="#secure-key">Securing Your Private Key</a> for a discussion of how to keep
your key secure and why doing so is critically important to you and to users. In
particular, when you are generating your key, you should select strong passwords
@@ -395,7 +374,6 @@
</tr>
</table>
-
<p>Here's an example of a Keytool command that generates a private key:</p>
<pre>$ keytool -genkey -v -keystore my-release-key.keystore
@@ -415,9 +393,57 @@
http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security</a></p>
-<h3 id="signapp">Signing your application</h3>
-<p>When you are ready to actually sign your .apk for release, you can do so
+<h3 id="releasecompile">2. Compile the application in release mode</h3>
+
+<p>In order to release your application to users, you must compile it in release mode.
+In release mode, the compiled application is not signed by default and you will need
+to sign it with your private key.</p>
+
+<p class="caution"><strong>Caution:</strong>
+You can not release your application unsigned, or signed with the debug key.</p>
+
+<h4>With Eclipse</h4>
+
+<p>To export an <em>unsigned</em> .apk from Eclipse, right-click the project in the Package
+Explorer and select <strong>Android Tools</strong> > <strong>Export Unsigned Application
+Package</strong>. Then specify the file location for the unsigned .apk.
+(Alternatively, open your <code>AndroidManifest.xml</code> file in Eclipse, open
+the <em>Overview</em> tab, and click <strong>Export an unsigned .apk</strong>.)</p>
+
+<p>Note that you can combine the compiling and signing steps with the Export Wizard. See
+<a href="#ExportWizard">Compiling and signing with Eclipse ADT</a>.</p>
+
+<h4>With Ant</h4>
+
+<p>If you are using Ant, you can enable release mode by using the <code>release</code> option
+with the <code>ant</code> command. For example, if you are running Ant from the
+directory containing your {@code build.xml} file, the command would look like this:</p>
+
+<pre>ant release</pre>
+
+<p>By default, the build script compiles the application .apk without signing it. The output file
+in your project {@code bin/} will be <code><em><your_project_name></em>-unsigned.apk</code>.
+Because the application .apk is still unsigned, you must manually sign it with your private
+key and then align it using {@code zipalign}.</p>
+
+<p>However, the Ant build script can also perform the signing
+and aligning for you, if you have provided the path to your keystore and the name of
+your key alias in the project's {@code build.properties} file. With this information provided,
+the build script will prompt you for your keystore and alias password when you perform
+<code>ant release</code>, it will sign the package and then align it. The final output
+file in {@code bin/} will instead be
+<code><em><your_project_name></em>-release.apk</code>. With these steps
+automated for you, you're able to skip the manual procedures below (steps 3 and 4).
+To learn how to specify your keystore and alias in the {@code build.properties} file,
+see <a href="{@docRoot}guide/developing/other-ide.html#ReleaseMode">Developing In Other
+IDEs: Building in release mode</a>.</p>
+
+
+
+<h3 id="signapp">3. Sign your application with your private key</h3>
+
+<p>When you have an application package that is ready to be signed, you can do sign it
using the Jarsigner tool. Make sure that you have Jarsigner available on your
machine, as described in <a href="#setup">Basic Setup</a>. Also, make sure that
the keystore containing your private key is available.</p>
@@ -492,29 +518,63 @@
http://java.sun.com/j2se/1.5.0/docs/tooldocs/#security</a></p>
-<h3 id="ExportWizard">Compiling and signing with Eclipse ADT</h3>
+<h3 id="align">4. Align the final APK package</h3>
-<p>When using Eclipse with ADT, you can use the Export Wizard to
+<p>Once you have signed the .apk with your private key, run <code>zipalign</code> on the file.
+This tool ensures that all uncompressed data starts with a particular byte alignment,
+relative to the start of the file. Ensuring alignment at 4-byte boundaries provides
+a performance optimization when installed on a device. When aligned, the Android
+system is able to read files with {@code mmap()}, even if
+they contain binary data with alignment restrictions, rather than copying all
+of the data from the package. The benefit is a reduction in the amount of
+RAM consumed by the running application.</p>
+
+<p>The <code>zipalign</code> tool is provided with the Android SDK, inside the
+<code>tools/</code> directory. To align your signed .apk, execute:</p>
+
+<pre>zipalign -v 4 <em>your_project_name</em>-unaligned.apk <em>your_project_name</em>.apk</pre>
+
+<p>The {@code -v} flag turns on verbose output (optional). {@code 4} is the
+byte-alignment (don't use anything other than 4). The first file argument is
+your signed .apk (the input) and the second file is the destination .apk file (the output).
+If you're overriding an existing .apk, add the {@code -f} flag.</p>
+
+<p class="caution"><strong>Caution:</strong> Your input .apk must be signed with your
+private key <strong>before</strong> you optimize the package with {@code zipalign}.
+If you sign it after using {@code zipalign}, it will undo the alignment.</p>
+
+<p>For more information, read about the
+<a href="{@docRoot}guide/developing/tools/zipalign.html">zipalign</a> tool.
+
+
+<h3 id="ExportWizard">Compile and sign with Eclipse ADT</h3>
+
+<p>If you are using Eclipse with the ADT plugin, you can use the Export Wizard to
export a <em>signed</em> .apk (and even create a new keystore,
if necessary). The Export Wizard performs all the interaction with
-the Keytool and Jarsigner for you, which allows you to perform signing via a
-graphical interface instead of the command-line.
+the Keytool and Jarsigner for you, which allows you to sign the package using a GUI
+instead of performing the manual procedures to compile, sign,
+and align, as discussed above. Once the wizard has compiled and signed your package,
+it will also perfom package alignment with {@code zipalign}.
Because the Export Wizard uses both Keytool and Jarsigner, you should
ensure that they are accessible on your computer, as described above
in the <a href=#setup">Basic Setup for Signing</a>.</p>
-<p>To create a signed .apk, right-click the project in the Package
-Explorer and select <strong>Android Tools > Export Signed Application Package</strong>.
-(Alternatively, open your <code>AndroidManifest.xml</code> file in Eclipse, open
-the <em>Overview</em> tab, and click <strong>Use the Export Wizard</strong>.)
-The window that appears will display any errors found while
-attempting to export your application. If no errors are found, continue with the
-Export Wizard, which will guide you through the process of signing your application,
-including steps for selecting the private key with which to sign the .apk,
-or creating a new keystore and private key.</p>
+<p>To create a signed and aligned .apk in Eclipse:</p>
-<p>When you complete the Export Wizard, you'll
-have a signed .apk that's ready for distribution.</p>
+<ol>
+ <li>Select the project in the Package
+Explorer and select <strong>File > Export</strong>.</li>
+ <li>Open the Android folder, select Export Android Application,
+ and click <strong>Next</strong>.
+ <p>The Export Android Application wizard now starts, which will
+ guide you through the process of signing your application,
+ including steps for selecting the private key with which to sign the .apk
+ (or creating a new keystore and private key).</p>
+ <li>Complete the Export Wizard and your application will be compiled,
+ signed, aligned, and ready for distribution.</li>
+</ol>
+
<h2 id="secure-key">Securing Your Private Key</h2>
diff --git a/docs/html/guide/publishing/preparing.jd b/docs/html/guide/publishing/preparing.jd
index b4eaea3..5357166 100644
--- a/docs/html/guide/publishing/preparing.jd
+++ b/docs/html/guide/publishing/preparing.jd
@@ -220,22 +220,20 @@
to download Maps data. </li>
</ol>
-<p>For more information about signing and your private key, see <a
-href="{@docRoot}guide/publishing/app-signing.html">Signing Your Applications</a>.</p>
-
-
<h2 id="compile">Compile your application</h2>
<p>When you've prepared your application as described in the previous sections,
-you can compile your application for release. </p>
+you can compile your application for release.</p>
+
<h2 id="post-compile">After compiling your application</h2>
<h3 id="signapp">8. Sign your application</h3>
-<p>Sign your application using your private key. Signing your application
-correctly is critically important. Please see
-<a href="{@docRoot}guide/publishing/app-signing.html">Signing Your
+<p>Sign your application using your private key and then
+align it with the {@code zipalign} tool. Signing your application
+correctly is critically important. Please see
+<a href="{@docRoot}guide/publishing/app-signing.html">Signing Your
Applications</a> for complete information. </p>
<h3 id="testapp">9. Test your compiled and signed application</h3>
diff --git a/docs/html/guide/publishing/versioning.jd b/docs/html/guide/publishing/versioning.jd
index d0eafcd..8d8b304 100644
--- a/docs/html/guide/publishing/versioning.jd
+++ b/docs/html/guide/publishing/versioning.jd
@@ -17,7 +17,7 @@
<ol>
<li><a href="#appversion">Setting Application Version</a></li>
-<li><a href="#minsdkversion">Specifying Minimum System API Version</a>
+<li><a href="#minsdkversion">Specifying Your Application's System API Requirements</a>
</ol>
@@ -125,31 +125,44 @@
{@link android.content.pm.PackageManager#getPackageInfo(java.lang.String, int)}
method of {@link android.content.pm.PackageManager PackageManager}. </p>
-<h2 id="minsdkversion">Specifying Minimum System API Version</h2>
+<h2 id="minsdkversion">Specifying Your Application's System API Requirements</h2>
<p>If your application requires a specific minimum version of the Android
-platform, you can specify that version as an API Level identifier
+platform, or is designed only to support a certain range of Android platform
+versions, you can specify those version requirements as API Level identifiers
in the application's manifest file. Doing so ensures that your
application can only be installed on devices that
are running a compatible version of the Android system. </p>
-<p>To specify the minimum system version in the manifest, use this attribute: </p>
+<p>To specify API Level requirements, add a <code><uses-sdk></code>
+element in the application's manifest, with one or more of these attributes: </p>
<ul>
-<li><code>android:minSdkVersion</code> — An integer value corresponding to
-the code version of the Android platform.
-<p>When preparing to install an application, the system checks the value of this
+<li><code>android:minSdkVersion</code> — The minimum version
+of the Android platform on which the application will run, specified
+by the platform's API Level identifier. </li>
+<li><code>android:maxSdkVersion</code> — The maximum version
+of the Android platform on which the application is designed to run,
+specified by the platform's API Level identifier. </li>
+</ul>
+
+<p>When preparing to install your application, the system checks the value of this
attribute and compares it to the system version. If the
<code>android:minSdkVersion</code> value is greater than the system version, the
-system aborts the installation of the application. </p>
+system aborts the installation of the application. Similarly, the system
+installs your application only if its <code>android:maxSdkVersion</code>
+is compatible with the platform version.</p>
-<p>If you do not specify this attribute in your manifest, the system assumes
-that your application is compatible with all platform versions.</p></li>
-</ul>
+<p>If you do not specify these attributes in your manifest, the system assumes
+that your application is compatible with all platform versions, with no
+maximum API Level. </p>
<p>To specify a minimum platform version for your application, add a
<code><uses-sdk></code> element as a child of
<code><manifest></code>, then define the
<code>android:minSdkVersion</code> as an attribute. </p>
-<p>For more information, also see the <a href="{@docRoot}sdk/android-1.1.html">Android System Image 1.1 Version Notes</a>.</p>
+<p>For more information, see the <a
+href="{@docRoot}guide/developing/manifest/uses-sdk-element.html"><code><uses-
+sdk></code></a> manifest element documentation and the <a
+href="{@docRoot}guide/appendix/api-levels.htmll">API Levels</a> document.</p>
diff --git a/docs/html/guide/topics/intents/intents-filters.jd b/docs/html/guide/topics/intents/intents-filters.jd
index fd20ca17..962a001 100644
--- a/docs/html/guide/topics/intents/intents-filters.jd
+++ b/docs/html/guide/topics/intents/intents-filters.jd
@@ -16,10 +16,11 @@
<h2>In this document</h2>
<ol>
<li><a href="#iobjs">Intent Objects</a></li>
-<li><a href="#ires">Intent Resolution</a>, including:</li>
+<li><a href="#ires">Intent Resolution</a></li>
<li style="margin-left: 2em"><a href="#ifs">Intent filters</a></li>
<li style="margin-left: 2em"><a href="#ccases">Common cases</a></li>
<li style="margin-left: 2em"><a href="#imatch">Using intent matching</a></li>
+<li><a href="#npex">Note Pad Example</a></li>
</ol>
</div>
</div>
@@ -31,7 +32,7 @@
Intent messaging is a facility for late run-time binding between components in the same
or different applications. The intent itself, an {@link android.content.Intent}
object, is a passive data structure holding an abstract description of an operation
-to be performed — or, in the case of broadcasts, a description of something
+to be performed — or, often in the case of broadcasts, a description of something
that has happened and is being announced. There are separate mechanisms for
delivering intents to each type of component:
</p>
@@ -40,7 +41,9 @@
<li>An Intent object is passed to <code>{@link android.content.Context#startActivity
Context.startActivity()}</code> or <code>{@link android.app.Activity#startActivityForResult
Activity.startActivityForResult()}</code> to launch an activity or get an existing
-activity to do something new.</li>
+activity to do something new. (It can also be passed to
+<code>{@link android.app.Activity#setResult(int, Intent) Activity.setResult()}</code>
+to return information to the activity that called {@code startActivityForResult()}.)</li>
<li><p>An Intent object is passed to <code>{@link android.content.Context#startService
Context.startService()}</code> to initiate a service or deliver new instructions to an
@@ -380,22 +383,12 @@
<p>
A component has separate filters for each job it can do, each face it can
-present to the user. For example, the principal activity of the sample
-NotePad application has three filters — one for starting up with a
-blank slate, another for starting with an assigned directory of notes
-that the user can view, edit, or select from, and a third for finding a
-particular note without an initial specification of its directory.
-</p>
-
-<p>
-An intent filter is an instance of the {@link android.content.IntentFilter} class.
-However, since the Android system must know about the capabilities of a component
-before it can launch that component, intent filters are generally not set up in
-Java code, but in the application's manifest file (AndroidManifest.xml) as
-{@code <intent-filter>} elements. (The one exception would be filters for
-broadcast receivers that are registered dynamically by calling <code>{@link android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String,
-Handler) Context.registerReceiver()}</code>; they are directly created as
-IntentFilter objects.)
+present to the user. For example, the NoteEditor activity of the sample
+Note Pad application has two filters — one for starting up with a
+specific note that the user can view or edit, and another for starting
+with a new, blank note that the user can fill in and save. (All of Note
+Pad's filters are described in the <a href="#npex">Note Pad Example</a>
+section, later.)
</p>
<div class="sidebox-wrapper">
@@ -413,6 +406,18 @@
</div>
<p>
+An intent filter is an instance of the {@link android.content.IntentFilter} class.
+However, since the Android system must know about the capabilities of a component
+before it can launch that component, intent filters are generally not set up in
+Java code, but in the application's manifest file (AndroidManifest.xml) as
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code>
+elements. (The one exception would be filters for
+broadcast receivers that are registered dynamically by calling <code>{@link android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String,
+Handler) Context.registerReceiver()}</code>; they are directly created as
+IntentFilter objects.)
+</p>
+
+<p>
A filter has fields that parallel the action, data, and category fields of an
Intent object. An implicit intent is tested against the filter in all three areas.
To be delivered to the component that owns the filter, it must pass all three tests.
@@ -429,8 +434,11 @@
<dl>
<dt><b>Action test</b></dt>
-<dd>An {@code <intent-filter>} element in the manifest file lists actions
-as {@code <action>} subelements. For example:
+<dd>An
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code>
+element in the manifest file lists actions as
+<code><a href="{@docRoot}guide/topics/manifest/action-element.html"><action></a></code>
+subelements. For example:
<pre><intent-filter . . . >
<action android:name="com.example.project.SHOW_CURRENT" />
@@ -464,8 +472,9 @@
</dd>
<dt><b>Category test</b></dt>
-<dd>An {@code <intent-filter>} element also lists categories as subelements.
-For example:
+<dd>An
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code>
+element also lists categories as subelements. For example:
<pre><intent-filter . . . >
<category android:name="android.intent.category.DEFAULT" />
@@ -512,14 +521,16 @@
multiple times, or not at all. For example:
<pre><intent-filter . . . >
- <data android:type="video/mpeg" android:scheme="http" . . . />
- <data android:type="audio/mpeg" android:scheme="http" . . . />
+ <data android:mimeType="video/mpeg" android:scheme="http" . . . />
+ <data android:mimeType="audio/mpeg" android:scheme="http" . . . />
. . .
</intent-filter></pre>
<p>
-Each {@code <data>} element can specify a URI and a data type (MIME media type).
-There are separate attributes — {@code scheme}, {@code host}, {@code port},
+Each
+<code><a href="{@docRoot}guide/topics/manifest/data-element.html"><data></a></code>
+element can specify a URI and a data type (MIME media type). There are separate
+attributes — {@code scheme}, {@code host}, {@code port},
and {@code path} — for each part of the URI:
</p>
@@ -607,7 +618,7 @@
provider and display it:
</p>
-<pre><data android:type="image/*" /></pre>
+<pre><data android:mimeType="image/*" /></pre>
<p>
Since most available data is dispensed by content providers, filters that
@@ -681,6 +692,357 @@
queryBroadcastReceivers()}, for broadcast receivers.
</p>
+<h2 id="npex">Note Pad Example</h2>
+
+<p>
+The Note Pad sample application enables users to browse through a list
+of notes, view details about individual items in the list, edit the items,
+and add a new item to the list. This section looks at the intent filters
+declared in its manifest file. (If you're working offline in the SDK, you
+can find all the source files for this sample application, including its
+manifest file, at {@code <sdk>/samples/NotePad/index.html}.
+If you're viewing the documentation online, the source files are in the
+<a href="{@docRoot}guide/samples/index.html">Tutorials and Sample Code</a>
+section <a href="{@docRoot}guide/samples/NotePad/index.html">here</a>.)
+</p>
+
+<p>
+In its manifest file, the Note Pad application declares three activities,
+each with at least one intent filter. It also declares a content provider
+that manages the note data. Here is the manifest file in its entirety:
+</p>
+
+<pre><manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.example.android.notepad">
+ <application android:icon="@drawable/app_notes"
+ android:label="@string/app_name" >
+
+ <provider android:name="NotePadProvider"
+ android:authorities="com.google.provider.NotePad" />
+
+ <activity android:name="NotesList" android:label="@string/title_notes_list">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <action android:name="android.intent.action.EDIT" />
+ <action android:name="android.intent.action.PICK" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.GET_CONTENT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
+ </intent-filter>
+ </activity>
+
+ <activity android:name="NoteEditor"
+ android:theme="@android:style/Theme.Light"
+ android:label="@string/title_note" >
+ <intent-filter android:label="@string/resolve_edit">
+ <action android:name="android.intent.action.VIEW" />
+ <action android:name="android.intent.action.EDIT" />
+ <action android:name="com.android.notepad.action.EDIT_NOTE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.INSERT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
+ </intent-filter>
+ </activity>
+
+ <activity android:name="TitleEditor"
+ android:label="@string/title_edit_title"
+ android:theme="@android:style/Theme.Dialog">
+ <intent-filter android:label="@string/resolve_title">
+ <action android:name="com.android.notepad.action.EDIT_TITLE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.ALTERNATIVE" />
+ <category android:name="android.intent.category.SELECTED_ALTERNATIVE" />
+ <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
+ </intent-filter>
+ </activity>
+
+ </application>
+</manifest></pre>
+
+<p>
+The first activity, NotesList, is
+distinguished from the other activities by the fact that it operates
+on a directory of notes (the note list) rather than on a single note.
+It would generally serve as the initial user interface into the
+application. It can do three things as described by its three intent
+filters:
+</p>
+
+<ol>
+<li><pre><intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+</intent-filter></pre>
+
+<p>
+This filter declares the main entry point into the Note Pad application.
+The standard {@code MAIN} action is an entry point that does not require
+any other information in the Intent (no data specification, for example),
+and the {@code LAUNCHER} category says that this entry point should be
+listed in the application launcher.
+</p></li>
+
+<li><pre><intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <action android:name="android.intent.action.EDIT" />
+ <action android:name="android.intent.action.PICK" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
+</intent-filter></pre>
+
+<p>
+This filter declares the things that the activity can do on a directory
+of notes. It can allow the user to view or edit the directory (via
+the {@code VIEW} and {@code EDIT} actions), or to pick a particular note
+from the directory (via the {@code PICK} action).
+</p>
+
+<p>
+The {@code mimeType} attribute of the
+<code><a href="{@docRoot}guide/topics/manifest/data-element.html"><data></a></code>
+element specifies the kind of data that these actions operate on. It
+indicates that the activity can get a Cursor over zero or more items
+({@code vnd.android.cursor.dir}) from a content provider that holds
+Note Pad data ({@code vnd.google.note}). The Intent object that launches
+the activity would include a {@code content:} URI specifying the exact
+data of this type that the activity should open.
+</p>
+
+<p>
+Note also the {@code DEFAULT} category supplied in this filter. It's
+there because the <code>{@link android.content.Context#startActivity
+Context.startActivity()}</code> and
+<code>{@link android.app.Activity#startActivityForResult
+Activity.startActivityForResult()}</code> methods treat all intents
+as if they contained the {@code DEFAULT} category — with just
+two exceptions:
+</p>
+
+<ul>
+<li>Intents that explicitly name the target activity</li>
+<li>Intents consisting of the {@code MAIN} action and {@code LAUNCHER}
+category</li>
+</ul>
+
+<p>
+Therefore, the {@code DEFAULT} category is <em>required</em> for all
+filters — except for those with the {@code MAIN} action and
+{@code LAUNCHER} category. (Intent filters are not consulted for
+explicit intents.)
+</p></li>
+
+<li><pre><intent-filter>
+ <action android:name="android.intent.action.GET_CONTENT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
+</intent-filter></pre>
+
+<p>
+This filter describes the activity's ability to return a note selected by
+the user without requiring any specification of the directory the user should
+choose from. The {@code GET_CONTENT} action is similar to the {@code PICK}
+action. In both cases, the activity returns the URI for a note selected by
+the user. (In each case, it's returned to the activity that called
+<code>{@link android.app.Activity#startActivityForResult
+startActivityForResult()}</code> to start the NoteList activity.) Here,
+however, the caller specifies the type of data desired instead of the
+directory of data the user will be picking from.
+</p>
+
+<p>
+The data type, <code>vnd.android.cursor.item/vnd.google.note</code>,
+indicates the type of data the activity can return — a URI for
+a single note. From the returned URI, the caller can get a Cursor for
+exactly one item ({@code vnd.android.cursor.item}) from the content
+provider that holds Note Pad data ({@code vnd.google.note}).
+</p>
+
+<p>
+In other words, for the {@code PICK} action in the previous filter,
+the data type indicates the type of data the activity could display to the
+user. For the {@code GET_CONTENT} filter, it indicates the type of data
+the activity can return to the caller.
+</p></li>
+</ol>
+
+<p>
+Given these capabilities, the following intents will resolve to the
+NotesList activity:
+</p>
+
+<dl style="margin-left: 2em">
+<dt>action: <code>android.intent.action.MAIN</code></dt>
+<dd>Launches the activity with no data specified.</dd>
+
+<dt>action: <code>android.intent.action.MAIN</code>
+<br/>category: <code>android.intent.category.LAUNCHER</code></dt>
+<dd> Launches the activity with no data selected specified.
+This is the actual intent used by the Launcher to populate its top-level
+list. All activities with filters that match this action and category
+are added to the list.</dd>
+
+<dt>action: <code>android.intent.action.VIEW</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to display a list of all the notes under
+<code>content://com.google.provider.NotePad/notes</code>. The user can then
+browse through the list and get information about the items in it.</dd>
+
+<dt>action: <code>android.intent.action.PICK</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to display a list of the notes under
+<code>content://com.google.provider.NotePad/notes</code>.
+The user can then pick a note from the list, and the activity will return
+the URI for that item back to the activity that started the NoteList activity.</dd>
+
+<dt>action: <code>android.intent.action.GET_CONTENT</code>
+<br/>data type: <code>vnd.android.cursor.item/vnd.google.note</code></dt>
+<dd>Asks the activity to supply a single item of Note Pad data.</dd>
+</dl>
+
+<p>
+The second activity, NoteEditor, shows
+users a single note entry and allows them to edit it. It can do two things
+as described by its two intent filters:
+
+<ol>
+<li><pre><intent-filter android:label="@string/resolve_edit">
+ <action android:name="android.intent.action.VIEW" />
+ <action android:name="android.intent.action.EDIT" />
+ <action android:name="com.android.notepad.action.EDIT_NOTE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
+</intent-filter></pre>
+
+<p>
+The first, primary, purpose of this activity is to enable the user to
+interact with a single note &mdash to either {@code VIEW} the note or
+{@code EDIT} it. (The {@code EDIT_NOTE} category is a synonym for
+{@code EDIT}.) The intent would contain the URI for data matching the
+MIME type <code>vnd.android.cursor.item/vnd.google.note</code> —
+that is, the URI for a single, specific note. It would typically be a
+URI that was returned by the {@code PICK} or {@code GET_CONTENT}
+actions of the NoteList activity.
+</p>
+
+<p>
+As before, this filter lists the {@code DEFAULT} category so that the
+activity can be launched by intents that don't explicitly specify the
+NoteEditor class.
+</p></li>
+
+<li><pre><intent-filter>
+ <action android:name="android.intent.action.INSERT" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
+</intent-filter></pre>
+
+<p>
+The secondary purpose of this activity is to enable the user to create a new
+note, which it will {@code INSERT} into an existing directory of notes. The
+intent would contain the URI for data matching the MIME type
+<code>vnd.android.cursor.dir/vnd.google.note</code> — that
+is, the URI for the directory where the note should be placed.
+</p></li>
+</ol>
+
+<p>
+Given these capabilities, the following intents will resolve to the
+NoteEditor activity:
+</p>
+
+<dl style:"margin-left: 2em">
+<dt>action: <code>android.intent.action.VIEW</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the content of the note identified
+by {@code <var>ID</var>}. (For details on how {@code content:} URIs
+specify individual members of a group, see
+<a href="{@docRoot}guide/topics/provider/content-providers.html">Content Providers</a>.)
+
+<dt>action: <code>android.intent.action.EDIT</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the content of the note identified
+by {@code <var>ID</var>}, and to let the user edit it. If the user
+saves the changes, the activity updates the data for the note in the
+content provider.</dd>
+
+<dt>action: <code>android.intent.action.INSERT</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes</code></dt>
+<dd>Asks the activity to create a new, empty note in the notes list at
+<code>content://com.google.provider.NotePad/notes</code>
+and allow the user to edit it. If the user saves the note, its URI
+is returned to the caller.
+</dd>
+</dl>
+
+<p>The last activity, TitleEditor,
+enables the user to edit the title of a note. This could be implemented
+by directly invoking the activity (by explicitly setting its component
+name in the Intent), without using an intent filter. But here we take
+the opportunity to show how to publish alternative operations on existing
+data:
+</p>
+
+<pre><intent-filter android:label="@string/resolve_title">
+ <action android:name="com.android.notepad.action.EDIT_TITLE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.ALTERNATIVE" />
+ <category android:name="android.intent.category.SELECTED_ALTERNATIVE" />
+ <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
+</intent-filter></pre>
+
+<p>
+The single intent filter for this activity uses a custom action called
+"<code>com.android.notepad.action.EDIT_TITLE</code>". It must be invoked on
+a specific note (data type <code>vnd.android.cursor.item/vnd.google.note</code>),
+like the previous {@code VIEW} and {@code EDIT} actions. However, here the
+activity displays the title contained in the note data, not the content of
+the note itself.
+</p>
+
+<p>
+In addition to supporting the usual {@code DEFAULT} category, the title
+editor also supports two other standard categories:
+<code>{@link android.content.Intent#CATEGORY_ALTERNATIVE ALTERNATIVE}</code>
+and <code>{@link android.content.Intent#CATEGORY_SELECTED_ALTERNATIVE
+SELECTED_ALTERNATIVE}</code>.
+These categories identify activities that can be presented to users in
+a menu of options (much as the {@code LAUNCHER} category identifies
+activities that should be presented to user in the application launcher).
+Note that the filter also supplies an explicit label (via
+<code>android:label="@string/resolve_title"</code>) to better control
+what users see when presented with this activity as an alternative
+action to the data they are currently viewing. (For more information
+on these categories and building options menus, see the
+<code>{@link android.content.pm.PackageManager#queryIntentActivityOptions
+PackageManager.queryIntentActivityOptions()}</code> and
+<code>{@link android.view.Menu#addIntentOptions Menu.addIntentOptions()}</code>
+methods.)
+</p>
+
+<p>
+Given these capabilities, the following intent will resolve to the
+TitleEditor activity:
+</p>
+
+<dl style="margin-left: 2em">
+<dt>action: <code>com.android.notepad.action.EDIT_TITLE</code>
+<br/>data: <code>content://com.google.provider.NotePad/notes/<var>ID</var></code></dt>
+<dd>Asks the activity to display the title associated with note <var>ID</var>, and
+allow the user to edit the title.</dd>
+</dl>
+
diff --git a/docs/html/images/emulator-wvga800l.png b/docs/html/images/emulator-wvga800l.png
new file mode 100644
index 0000000..a214033
--- /dev/null
+++ b/docs/html/images/emulator-wvga800l.png
Binary files differ
diff --git a/docs/html/index.jd b/docs/html/index.jd
index 823ec96..6945f9e 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -15,12 +15,12 @@
<div id="announcement" style="width:275px">
<p>The second Android Developer Challenge has begun! In this contest,
real-world users will help review and score applications and the overall winner will
- take away $250,000. The deadline for submitting an application to the contest is August 31, 2009.</p>
+ take away $250,000. The deadline for submissions was August 31, 2009 and judging by users has started.</p>
<p><a href="http://code.google.com/android/adc/">Learn more about ADC 2 »</a></p>
</div> <!-- end annoucement -->
</div> <!-- end annoucement-block -->
</div><!-- end topAnnouncement -->
- <div id="carouselMain" style="height:192px"> <!-- this height can be adjusted based on the content height -->
+ <div id="carouselMain" style="height:190px"> <!-- this height can be adjusted based on the content height -->
</div>
<div class="clearer"></div>
<div id="carouselWheel">
@@ -120,12 +120,17 @@
'sdk': {
'layout':"imgLeft",
'icon':"sdk-small.png",
- 'name':"SDK 1.5 r3",
- 'img':"sdk-large.png",
- 'title':"Android 1.5 SDK",
- 'desc': "<p>Android 1.5 SDK is now available. It includes new APIs for Android 1.5, updated developer tools, multiple platform versions, and a Google APIs add-on.</p><p><a href='{@docRoot}sdk/1.5_r3/index.html'>Download Android 1.5 SDK »</a></p>"
+ 'name':"Android 1.6 SDK",
+ 'img':"donut-android.png",
+ 'title':"Android 1.6 SDK",
+ 'desc': "<p>The Android 1.6 SDK is now available, with new APIs and updated tools!</p>"
+ + " <p>For more about the Android 1.6 platform, read the <a href='http://developer.android.com/sdk/android-1.6-highlights.html'>highlights</a>"
+ + "<!--and watch some <a href='http://developer.android.com/videos/index.html'>videos</a>-->."
+ + " Also keep an eye on the <a href='http://android-developers.blogspot.com'>Blog</a>"
+ + " for posts about some of the new developer technologies in Android 1.6.</p>"
+ + "<p><a href='{@docRoot}sdk/1.6_r1/index.html'>Download the Android 1.6 SDK »</a></p>"
},
-
+
'io': {
'layout':"imgLeft",
'icon':"io-small.png",
diff --git a/docs/html/intl/ja/community/index.jd b/docs/html/intl/ja/community/index.jd
index e0a645b..659aee7 100644
--- a/docs/html/intl/ja/community/index.jd
+++ b/docs/html/intl/ja/community/index.jd
@@ -40,38 +40,46 @@
<h3 id="ApplicationDeveloperLists">アプリケーション デベロッパー メーリング リスト</h3>
<ul>
+
+<li><b>Android SDK Japan</b> - Android SDK に関する質問と答え、提案とフィードバックを交換できる場です。
+<ul>
+<li>Google グループで登録: <a href="http://groups.google.co.jp/group/android-sdk-japan?hl=ja">android-sdk-japan</a></li>
+<li>メールで登録: <a href="mailto:android-sdk-japan-subscribe@googlegroups.com">android-sdk-japan-subscribe@googlegroups.com</a></li>
+</ul>
+</li>
+
<li><b>Android 初心者向け</b> - Android アプリケーションの開発初心者向けです。Android SDK と基本的な Android API の利用方法について学習したい場合は、このメーリング リストから始めてください。このメーリング リストには、SDK を利用するデベロッパーの初歩的なディスカッションの場所です。Android プラットフォームで初めてアプリケーションを作成して実行する際は、非常に有益な情報を得ることができるでしょう。開発環境のインストール方法についての質問を投稿したり、Android 開発の初歩(初めて作成するユーザー インターフェース、権限、Android ファイルシステムでのファイル、Android マーケットでのアプリケーションなど)について教えてもらうことができます。新たに質問する前に、必ず最初にアーカイブを確認してください。高度な内容の質問の場合はここでは質問せず、android-developers メーリング リストで質問してください。また使用に関する質問は、android-discuss メーリング リストの方が適しています。
<ul>
<li>Google グループで登録: <a href="http://groups.google.com/group/android-beginners?hl=ja">android-beginners</a></li>
-<li>メールで登録: <a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録: <a href="mailto:android-beginners-subscribe@googlegroups.com">android-beginners-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android デベロッパー向け</b> - Android アプリケーション デベロッパーとして経験を積むにつれ、Android アプリケーション開発の基本を把握して、SDK を使いこなせるようになります。今度は、より高度な内容について質問する必要があります。アプリケーションのトラブルシューティング、実装へのアドバイス、アプリケーションのパフォーマンスやユーザー エクスペリエンスを改良するテクニックに関する質問には、次のメーリング リストが役立ちます。使用に関する問題(android-discuss をご利用ください)や、Android SDK を使用する際の初歩的質問(android-beginners をご利用ください)についてのディスカッションの場所ではありません。
<ul>
<li>Google グループで登録: <a href="http://groups.google.com/group/android-developers?hl=ja">android-developers</a></li>
-<li>メールで登録: <a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録: <a href="mailto:android-developers-subscribe@googlegroups.com">android-developers-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android ディスカッション</b> - Android に関する「井戸端会議」です。ここでは、Android プラットフォームへのアイデア、自分のアプリケーションの公表、Android 携帯端末に関するディスカッション、コミュニティ リソースなど、Android に関することなら何でも投稿可能です。ただし他のメーリング リストに該当する内容の場合は、そのメーリング リストに投稿することをおすすめします。質問のテーマが限定されている場所の方が、より多くの回答を得ることができるでしょう。
<ul>
<li>Google グループで登録: <a href="http://groups.google.com/group/android-discuss?hl=ja">android-discuss</a></li>
-<li>メールで登録: <a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録: <a href="mailto:android-discuss-subscribe@googlegroups.com">android-discuss-subscribe@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android セキュリティ ディスカッション</b> - 安全な開発、新たに発生したセキュリティの問題、Android デベロッパー向けの Android デベロッパーによるベスト プラクティスについて自由にディスカッションを行える場所です。メーリング リストで脆弱性を直接公開することは、すべての Android ユーザーを危険にさらすことになるので、避けてください。
<ul>
<li>Google グループで登録: <a href="http://groups.google.com/group/android-security-discuss?hl=ja">android-security-discuss</a></li>
-<li>メールで登録: <a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a><a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録: <a href="mailto:android-security-discuss@googlegroups.com">android-security-discuss@googlegroups.com</a></li>
</ul>
</li>
<li><b>Android セキュリティに関する発表</b> - Android セキュリティ チームがセキュリティ関連の発表を行う、小規模なグループです。
<ul>
<li>Google グループで登録: <a href="http://groups.google.com/group/android-security-announce?hl=ja">android-security-announce</a></li>
-<li>メールで登録: <a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a> <a href="mailto:android-platform-subscribe@googlegroups.com"> </a></li>
+<li>メールで登録: <a href="mailto:android-security-announce-subscribe@googlegroups.com">android-security-announce-subscribe@googlegroups.com</a></li>
</ul>
</li>
diff --git a/docs/html/sdk/1.6_r1/index.jd b/docs/html/sdk/1.6_r1/index.jd
new file mode 100644
index 0000000..11d369b
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/index.jd
@@ -0,0 +1,140 @@
+page.title=Android 1.6 SDK, Release 1
+sdk.redirect=0
+sdk.version=1.6
+
+sdk.date=September 2009
+
+sdk.win_download=android-sdk-windows-1.6_r1.zip
+sdk.win_bytes=
+sdk.win_checksum=
+
+sdk.mac_download=android-sdk-mac_x86-1.6_r1.zip
+sdk.mac_bytes=
+sdk.mac_checksum=
+
+sdk.linux_download=android-sdk-linux_x86-1.6_r1.tgz
+sdk.linux_bytes=
+sdk.linux_checksum=
+
+adt.zip_download=ADT-0.9.3.zip
+adt.zip_version=0.9.3
+adt.zip_bytes=
+adt.zip_checksum=
+
+@jd:body
+
+<p>For more information on this SDK release, read the
+<a href="{@docRoot}sdk/RELEASENOTES.html#1.6_r1">Release Notes</a>.</p>
+
+<h2>SDK Contents</h2>
+
+<h4>Development tools</h4>
+
+<p>The SDK includes a full set of tools for developing and debugging application
+code and designing an application UI. You can read about the tools in the <a
+href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them
+in the <code><sdk>/tools/</code> directory.
+
+<p>The tools package in this SDK includes updates from those provided in the
+previous SDK. The tools use the same project structure as in the previous SDK
+(Android 1.5). If you have application projects developed in the Android 1.5
+SDK, you can migrate them to the latest SDK without modification. For more
+information about how to migrate, see <a href="upgrading.html">Upgrading the
+SDK</a>.
+
+<h4 id="system_images">Android Platforms</h4>
+
+<p>This SDK includes multiple Android platform versions that you can use to
+develop applications. For each version, both a fully compliant Android library
+and system image are provided. The table below lists the platform versions
+included in this SDK. For more information about a platform version —
+features, applications included, localizations, API changes, and so on —
+see its Version Notes. </p>
+
+<table style="margin-right:1em;" width="80%">
+<tr>
+<th><nobr>Platform</nobr></th><th><nobr>API
+Level</nobr></th><th>Notes</th><th>Description</th>
+</tr>
+<tr>
+<td width="5%"><nobr>Android 1.6</nobr></td>
+<td width="5%">4</td>
+<td width="5%"><nobr><a href="{@docRoot}sdk/android-1.6.html">Version
+Notes</a></nobr></td>
+<td>Includes a standard Android 1.6 library and system image with a set of
+development applications. Does not include any external libraries (such as the
+Maps external library).</td>
+</tr>
+<tr>
+<td width="5%"><nobr>Android 1.5</nobr></td>
+<td width="5%">3</td>
+<td width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version
+Notes</a></nobr></td>
+<td>Includes a standard Android 1.5 library and system image with a set of
+development applications. Does not include any external libraries (such as the
+Maps external library).</td>
+</tr>
+</table>
+
+<p>Note that you can use the Android SDK and AVD Manager to download other
+platform versions into your development environment.</span>.
+
+<h4 id="system_images">SDK Add-Ons</h4>
+
+<p>An SDK add-on provides a development environment for an Android external
+library or a customized (but fully compliant) Android system image. This SDK
+includes the SDK add-ons listed below. The Android system API Level required by
+the add-ons are noted.</p>
+
+<table style="margin-right:1em;" width="80%">
+<tr>
+<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th>
+<th>Notes</th><th>Description</th>
+</tr>
+<tr>
+<td width="5%"><nobr>Google APIs</nobr></td>
+<td width="5%">4</td>
+<td width="5%"> </td>
+<td>Includes the com.google.android.maps external library, a compliant
+Android 1.6 system image, a {@link android.location.Geocoder Geocoder}
+backend service implementation, documentation, and sample code. </td>
+</tr>
+<tr>
+<td width="5%"><nobr>Google APIs</nobr></td>
+<td width="5%">3</td>
+<td width="5%"> </td>
+<td>Includes the com.google.android.maps external library, a compliant
+Android 1.5 system image, a {@link android.location.Geocoder Geocoder}
+backend service implementation, documentation, and sample code. </td>
+</tr>
+</table>
+
+<h4>Sample Code and Applications</h4>
+
+<p>You can look at a variety of tutorials and samples in the <a
+href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample
+code itself in the <code><sdk>/platforms/<platform>/samples/</code>
+directory of the SDK package. Note the new location — the SDK now includes
+multiple platform versions that you can develop against and each has its own
+sample code directory. </p>
+
+<p>For example, to view or build the samples available for the Android
+1.6 platform (AVD target "Android 1.6"), you will find the samples in the
+<code><sdk>/platforms/android-1.6/samples/</code> directory of the SDK
+package. </p>
+
+<h4>Documentation</h4>
+
+<p>The SDK package includes a full set of local documentation. To view it, open
+the <code><sdk>/documentation.html</code> file in a web browser. If you
+are developing in an IDE such as Eclipse, you can also view the reference
+documentation directly in the IDE. </p>
+
+<p>The most current documentation is always available on the Android Developers
+site:</p>
+
+<p style="margin-left:2em;"><a
+href="http://developer.android.com/index.html">http://developer.android.com/</a>
+</p>
+
+
diff --git a/docs/html/sdk/1.6_r1/installing.jd b/docs/html/sdk/1.6_r1/installing.jd
new file mode 100644
index 0000000..954bfa3
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/installing.jd
@@ -0,0 +1,441 @@
+page.title=Installing the Android 1.6 SDK
+sdk.version=1.6
+sdk.preview=0
+
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#Preparing">Prepare for Installation</a></li>
+ <li><a href="#Installing">Install the SDK</a></li>
+ <li><a href="#InstallingADT">Install the ADT Plugin for Eclipse</a></li>
+ <li><a href="#sdkContents">SDK Contents</a></li>
+ <li><a href="#NextSteps">Next Steps</a></li>
+ <li><a href="#InstallationNotes">Installation Notes</a></li>
+ <li><a href="#Troubleshooting">Troubleshooting ADT Installation</a></li>
+ </ol>
+
+</div>
+</div>
+
+<p>This page describes how to install the Android SDK and set up your
+development environment.</p>
+
+<p>If you encounter any problems during installation, see the
+<a href="#InstallationNotes">Installation Notes</a> at the bottom of
+this page.</p>
+
+<h4 style="margin-top">Upgrading?</h4>
+<p>If you have already developed applications using an earlier version
+of the Android SDK, please read <a href="upgrading.html">Upgrading the SDK</a>, instead.
+</p>
+
+
+<h2 id="Preparing">Prepare for Installation</h2>
+
+<p>Before you begin, take a moment to confirm that your development machine
+meets the <a href="requirements.html">System Requirements</a>.</p>
+
+<p>If you will be developing on Eclipse with the Android Development
+Tools (ADT) Plugin — the recommended path if you are new to
+Android — make sure that you have a suitable version of Eclipse
+installed on your computer (3.4 or newer is recommended). If you need
+to install Eclipse, you can download it from this location: </p>
+
+<p style="margin-left:2em;"><a href=
+"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p>
+
+<p>A Java or RCP version of Eclipse is recommended. </p>
+
+<h2 id="Installing">Install the SDK</h2>
+
+<p>After downloading the Android SDK, unpack the Android SDK .zip archive
+to a suitable location on your machine. By default, the SDK files are unpacked
+into a directory named <code>android_sdk_<em><platform</em>>_<em><release></em></code>. </p>
+
+<p>Make a note of the name and location of the unpacked SDK directory on your system — you
+will need to refer to the SDK directory later, when setting up the Android plugin or when
+using the SDK tools.</p>
+
+<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory
+to your system <code>PATH</code>. The primary <code>tools/</code> directory is located at the root of the
+SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and
+the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without
+needing to supply the full path to the tools directory. </p>
+<ul>
+ <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
+ for a line that sets the PATH environment variable and add the
+ full path to the <code>tools/</code> directory to it. If you don't
+ see a line setting the path, you can add one:</li>
+
+ <ul><code>export PATH=${PATH}:<em><your_sdk_dir></em>/tools</code></ul>
+
+ <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
+ proceed as for Linux. You can create the <code>.bash_profile</code> if
+ you haven't already set one up on your machine. </li>
+
+ <li>On Windows, right-click on My Computer, and select Properties.
+ Under the Advanced tab, hit the Environment Variables button, and in the
+ dialog that comes up, double-click on Path (under System Variables). Add the full path to the
+ <code>tools/</code> directory to the path. </li>
+ </ul>
+
+<p>Note that, if you update your SDK in the future, you
+should remember to update your <code>PATH</code> settings to point to the new location, if different.</p>
+
+<p>If you will be using the Eclipse IDE as your development environment,
+the next section describes how to install the Android Development Tools (ADT) plugin and set up Eclipse.
+If you choose not to use Eclipse, you can
+develop Android applications in an IDE of your choice and then compile, debug and deploy using
+the tools included in the SDK (skip to <a href="#NextSteps">Next Steps</a>).</p>
+
+
+<h2 id="InstallingADT">Install the ADT Plugin for Eclipse</h2>
+
+<p>Android offers a custom plugin for the Eclipse IDE, called Android
+Development Tools (ADT), that is designed to give you a powerful,
+integrated environment in which to build Android applications. It
+extends the capabilites of Eclipse to let you quickly set up new Android
+projects, create an application UI, add components based on the Android
+Framework API, debug your applications using the Android SDK tools, and even export
+signed (or unsigned) APKs in order to distribute your application.</p>
+
+<p>In general, using Eclipse with ADT is a highly recommended approach to
+Android development and is the fastest way to get started. (If you prefer to
+work in an IDE other than Eclipse, you do not need to install Eclipse or ADT,
+instead, you can directly use the SDK tools to build and debug your
+application—skip to <a href="#NextSteps">Next Steps</a>.)</p>
+
+<p>Once you have the Eclipse IDE installed, as described in <a
+href="#Preparing">Preparing for Installation</a>, follow the steps below to
+download the ADT plugin and install it in your respective Eclipse environment.
+</p>
+
+<table style="font-size:100%">
+<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
+<tr>
+<td width="45%">
+<!-- 3.4 steps -->
+<ol>
+ <li>Start Eclipse, then select <strong>Help</strong> > <strong>Software Updates...</strong>.
+ In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
+ <li>Click <strong>Add Site...</strong> </li>
+ <li>In the Add Site dialog that appears, enter this URL in the "Location" field:
+ <pre style="margin-left:0">https://dl-ssl.google.com/android/eclipse/</pre>
+ <p>Note: If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
+ instead of "https" (https is preferred for security reasons).</p>
+ <p>Click <strong>OK</strong>.</p></li>
+ <li>Back in the Available Software view, you should see the plugin listed by the URL,
+ with "Developer Tools" nested within it. Select the checkbox next to
+ Developer Tools and click <strong>Install...</strong></li>
+ <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
+ should both be checked. Click <strong>Next</strong>. </li>
+ <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
+ <li>Restart Eclipse. </li>
+</ol>
+
+</td>
+<td>
+<!-- 3.5 steps -->
+<ol>
+ <li>Start Eclipse, then select <strong>Help</strong> > <strong>Install
+ New Softare</strong>. </li>
+ <li>In the Available Software dialog, click <strong>Add...</strong>.</li>
+ <li>In the Add Site dialog that appears, enter a name for the remote site
+ (e.g., "Android Plugin") in the "Name" field.
+ <p>In the "Location" field, enter this URL:</p>
+ <pre>https://dl-ssl.google.com/android/eclipse/</pre>
+ <p>Note: If you have trouble aqcuiring the plugin, you can try
+ using "http" in the URL, instead of "https" (https is preferred for
+ security reasons).</p>
+ <p>Click <strong>OK</strong>.</p>
+ </li>
+ <li>Back in the Available Software view, you should now see "Developer
+ Tools" added to the list. Select the checkbox next to Developer Tools,
+ which will automatically select the nested tools Android DDMS and Android
+ Development Tools.
+ Click <strong>Next</strong>. </li>
+ <li>In the resulting Install Details dialog, the Android DDMS and Android
+ Development Tools features are listed. Click <strong>Next</strong> to
+ read and accept the license agreement and install any dependencies,
+ then click <strong>Finish</strong>. </li>
+ <li>Restart Eclipse. </li>
+
+</ol>
+</td>
+</tr>
+</table>
+
+<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
+<ol>
+ <li>Select <strong>Window</strong> > <strong>Preferences...</strong> to open the Preferences
+ panel (Mac: <strong>Eclipse</strong> > <strong>Preferences</strong>).</li>
+ <li>Select <strong>Android</strong> from the left panel. </li>
+ <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and
+ locate your downloaded SDK directory. </li>
+ <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+
+<p>Done! If you haven't encountered any problems, then you're ready to
+begin developing Android applications. See the
+<a href="#NextSteps">Next Steps</a> section for suggestions on how to start. </p>
+
+
+<h2 id="sdkContents">Contents of the SDK</h2>
+
+<p>Once you've downloaded and unpacked the SDK, open the SDK directory
+and take a look at what's inside.
+
+<p>The table below describes the SDK directory contents. </p>
+
+<table>
+<tr>
+<th colspan="3">Name</th><th>Description</th>
+</tr>
+<tr>
+<td colspan="3"><code>add-ons/</code></td>
+<td>Contains add-ons to the Android SDK development
+environment, which let you develop against external libraries that are available on some
+devices. </td>
+</tr>
+<tr>
+<td colspan="3"><code>docs/</code></td>
+<td>A full set of documentation in HTML format, including the Developer's Guide,
+API Reference, and other information.</td>
+</tr>
+<tr>
+<td colspan="3"><code>platforms/</code></td>
+<td>Contains a set of Android platform versions that you can develop
+applications against, each in a separate directory. </td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td colspan="2"><code><platform>/</code></td>
+<td>Platform version directory, for example "Android 1.6". All platform version
+directories contain a similar set of files and subdirectory structure.</td>
+</tr>
+
+<tr>
+<td style="width:2em;border-bottom-color:white;"> </td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>data/</code></td>
+<td>Storage area for default fonts and resource definitions.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>images/</code></td>
+<td>Storage area for default disk images, including the Android system image,
+the default userdata image, the default ramdisk image, and more. The images
+are used in emulator sessions.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>samples/</code></td>
+<td>Contains a wide variety of sample applications that you can load as projects
+into your development environment, compile, and run on the emulator.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>skins/</code></td>
+<td>A set of emulator skins available for the platform version. Each skin is
+designed for a specific screen resolution.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>templates/</code></td>
+<td>Storage area for file templates used by the SDK development tools.</td>
+</tr>
+<tr>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td style="width:2em;border-bottom-color:white;"></td>
+<td><code>tools/</code></td>
+<td>Any development tools that are specific to the platform version.</td>
+</tr>
+<tr>
+<td style="width:2em;"></td>
+<td style="width:2em;"></td>
+<td><code>android.jar</code></td>
+<td>The Android library used when compiling applications against this platform
+version.</td>
+</tr>
+<tr>
+<td colspan="3"><code>tools/</code></td>
+<td>Contains the set of development and profiling tools available to you, such
+as the emulator, the <code>android</code> tool, adb, ddms, and more.</td>
+</tr>
+<tr>
+<td colspan="3"><code>RELEASE_NOTES.html</code></td>
+<td>A file that loads the local version of the SDK release notes, if
+available.</td>
+</tr>
+<tr>
+<td colspan="3"><code>documentation.html</code></td>
+<td>A file that loads the entry page for the local Android SDK
+documentation.</td>
+</tr>
+
+</table>
+
+<h2 id="NextSteps">Next Steps</h2>
+<p>Once you have completed installation, you are ready to
+begin developing applications. Here are a few ways you can get started: </p>
+
+<p><strong>Learn about Android</strong></p>
+<ul>
+ <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
+ Guide</a> and the types of information it provides</li>
+ <li>Read an introduction to Android as a platform in <a
+ href="{@docRoot}guide/basics/what-is-android.html">What is
+ Android?</a></li>
+ <li>Learn about the Android framework and how applications run on it in
+ <a href="{@docRoot}guide/topics/fundamentals.html">Application
+ Fundamentals</a></li>
+ <li>Take a look at the Android framework API specification in the <a
+ href="{@docRoot}reference/packages.html">Reference</a> tab</li>
+</ul>
+
+<p><strong>Explore the SDK</strong></p>
+<ul>
+ <li>Get an overview of the <a
+ href="{@docRoot}guide/developing/tools/index.html">development
+ tools</a> that are available to you</li>
+ <li>Read how to develop <a
+ href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
+ <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
+ </li>
+</ul>
+
+<p><strong>Explore some code</strong></p>
+<ul>
+ <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
+ World application</a> (highly recommended, especially for Eclipse users)</li>
+ <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
+ Notepad Tutorial</a> to build a full Android application </li>
+ <li>Create a new project for one of the other sample applications
+ included in <code><em><sdk></em>/platforms/<em><platform></em>/samples</code>,
+ then compile and run it in your development environment</li>
+</ul>
+
+<p><strong>Visit the Android developer groups</strong></p>
+<ul>
+ <li>Take a look at the <a
+ href="{@docRoot}community/index.html">Community</a> tab to see a list of
+ Android developers groups. In particular, you might want to look at the
+ <a href="http://groups.google.com/group/android-developers">Android
+ Developers</a> group to get a sense for what the Android developer
+ community is like.</li>
+</ul>
+
+
+<h2 id="InstallationNotes">Installation Notes</h2>
+
+<h3>Ubuntu Linux Notes</h3>
+
+<ul>
+ <li>If you need help installing and configuring Java on your
+ development machine, you might find these resources helpful:
+ <ul>
+ <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
+ <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
+ </ul>
+ </li>
+ <li>Here are the steps to install Java and Eclipse, prior to installing
+ the Android SDK and ADT Plugin.
+ <ol>
+ <li>If you are running a 64-bit distribution on your development
+ machine, you need to install the <code>ia32-libs</code> package using
+ <code>apt-get:</code>:
+ <pre>apt-get install ia32-libs</pre>
+ </li>
+ <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
+ <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
+ version for download, so we recommend that you download Eclipse from
+ eclipse.org (<a
+ href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
+ downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
+ <li>Follow the steps given in previous sections to install the SDK
+ and the ADT plugin. </li>
+ </ol>
+ </li>
+</ul>
+
+<h3>Other Linux Notes</h3>
+
+<ul>
+ <li>If JDK is already installed on your development computer, please
+ take a moment to make sure that it meets the version requirements listed
+ in the <a href="requirements.html">System Requirements</a>.
+ In particular, note that some Linux distributions may include JDK 1.4 or Gnu
+ Compiler for Java, both of which are not supported for Android development.</li>
+</ul>
+
+
+<h2 id="Troubleshooting">Troubleshooting ADT Installation</h2>
+
+<p> If you are having trouble downloading the ADT plugin after following the
+steps above, here are some suggestions: </p>
+
+<ul>
+ <li>If Eclipse can not find the remote update site containing the ADT plugin,
+try changing the remote site URL to use http, rather than https. That is, set
+the Location for the remote site to:
+<pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
+<li>If you are behind a firewall (such as a corporate firewall), make sure that
+you have properly configured your proxy settings in Eclipse. In Eclipse 3.3/3.4,
+you can configure proxy information from the main Eclipse menu in
+<strong>Window</strong> (on Mac, <strong>Eclipse</strong>) >
+<strong>Preferences</strong> > <strong>General</strong> > <strong>Network
+Connections</strong>.</li>
+</ul>
+
+<p> If you are still unable to use Eclipse to download the ADT plugin as a
+remote update site, you can download the ADT zip file to your local machine and
+manually install it:</p>
+
+<ol>
+ <li><a href="http://developer.android.com/sdk/preview/index.html">Download the
+ ADT Plugin zip file</a> (do not unpack it).</li>
+ <li>Follow steps 1 and 2 in the <a href="#InstallingADT">default install
+ instructions</a> (above).</li>
+ <li>In the Add Site dialog, click <strong>Archive</strong>.</li>
+ <li>Browse and select the downloaded zip file.</li>
+ <li>In Eclipse 3.5 only, enter a name for the local update site (e.g.,
+ "Android Plugin") in the "Name" field.</li>
+ <li>Click <strong>OK</strong>.
+ <li>Follow the remaining procedures as listed for
+ <a href="#InstallingADT">default installation</a> above,
+ starting from step 4.</li>
+</ol>
+
+<p>To update your plugin once you've installed using the zip file, you will have
+to follow these steps again instead of the default update instructions.</p>
+
+<h4>Other install errors</h4>
+
+<p>Note that there are features of ADT that require some optional
+Eclipse components (for example, WST). If you encounter an error when
+installing ADT, your Eclipse installion might not include these components.
+For information about how to quickly add the necessary components to your
+Eclipse installation, see the troubleshooting topic
+<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT
+Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
+
+<h4>For Linux users</h4>
+<p>If you encounter this error when installing the ADT Plugin for Eclipse:
+<pre>
+An error occurred during provisioning.
+Cannot connect to keystore.
+JKS</pre>
+<p>
+...then your development machine lacks a suitable Java VM. Installing Sun
+Java 6 will resolve this issue and you can then reinstall the ADT
+Plugin.</p>
+
+
diff --git a/docs/html/sdk/1.6_r1/requirements.jd b/docs/html/sdk/1.6_r1/requirements.jd
new file mode 100644
index 0000000..781ee32
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/requirements.jd
@@ -0,0 +1,51 @@
+page.title=System Requirements
+sdk.version=1.6
+sdk.preview=0
+@jd:body
+
+<p>The sections below describe the system and software requirements for developing
+Android applications using the Android SDK tools included in Android
+<?cs var:sdk.version ?> SDK<?cs if:sdk.rel.id ?>, Release <?cs var:sdk.rel.id ?><?cs /if ?>. </p>
+
+<h3>Supported Operating Systems</h3>
+<ul>
+ <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
+ <li>Mac OS X 10.4.8 or later (x86 only)</li>
+ <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
+</ul>
+
+<h3>Supported Development Environments</h3>
+<ul>
+ <li>Eclipse IDE
+ <ul>
+ <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.4 (Ganymede) or 3.5 (Galileo)
+ <ul>
+ <li>Note: Eclipse 3.3 has not been fully tested with ADT 0.9.3 and support can no longer be guaranteed. We suggest you upgrade to
+ Eclipse 3.4 or 3.5.</li>
+ <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
+ <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
+ <li>Eclipse Classic IDE package is not supported.</li>
+ </ul>
+ </li>
+ <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
+ <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
+ <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
+ </ul>
+ </li>
+ <li>Other development environments or IDEs
+ <ul>
+ <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
+ <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
+ <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
+ </ul>
+ </li>
+</ul>
+
+<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
+particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
+
+<h3>Hardware requirements</h3>
+<ul>
+ <li>For the base SDK package, at least 600MB of available disk space. For each platform downloaded into the SDK, an additional 100MB is needed. </li>
+</ul>
+
diff --git a/docs/html/sdk/1.6_r1/upgrading.jd b/docs/html/sdk/1.6_r1/upgrading.jd
new file mode 100644
index 0000000..2f9cc73
--- /dev/null
+++ b/docs/html/sdk/1.6_r1/upgrading.jd
@@ -0,0 +1,386 @@
+page.title=Upgrading the SDK
+sdk.version=1.6
+sdk.preview=0
+@jd:body
+
+
+<div id="qv-wrapper">
+<div id="qv">
+
+ <h2>Upgrading the SDK</h2>
+ <ul>
+ <li>If you are developing on the Android 1.5 SDK, migrating your
+applications is straightforward and typically requires no modifications.</li>
+ <li>For Eclipse users, a new version of ADT is available. To use the Android
+1.6 SDK, please upgrade to ADT 0.9.3 (or later).</li>
+ <li>For Windows users, the SDK includes a new USB driver that you can
+install, if you are developing on a device. </li>
+ <li>A new Android SDK and AVD Manager tool is available. To access
+it, run the <code>android</code> tool without options. </li>
+ </ul>
+
+ <h2>In this document</h2>
+ <ol>
+ <li><a href="#Install">Install the SDK</a></li>
+ <li><a href="#UpdateAdt">Update Your Eclipse ADT Plugin</a></li>
+ <li><a href="#RunYourApps">Run Your Applications</a></li>
+ <li><a href="#MigrateYourApps">Migrate Your Applications</a></li>
+ </ol>
+
+ <h2>Migrating information</h2>
+ <ol>
+ <li><a href="{@docRoot}sdk/api_diff/4/changes.html">Android 1.6 API
+Differences</a></li>
+ </ol>
+
+</div>
+</div>
+
+<p>This document describes how to move your development environment and existing
+Android applications from an Android 1.5 SDK to the Android 1.6 SDK. If you are
+migrating applications from an SDK older than 1.5, please also read the
+upgrading document available in the Android 1.5 SDK package.</p>
+
+<p>There are several compelling reasons to upgrade, such as new SDK tools that
+make developing more efficient and new APIs that allow you to expand the
+feature-set of your applications. However, even if you or your applications
+don't require these enhancements, it's important that you upgrade to ensure that
+your applications run properly on the upcoming Android platform.</p>
+
+<p>The Android 1.6 platform will soon be deployable to devices around the world.
+If you have already released Android applications to the public, you should test
+the forward-compatibility of your applications on the latest version of the
+platform as soon as possible. It's unlikely that you'll encounter problems in
+your applications, but in the interest of maintaining the best user experience,
+you should take no risks. So, please install the new Android SDK and test your
+applications on the new platform.</p>
+
+<!-- NOT AVAILABLE FOR PREVIEW RELEASES -->
+<p>For more information on new SDK features and system changes,
+see the <a href="{@docRoot}sdk/android-1.6.html">Android 1.6 Version Notes</a>.</p>
+<!-- -->
+
+<h2 id="Install">Install the SDK</h2>
+
+<p>If you haven't yet downloaded the SDK, <a href="index.html">download it from
+here</a> and unpack it into a safe location.</p>
+
+<p>If you had previously setup your <code>PATH</code> variable to point to the SDK
+tools directory, then you need to update it to point to the new SDK. For example, for
+a <code>.bashrc</code> or <code>.bash_profile</code> file:</p>
+<pre>export PATH=$PATH:<em><your_sdk_dir></em>/tools</pre>
+
+
+<h2 id="UpdateAdt">Update Your Eclipse ADT Plugin</h2>
+
+<p>If you don't use the Eclipse IDE for development,
+skip to <a href="#RunYourApps">Run Your Applications</a>.</p>
+
+<p>A new version of the ADT Plugin, ADT 0.9.3, is available in conjunction with
+this SDK release. To use the SDK, you must upgrade your ADT Plugin to version
+0.9.3. With ADT 0.9.3, you can still compile your existing applications against
+multiple platform versions, such as Android 1.5, Android 1.1, and so on. However,
+ADT 0.9.3 is not compatible with previous versions of the SDK and its tools, so
+make sure that you upgrade both your SDK <em>and</em> the ADT Plugin.</p>
+
+The upgrade steps for ADT are described below. For information about new features in ADT, see the <a
+href="{@docRoot}sdk/RELEASENOTES.html">Release Notes</a> document. </p>
+
+<p>If you're currently using a version of ADT <em>older</em> than version 0.9,
+then you must uninstall ADT before you proceed (read how to <a
+href="{@docRoot}sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall your previous
+ADT plugin</a>). If you currently have version 0.9 or 0.9.1, then you don't need
+to uninstall and can continue with the procedure below.</p>
+
+<table style="font-size:100%">
+<tr><th>Eclipse 3.4 (Ganymede)</th><th>Eclipse 3.5 (Galileo)</th></tr>
+<tr>
+<td width="50%">
+<!-- 3.4 steps -->
+<ol>
+ <li>Select <strong>Help</strong> > <strong>Software Updates</strong>.</li>
+ <li>Select the <strong>Available Software</strong> tab.</li>
+ <li>Select the checkboxes next to Android DDMS and Android Developer Tools,
+ then click <strong>Update</strong>.</li>
+ <li>In the resulting Available Updates dialog, ensure that both Android DDMS
+ and Android Development Tools are selected, then 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>
+</td>
+<td>
+<!-- 3.5 steps -->
+<ol>
+ <li>Select <strong>Help</strong> > <strong>Check for Updates</strong>. </li>
+ <li>In the resulting Available Updates dialog, locate the Android DDMS and
+ Android Development Tools features in the list and ensure that the checkboxes
+ next to them are selected. Click <strong>Next</strong>.
+ <p>If the Available Updates dialog does not list Android DDMS and Android
+ Development tools, make sure that you have set up a remote update site
+ for them, as described in
+ <a href="installing.html#InstallingADT">Installing the ADT Plugin</a>.
+ </p></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>
+</td>
+</tr>
+</table>
+
+<p>If you encounter problems with this update procedure, try performing a fresh
+installation. Fully remove your existing ADT Plugin as described in <a
+href="{@docRoot}sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall your previous
+ADT plugin</a> and then follow the guide to <a
+href="installing.html#InstallingADT">Installing the ADT Plugin for
+Eclipse</a>.</p>
+
+<h3 id="updateEclipsePrefs">Update your Eclipse SDK Preferences</h3>
+
+<p>The last step is to update your Eclipse preferences to point to the new
+SDK directory:</p>
+<ol>
+ <li>Select <strong>Window</strong> > <strong>Preferences</strong> to open
+ the Preferences panel (Mac: <strong>Eclipse</strong> > <strong>Preferences
+ </strong>).</li>
+ <li>Select <strong>Android</strong> from the left panel.</li>
+ <li>For the SDK Location, click <strong>Browse</strong>
+ and locate your SDK directory.</li>
+ <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+
+
+<h2 id="RunYourApps">Run Your Applications to Test Forward Compatibility</h2>
+
+<p>Now that you have installed the Android 1.6 SDK, we encourage you run each of
+your existing applications on the Android 1.6 system image that is included in
+the SDK, to ensure that it functions properly on the new platform.
+Testing forward-compatibility in this way is especially important for
+applications that you may have already published and that may be installed on
+devices that will upgrade to the new platform. </p>
+
+<p>In most cases, your applications will function properly when run on the new
+version of the platform. However, it is possible that you will encounter
+unexpected behavior, because of changes in the API or underlying platform. If
+you do find problems, you can use the SDK tools to compile and publish an update
+to the applications, which users can then download.
+
+<p>To test forward-compatibility, simply run your application, as-is, on an
+instance of the Android Emulator that uses an AVD targeted to the "Android 1.6"
+system image. Here are the steps: </p>
+
+<ol>
+ <li>Make no changes to your application code.</li>
+ <li>Create a new AVD that runs the new "Android 1.6" platform. </li>
+ <li>Launch your application in an emulator running the new AVD.</li>
+ <li>Perform normal testing on your application to ensure everything works as
+ expected.</li>
+</ol>
+
+<p>Note that, for the purposes of forward-compatibility testing, you should not
+change how your application is compiled. That is, you should continue to compile
+the application against the same version of the Android library as before. The
+only change needed is to the AVD, which controls the version of the Android
+system image (run-time environment) on which the application is run.
+
+<p>For more information on creating an AVD and launching your application, see
+<a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Running Your
+Applications (Eclipse)</a> or <a
+href="{@docRoot}guide/developing/other-ide.html#Running">Running
+Your Applications (other IDEs)</a>, depending on your development
+environment.</p>
+
+<h3 id="FutureProofYourApps">Android 1.6 Forward-Compatibility Tips</h3>
+
+<p>The new version of the Android platform includes several new APIs, but
+very few actual changes to existing APIs. This means that, in most
+cases, your applications written with earlier versions of the Android library
+should run properly on the Android 1.6 platform. </p>
+
+<p>However, here are some areas to pay attention to as you test forward-compatibility:</p>
+
+<ul>
+ <li><strong>Make sure your application doesn't use internal APIs</strong>. Your
+application should not use any APIs that are not officially supported and are
+not published in the Android reference documentation. Unofficial APIs can change
+at any time without notice and — if your application happens to be using
+them — such a change could cause the application to break.</li>
+
+ <li><strong>Watch for assumptions about available hardware</strong>. Remember
+that not all compatible devices offer the same hardware capabilities —
+screens, keyboards, and physical keys, and so on. As you test your application,
+watch for areas where your application depends on the presence of specific
+hardware capabilities. If you find dependencies, you can design around them by
+building in alternate support or graceful degradation, or you can specify them
+as hardware requirements in a
+<a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code><uses-configuration></code>.</a>
+element in the application's manifest file. Also see the <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code>
+manifest element, which lets your application declare a requirement for
+specific features, such as an OpenGL ES version or a camera that has
+autofocus capability.
+</li>
+
+ <li><strong>Watch for assumptions about available features</strong>. Not all
+compatible devices offer equal support for embedded features. same hardware capabilities —
+screens, keyboards, and physical keys, and so on. As you test your application,
+watch for areas where your application depends on the presence of specific
+hardware capabilities. If you find dependencies, you can design around them by
+building in alternate support or graceful degradation, or you can specify them
+as hardware requirements in a
+<a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code><uses-configuration></code>.</a>
+element in the application's manifest file. </li>
+
+ <p>When testing forward-compatibility, try running your application in various
+AVDs that emulate different hardware configurations. For example, you can create
+an AVD that does not offer a physical keyboard or one that uses a dpad instead
+of a trackball. Running your application in different emulated hardware
+configurations will give you an idea of where its dependencies are and help you
+identify problems. </p>
+ </li>
+
+ <li><strong>Watch for assumptions about screen resolution and
+density</strong>. A device's screen resolution and density is likely to affect
+the way that your application's UI is rendered, especially if your app specifies
+dimensions or positions using pixels or absolute layouts. To ensure consistent
+UI across screens, your app should specify the dimensions and positions of
+layouts and drawables in relative units that can be scaled by the system as
+appropriate, according to the density of the device's screen. Alternatively, you
+can create custom sets of layout/drawable resources for specific screens, which
+the system can then load as appropriate, based on the current device screen.</p>
+
+ <p>When testing forward-compatibility, try running your application in various
+AVDs that emulate different screen resolutions and densities. Also note that,
+starting with Android 1.6, the platform provides a Compatibility Mode that
+automatically scales the UI of applications if they do not explicitly indicate
+support for the current screen in the
+<a href="{@docRoot}guide/topics/manifest/supports-screen-element.html"><code><supports-screen></code>
+element in their manifest files. As part of testing, you should evaluate how
+your application is displayed in Compatibility Mode on different screens. </p>
+ </li>
+
+ <li><strong>Avoid performing layout orientation changes based on the
+acceletometer (or via other sensors)</strong>. Some Android-powered devices will
+automatically rotate the orientation (and all devices have the option to turn on
+auto-rotation), so if your application also attempts to rotate the orientation,
+it can result in strange behavior. In addition, if your application uses the
+accelerometer to detect shaking and you do not want to rotate the orientation,
+then you should lock the current orientation with <a
+href="{@docRoot}guide/topics/manifest/activity-element.html#screen">android:screenOrientation</a>.
+ </li>
+
+</ul>
+
+<h2 id="MigrateYourApps">Migrate Your Applications</h2>
+
+<p>If you want to use any of the new Android 1.6 APIs in your existing
+applications, you must first migrate the applications to the new Android
+platform version. Generally, migrating an application includes: </p>
+
+<ul>
+<li>Referencing the proper API Level in the application's manifest file,
+and</li>
+<li>Resetting its project properties so that it is compiled against the Android
+1.6 build target.</li>
+</ul>
+
+<p>Additionally, to run your application in the emulator, you need to
+create an AVD that uses the Android 1.6 system image. </p>
+
+<p class="note"><strong>Note:</strong> You only need migrate your application as
+described in this section if the application will actually use APIs
+<em>introduced</em> in the Android 1.6 platform (which are not available on
+devices running older versions of the Android platform). If your application
+does not use any new APIs, you can compile and run it without modification and
+not migration is necessary.</p>
+
+<h3>Reference the Proper API Level</h3>
+
+<p>If your application is using APIs introduced in Android 1.6, you must
+reference that dependency in the application's manifest file so that it can be
+deployed to devices running the Android 1.6 platform. </p>
+
+<p>Open the manifest file and locate the <code>minSdkVersion</code> attribute
+in the <code><uses-sdk></code> manifest element. Set the value of
+<code>minSdkVersion</code> to <code>"4"</code> (the API Level
+identifier corresponding to Android 1.6). Here's an example:</p>
+
+<pre>
+<manifest>
+ ...
+ <uses-sdk android:minSdkVersion="4" />
+ ...
+</manifest>
+</pre>
+
+<h3>Compile Against the Proper Build Target</h3>
+
+<p>Once you've changed the <code>minSdkVersion</code> value in your
+application's manifest, you need to set the application's project properties so
+that the application will be compiled against the Android 1.6 library. To do so,
+follow the steps below for your respective development environment. </p>
+
+<h4 id="EclipseUsers">Eclipse Users</h4>
+
+<ol>
+ <li>Right-click on the individual project (in the Package Explorer)
+ and select <strong>Properties</strong>.</li>
+ <li>In the properties, open the Android panel and select a new Project Build Target.
+ Select "Android 1.6" to target the new platform (or "Google APIs" with the "4"
+ API Level, if your application uses the Google Maps APIs).</li>
+ <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
+</ol>
+
+<h4 id="AntUsers">Ant Users</h4>
+
+<p>Use the <code>android</code> tool (located in
+<code><em>your_sdk</em>/tools/</code>) to create a new <code>build.xml</code>
+that references the new platform target. To see a list of available targets,
+execute:</p>
+
+<pre>android list targets</pre>
+
+<p>Select the target <code>id</code> that corresponds to the "Android 1.6" platform
+and pass it with the <code>--target</code> parameter when updating your project.
+For example:</p>
+
+<pre>android update project --path /path/to/my-project --target 2</pre>
+
+<p>If your application uses the Google Maps APIs (i.e., MapView), be certain to
+select a Google APIs target.</p>
+
+<h3>Create an AVD that Uses the Android 1.6 Platform</h3>
+
+<p>Finally, you need to set up a new AVD that uses the Android 1.6 platform, so that
+you can run your application in the emulator.
+
+<p>To set up the new AVD, use the <code>android</code> tool, available in the
+<code>tools/</code> directory of the SDK. You can run the AVD manager by simply
+changing to the <code>tools/</code> directory and entering <code>android</code>
+at the command line. Click "New" to create the AVD and set its properties.</p>
+
+<p>When creating the AVD, make sure to select a target of "Android 1.6 - API
+Level 4". If your application uses the Google Maps APIs (MapView), select the
+target "Google APIs (Google Inc.) - API Level 4". </p>
+
+<p>For more information about running your application in an AVD, see <a
+href="{@docRoot}guide/developing/eclipse-adt.html#Running">Running Your
+Application (Eclipse)</a> or <a
+href="{@docRoot}guide/developing/other-ide.html#Running">Running Your
+Application (other IDEs)</a>. </p>
+
+<p>For general information about AVDs, see the <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
+Devices</a> document. </p>
+
+
+
+<div class="special">
+<p>If you have trouble migrating to the new version of the SDK, visit the
+<a href="http://groups.google.com/group/android-developers">Android Developers Group</a>
+to seek help from other Android developers.</p>
+</div>
+
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index 03eeb4b..130a92c 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -5,6 +5,198 @@
releases. For the latest known issues, please ensure that you're viewing this
page at <a href="http://developer.android.com/sdk/RELEASENOTES.html">http://developer.android.com/sdk/RELEASENOTES.html</a>.</p>
+<h2 id="1.6_r1">Android 1.6 SDK, Release 1</h2>
+
+<p>This SDK provides updates to the development tools and Android system that
+you use to create applications for compliant Android-powered devices. </p>
+
+<h3>Release Overview</h3>
+
+<p>This SDK release includes several new features for developers. Highlights of the
+changes include: </p>
+
+ <ul>
+ <li>Emulator support for multiple screen sizes/densities, including new
+skins. </li>
+ <li>Android SDK and AVD Manager, a graphical UI to let you manage your
+SDK and AVD environments more easily. The tool lets you create and manage
+your <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
+Devices</a> and download new SDK packages (such as platform versions and
+add-ons) into your environment.</li>
+ <li>Improved support for test packages in New Project Wizard</li>
+ </ul>
+
+<p>For details about the Android platforms included in the SDK — including
+bug fixes, features, and API changes — please read the Version Notes
+documents available at left. For a list of Android platforms included in this
+release, see the <a href="{@docRoot}sdk/1.6_r1/index.html">Download
+page</a>. Note that you can use the Android SDK and AVD Manager to download
+additional platforms.</p>
+
+<h3>Installation and Upgrade Notes</h3>
+
+<p>If you've been developing an application using an Android 1.1 SDK, you need
+to make a few changes to your development environment to migrate to the new SDK.
+Tools and documentation are provided to assist you. No changes to the source
+code of an existing application should be needed, provided that your application
+is not using Android internal structures or APIs.</p>
+
+<p>To ensure that your existing application will work properly on a device
+running the latest version of the Android platform, you are strongly encouraged
+to migrate the application to the new SDK, compile it using the platform
+matching the application's original API Level, and run it against the most
+current platform. </p>
+
+<p>If you're installing the Android SDK for the first time, please see
+the instructions in <a
+href="{@docRoot}sdk/1.5_r1/installing.html">Installing the SDK</a>.
+
+<h3>ADT Plugin for Eclipse</h3>
+
+<p>An updated version of the ADT Plugin for Eclipse is available with the
+Android 1.6 SDK. The new version, ADT 0.9.3, provides several new
+features, including integrated support for the Android SDK and AVD Manager
+and zipalign tool. In addition, the New Project Wizard now
+lets you create a test package containing tests for your application. These
+features are described in the sections below. </p>
+
+<p>If you are developing in Eclipse with ADT and want to get started with the
+Android 1.6 SDK, you should download and install a compatible version of the ADT
+Plugin (0.9.3 or higher). </p>
+
+<p>The new version of ADT is downloadable from the usual remote update site or
+is separately downloadable as a .zip archive. For instructions on how to
+download the plugin, please see <a href="upgrading.html#UpdateAdt">Upgrading
+Your Eclipse Plugin</a>. </p>
+
+<h3>Android SDK and AVD Manager</h3>
+
+<p>The SDK offers a new tool called Android AVD Manager that lets you manage
+your SDK and AVD environments more efficiently. </p>
+
+<p>Using the tool, you can quickly check what Android platforms, add-ons,
+extras, and documentation packages are available in your SDK environment, what
+their versions are, and whether updated versions are available. You can then
+download one or more items from remote repositories and install them directly in
+your SDK environment. For example, the tool lets you obtain updates to SDK tools
+incrementally, as they are made available, without having to wait for the next
+SDK release. You can also download Android platform versions into your
+environment that were not included in the SDK package.</p>
+
+<p>The tool also lets you quickly create new AVDs, manage
+their properties, and run a target AVD from a single window. </p>
+
+<p>If you are developing in Eclipse with ADT, you can access the Android SDK
+and AVD Manager from the <strong>Window</strong> menu. </p>
+
+<p>If you are developing in another IDE, you can access the Android SDK and
+AVD Manager through the <code>android</code> command-line tool, located in the
+<sdk>/tools directory. You can launch the tool with a graphical UI by
+using the <code>android</code> command without specifying any options. You can
+also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
+You can still use <code>android</code> commands to create and manage AVDs,
+including AVDs with custom hardware configurations.</p>
+
+<h3>Integration with zipalign</h3>
+
+<p>The Android system offers a performance optimization for installed
+application packages whose contained uncompressed files are all aligned on
+4-byte boundaries. For these .apks, the system can read the files by mmap'ing
+the zip file, rather than by copying all the data out of them. This reduces
+the amount of memory used by the application at run time. The SDK includes
+a tool called <code>zipalign</code> that you can run against your .apks, to
+align them properly and enable them to benefit from this optimization.</p>
+
+<p>The ADT Plugin and the Ant build tools both provide integrated support for
+aligning your application packages. After you build an .apk, the SDK tools can
+sign and then run <code>zipalign</code> against it. The SDK includes the
+standalone version of the <code>zipalign</code> tool, so you can run also run it
+manually from the command line if you choose. </p>
+
+<ul>
+ <li>If you are developing in Eclipse with ADT, support for
+<code>zipalign</code> is integrated into the Export Wizard. When you use the
+Wizard to export a signed application package, ADT signs and then automatically
+runs <code>zipalign</code> against the exported package. If you use the Wizard
+to export an unsigned application package, then it will not zipalign the
+package because zipalign must be performed only after the APK has been signed.
+You must manually sign and zipalign the package after export. </li>
+ <li>If you are developing using Ant and are compiling in release mode, the
+build tools will automatically sign and then <code>zipalign</code> the
+application package, provided that you have specified the location of a valid
+keystore in the build properties file. If you are compiling in debug mode, the
+build tools will sign the package with the debug key and then <code>zipalign</code>
+it.</li>
+ <li>To use <code>zipalign</code> manually, change to the SDK tools directory
+and use the command syntax <code>$ zipalign 4 <infile>
+<outfile></code></li>
+</ul>
+
+<p>In general, note that you must <code>zipalign</code> an application only
+<em>after</em> it has been signed, as signing will disrupt the package
+alignment.</p>
+
+<h3>Support for Test Packages in New Project Wizard</h3>
+
+<p>The New Project Wizard available in the ADT 0.9.3 now lets you add a test
+package containing Instrumentation or other classes of tests while you are
+creating or importing a new Android application project. </p>
+
+<h3>New USB Driver for Windows</h3>
+
+<p>If you are using Windows and want to develop or test your application on an
+Android-powered device (such as the T-Mobile G1), you need an appropriate USB
+driver.
+
+<p>The Windows version of the Android 1.6 SDK includes a new, WinUSB-based
+driver that you can install. The driver is compatible with both 32- and 64-bit
+versions of Windows XP and Vista. The driver represents an upgrade from the USB
+driver included in previous Android SDKs, although installing the new driver is
+not required. </p>
+
+<p>If you installed the USB driver from a previous SDK release and it is working
+properly, you do not need to upgrade to the new driver. However, we recommend
+upgrading if you have had any problems with the older driver or simply want
+to upgrade to the latest version.</p>
+
+<p>The USB driver files are located in the
+<code><SDK>/usb_driver</code> directory. For driver installation or
+upgrade instructions, see <a
+href="{@docRoot}guide/developing/device.html#WinUsbDriver">Installing the WinUSB
+Driver</a>.</p>
+</p>
+
+<h3>Emulator Skins, Android 1.6 Platform</h3>
+
+<p>The Android 1.6 platform included in the SDK provides a new set of emulator
+skins, including: </p>
+
+<ul>
+ <li>QVGA — 240 x 320, low density (120 dpi)</li>
+ <li>HVGA — 320 x 480, medium density (160 dpi)</li>
+ <li>WVGA800 — 480 x 800, high density (240 dpi)</li>
+ <li>WVGA854 — 480 x 854, high density (240 dpi)</li>
+</ul>
+
+<p>Besides these defaults, You can also create an AVD that overrides the default
+density for each skin, to create any combination of resolution/density (WVGA
+with medium density, for instance). To do so, use the <code>android</code> tool
+command line to create a new AVD that uses a custom hardare configuration. See
+<a href="{@docRoot}guide/developing/tools/avd.html#createavd">Creating an
+AVD</a> for more information.</p>
+
+<h3>Other Notes and Resolved Issues</h3>
+
+<ul>
+ <li>This SDK release adds support for Eclipse 3.5 (Galileo) and deprecates
+support for Eclipse 3.3 (Europa). </li>
+ <li>We regret to inform developers that Android 1.6 will not include support
+for <a href="http://www.ietf.org/rfc/rfc2549">RFC 2549</a></li>
+ <li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK
+only) has been fixed.</li>
+</ul>
+
+
<h2 id="1.5_r3">Android 1.5 SDK, Release 3</h2>
<p>Provides an updated Android 1.5 system image that includes permissions
diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd
index d7b9ac3..3eb6831 100644
--- a/docs/html/sdk/adt_download.jd
+++ b/docs/html/sdk/adt_download.jd
@@ -26,24 +26,24 @@
</tr>
<tr>
- <td>0.9.2</td>
- <td><a href="http://dl-ssl.google.com/android/ADT-0.9.2.zip">ADT-0.9.2.zip</a></td>
+ <td>0.9.3</td>
+ <td><a href="http://dl-ssl.google.com/android/ADT-0.9.3.zip">ADT-0.9.3.zip</a></td>
<td><nobr>bytes</nobr></td>
<td><nobr></nobr></td>
- <td><nobr>Required for users of Android 1.6 SDK (and later releases). Updated from 0.9.1. <em><nobr>August 2009</nobr></em></td>
+ <td><nobr>Required for users of Android 1.6 SDK (and later releases). Updated from 0.9.1. <em><nobr>September 2009</nobr></em></td>
</tr>
<tr class="alt-color">
<td>0.9.1</td>
<td><a href="http://dl-ssl.google.com/android/ADT-0.9.1.zip">ADT-0.9.1.zip</a></td>
<td><nobr>2916093 bytes</nobr></td>
<td><nobr>e7b2ab40414ac98</nobr></td>
- <td><nobr>Required for users of Android 1.5 SDK (and later releases). Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></td>
+ <td><nobr>Required for users of Android 1.5 SDK. Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></td>
</tr>
<tr>
<td>0.8.0</td>
<td><a href="http://dl-ssl.google.com/android/ADT-0.8.0.zip">ADT-0.8.0.zip</a></td>
<td colspan="2"><nobr> </nobr></td>
- <td><nobr>Required for users of Android 1.1 SDK and Android 1.0 SDK. <em><nobr>23 Sep 2008</nobr></em></td>
+ <td><nobr>Required for users of Android 1.0/1.1 SDKs. <em><nobr>23 Sep 2008</nobr></em></td>
</tr>
</table>
@@ -63,20 +63,19 @@
<tr>
<td>0.7.1</td>
- <td>Required for users of Android 0.9 SDK beta. As of this version, <b>Eclipse 3.2 is no longer supported.</b>
- Please upgrade to Eclipse Ganymede (3.4) or Europa (3.3) if you are still using 3.2. <em><nobr>18 Aug 2008</nobr></em></td>
+ <td>Required for users of the Android 0.9 SDK beta. <em><nobr>18 Aug 2008</nobr></em></td>
</tr>
<tr>
<td>0.4.0</td>
- <td>Required if you are using the M5 SDK. See the SDK Release Notes for details on changes and enhancements in this version. <em><nobr>12 Feb 2008</nobr></em></td>
+ <td>Required for users of the Android M5 Early Look SDK. <em><nobr>12 Feb 2008</nobr></em></td>
</tr>
<tr>
<td>0.3.3</td>
- <td>Some significant enhancements (see m3-rc37 SDK Release Notes). <em><nobr>14 Dec 2007</nobr></em></td>
+ <td>Required for users of the Android M3-RC37 Early Look SDK. <em><nobr>14 Dec 2007</nobr></em></td>
</tr>
<tr>
<td>0.3.1</td>
- <td>Initial Release. Required for Android m3-rc20 SDK and Android m3-rc22 SDK.<em><nobr>21 Nov 2007</nobr></em></td>
+ <td>Initial Release. Required for users of the Android M3-RC20/22 SDKs.<em><nobr>21 Nov 2007</nobr></em></td>
</tr>
</table>
</p>
diff --git a/docs/html/sdk/android-1.6.jd b/docs/html/sdk/android-1.6.jd
new file mode 100644
index 0000000..29dceec
--- /dev/null
+++ b/docs/html/sdk/android-1.6.jd
@@ -0,0 +1,235 @@
+page.title=Android 1.6 Version Notes
+
+@jd:body
+
+<p>
+<em>Date:</em> September 2009<br />
+<em>API Level:</em> <strong>4</strong></p>
+
+
+<p>This document provides version notes for the Android 1.6 system image included in the SDK. </p>
+
+<ul>
+<li><a href="#overview">Overview</a>
+<li><a href="#features">New Features</a>
+<li><a href="#apps">Built-in Applications</a>
+<li><a href="#locs">Locales</a>
+<li><a href="#api-changes">API Changes</a>
+</ul>
+
+<h2 id="overview">Overview</h2>
+
+<p>The Android 1.6 system delivered in the SDK (as library and system image) is
+the development counterpart to the Android 1.6 production system image,
+deployable to Android-powered handsets starting September 2009. The system is fully
+compliant and includes no external libraries.</p>
+
+<p>The Android 1.6 system delivers an updated version of the framework
+API. As with previous versions, the Android 1.6 API
+is assigned an integer identifier — <strong>4</strong> — that is
+stored in the system itself. This identifier, called the "API Level", allows the
+system to correctly determine whether an application is compatible with
+the system, prior to installing the application. </p>
+
+<p>For more information about how to use API Level, see the <a
+href="{@docRoot}guide/developing/">API Levels</a> document. </p>
+
+<h2 id="features">New Features</h2>
+
+<p>For a list of new system features, see the <a
+href="http://developer.android.com/sdk/android-1.6-highlights.html">Android 1.6 Platform
+Highlights</a> document.</p>
+
+<h2 id="apps">Built-in Applications</h2>
+
+<p>The system image includes these built-in applications:</p>
+ <ul>
+ <li>Alarm Clock</li>
+ <li>Browser</li>
+ <li>Calculator</li>
+ <li>Camcorder</li>
+ <li>Camera</li>
+ <li>Contacts</li>
+ <li>Custom Locale (developer app)</li>
+ <li>Dev Tools (developer app)</li>
+ <li>Dialer</li>
+ <li>Email</li>
+ <li>Gallery</li>
+ <li>Gestures Builder</li>
+ <li>IME for Japanese text input</li>
+ <li>Messaging</li>
+ <li>Music</li>
+ <li>Settings</li>
+ <li>Spare Parts (developer app)</li>
+ </ul>
+
+<h2 id="locs">Locales</h2>
+
+<p>The system image provides a variety of built-in locales. In some cases,
+region-specific strings are available for the locales. In other cases,
+a default version of the language is used. The languages that will be
+available in the Android 1.6 system image are listed below (with
+<em>language</em>_<em>country/region</em> locale descriptor).</p>
+
+<table style="border:0;">
+<tr>
+<td style="border:0">
+<ul style="margin-bottom:0;">
+<li>Arabic, Egypt (ar_EG)</li>
+<li>Arabic, Israel (ar_IL)</li>
+<li>Bulgarian, Bulgaria (bg_BG)</li>
+<li>Chinese, PRC (zh_CN)</li>
+<li>Chinese, Taiwan (zh_TW)</li>
+<li>Croatian, Croatia (hr_HR)</li>
+<li>Czech, Czech Republic (cs_CZ)</li>
+<li>Danish, Denmark (da_DK)</li>
+<li>Dutch, Netherlands (nl_NL)</li>
+<li>Dutch, Belgium (nl_BE)</li>
+<li>English, US (en_US)</li>
+<li>English, Britain (en_GB)</li>
+<li>English, Canada (en_CA)</li>
+<li>English, Australia (en_AU)</li>
+<li>English, India (en_IN)</li>
+<li>English, Ireland (en_IE)</li>
+<li>English, New Zealand (en_NZ)</li>
+<li>English, Singapore (en_SG)</li>
+<li>English, South Africa (en_ZA)</li>
+<li>Finnish, Finland (fi_FI)</li>
+<li>French, France (fr_FR)</li>
+<li>French, Belgium (fr_BE)</li>
+<li>French, Canada (fr_CA)</li>
+<li>French, Switzerland (fr_CH)</li>
+<li>German, Germany (de_DE)</li>
+<li>German, Austria (de_AT)</li>
+<li>German, Switzerland (de_CH)</li>
+<li>German, Liechtenstein (de_LI)</li>
+</ul>
+</td>
+<td style="border:0;padding-left:5em;">
+<ul style="margin-bottom:0;">
+<li>Greek, Greece (el_GR)</li>
+<li>Hindi, India (hi_IN)</li>
+<li>Hungarian, Hungary (hu_HU)</li>
+<li>Indonesian, Indonesia (id_ID)</li>
+<li>Italian, Italy (it_IT)</li>
+<li>Italian, Switzerland (it_CH)</li>
+<li>Japanese, Japan (ja_JP)</li>
+<li>Korean, Korea (ko_KR)</li>
+<li>Latvian, Latvia (lv_LV)</li>
+<li>Lithuanian, Lithuania (lt_LT)</li>
+<li>Norwegian Bokmål, Norway (nb_NO)</li>
+<li>Polish, Poland (pl_PL)</li>
+<li>Portuguese, Brazil (pt_BR)</li>
+<li>Portuguese, Portugal (pt_PT)</li>
+<li>Romanian, Romania (ro_RO)</li>
+<li>Russian, Russia (ru_RU)</li>
+<li>Serbian, Serbia (sr_RS)</li>
+<li>Slovak, Slovakia (sk_SK)</li>
+<li>Slovenian, Slovenia (sl_SI)</li>
+<li>Spanish, Spain (es_ES)</li>
+<li>Spanish, US (es_US)</li>
+<li>Swedish, Sweden (sv_SE)</li>
+<li>Thai, Thailand (th_TH)</li>
+<li>Tagalog, Philippines (tl_PH)</li>
+<li>Turkish, Turkey (tr_TR)</li>
+<li>Ukranian, Ukrania (uk_UA)</li>
+<li>Vietnamese, Vietnam (vi_VN)</li>
+</ul>
+</td>
+</tr>
+</table>
+
+<p>Localized UI strings match the locales that are displayable in
+the emulator, accessible through the device Settings application.</p>
+
+<h2 id="api-changes">API Changes</h2>
+
+<h3 style="padding-top:0">Overview</h3>
+
+<ul>
+
+<li>Search framework</li>
+ <ul>
+ <li>Applications can now expose relevant content to users as search suggestions in the Quick Search Box, a new device-wide search capability that is accessible from the home screen. To support this, the search framework adds new attributes to the searchable metadata file. For complete information, see the {@link android.app.SearchManager SearchManager} documentation.</li>
+ </ul>
+</li>
+
+<li>Accessibility framework</li>
+ <ul>
+ <li>New {@link android.view.accessibility android.accessibility} package
+that includes classes for capturing accessibility events and forwarding them to
+an {@link android.accessibilityservice AccessibilityService} handler. </li>
+ <li>New {@link android.accessibilityservice AccessibilityService} package
+that lets your application track user events and provide visual, audible, or
+haptic feedback to the user. </li>
+ </ul>
+</li>
+
+<li>Gestures</li>
+ <ul>
+ <li>New {@link android.gesture gesture} API for creating, recognizing,
+loading, and saving gestures.</li>
+ </ul>
+</li>
+
+<li>Text-to-speech</li>
+ <ul>
+ <li>New package {@link android.speech.tts android.speech.tts} provides
+classes for synthesizing speech from text, for immediate playback or to create a
+sound file.</li>
+ </ul>
+</li>
+
+<li>Permissions</li>
+ <ul>
+
+ <li>New permissions for
+{@link android.Manifest.permission#CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_MULTICAST_STATE},
+{@link android.Manifest.permission#INSTALL_LOCATION_PROVIDER INSTALL_LOCATION_PROVIDER},
+{@link android.Manifest.permission#READ_HISTORY_BOOKMARKS READ_HISTORY_BOOKMARKS},
+{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE WRITE_EXTERNAL_STORAGE}, and
+{@link android.Manifest.permission#WRITE_HISTORY_BOOKMARKS WRITE_HISTORY_BOOKMARKS}.</li>
+ </ul>
+</li>
+
+<li>Graphics</li>
+ <ul>
+ <li>Classes in {@link android.graphics android.graphics} now support scaling
+for different screen densities.</li>
+ </ul>
+</li>
+
+<li>Telephony</li>
+ <ul>
+ <li>New {@link android.telephony.SmsManager SmsManager} and other classes
+for sending and receiving SMS messages.</li>
+ </ul>
+</li>
+
+<li>Utilities</li>
+ <ul>
+ <li>New {@link android.util.DisplayMetrics DisplayMetrics} fields for
+determining the density of the current device screen.</li>
+ </ul>
+</li>
+
+<li>Application-defined support for various screen densities</li>
+ <p>Applications can now use a new element in their manifest files, <a
+href="{@docRoot}guide/topics/manifest/supports-screen-element.html"><supports-
+screen></a> to indicate to the specific screen resolutions/densities that
+they are designed to support. When the application is installed on a device
+whose screen is not explicitly supported by the application, the system
+runs the application in Compatibility Mode, where possible. </p>
+</li>
+</ul>
+
+<h3 id="api-diff">API Change Details</h3>
+
+<p>For a detailed view of API changes in this platform (API Level 4), see the <a
+href="{@docRoot}sdk/api_diff/4/changes.html">API Differences Report</a>.</p>
+
+
+
+
+
+
diff --git a/docs/html/sdk/api_diff/4/changes.html b/docs/html/sdk/api_diff/4/changes.html
index da18ae6..c1b66a1 100644
--- a/docs/html/sdk/api_diff/4/changes.html
+++ b/docs/html/sdk/api_diff/4/changes.html
@@ -4,11 +4,11 @@
<meta name="generator" content="JDiff v1.1.0">
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
-<!-- on Wed Aug 05 19:20:54 PDT 2009 -->
+<!-- on Wed Sep 02 18:26:54 PDT 2009 -->
<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 3 and Donut
+API Differences between 3 and 4
</TITLE>
<link href="../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
<link href="stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
diff --git a/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html b/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html
index 048f928..cb7b0f9 100644
--- a/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html
+++ b/docs/html/sdk/api_diff/4/changes/alldiffs_index_additions.html
@@ -69,6 +69,7 @@
<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="#Z"><font size="-2">Z</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.ACCESSIBILITY_ENABLED" class="hiddenlink" target="rightframe">ACCESSIBILITY_ENABLED</A>
@@ -157,6 +158,7 @@
<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="#Z"><font size="-2">Z</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.backupAgent" class="hiddenlink" target="rightframe">backupAgent</A>
@@ -200,6 +202,7 @@
<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="#Z"><font size="-2">Z</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.html#android.Manifest.permission.CHANGE_WIFI_MULTICAST_STATE" class="hiddenlink" target="rightframe">CHANGE_WIFI_MULTICAST_STATE</A>
@@ -262,6 +265,7 @@
<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="#Z"><font size="-2">Z</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.BitmapFactory.html#android.graphics.BitmapFactory.decodeResourceStream_added(android.content.res.Resources, android.util.TypedValue, java.io.InputStream, android.graphics.Rect, android.graphics.BitmapFactory.Options)" class="hiddenlink" target="rightframe"><b>decodeResourceStream</b>
@@ -316,952 +320,6 @@
<nobr><A HREF="android.view.Window.Callback.html#android.view.Window.Callback.dispatchPopulateAccessibilityEvent_added(android.view.accessibility.AccessibilityEvent)" class="hiddenlink" target="rightframe">type <b>
(<code>AccessibilityEvent</code>)</b> in android.view.Window.Callback
</A></nobr><br>
-<!-- Field donut_resource_pad1 -->
-<i>donut_resource_pad1</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-<i>donut_resource_pad10</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-<i>donut_resource_pad11</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-<i>donut_resource_pad12</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-<i>donut_resource_pad13</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-<i>donut_resource_pad14</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-<i>donut_resource_pad15</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-<i>donut_resource_pad16</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-<i>donut_resource_pad17</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-<i>donut_resource_pad18</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-<i>donut_resource_pad19</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-<i>donut_resource_pad2</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-<i>donut_resource_pad20</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-<i>donut_resource_pad21</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-<i>donut_resource_pad22</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-<i>donut_resource_pad23</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-<i>donut_resource_pad24</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-<i>donut_resource_pad25</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-<i>donut_resource_pad26</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-<i>donut_resource_pad27</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
-<i>donut_resource_pad28</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
-<i>donut_resource_pad29</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-<i>donut_resource_pad3</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
-<i>donut_resource_pad30</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
-<i>donut_resource_pad31</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad32 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<!-- Field donut_resource_pad33 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<!-- Field donut_resource_pad34 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<!-- Field donut_resource_pad35 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<!-- Field donut_resource_pad36 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<!-- Field donut_resource_pad37 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<!-- Field donut_resource_pad38 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<!-- Field donut_resource_pad39 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-<i>donut_resource_pad4</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad40 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-<i>donut_resource_pad5</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-<i>donut_resource_pad6</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-<i>donut_resource_pad7</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-<i>donut_resource_pad8</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-<i>donut_resource_pad9</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<!-- Field dropDownHeight -->
<nobr><A HREF="android.R.attr.html#android.R.attr.dropDownHeight" class="hiddenlink" target="rightframe">dropDownHeight</A>
</nobr><br>
@@ -1287,6 +345,7 @@
<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="#Z"><font size="-2">Z</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.ENABLED_ACCESSIBILITY_SERVICES" class="hiddenlink" target="rightframe">ENABLED_ACCESSIBILITY_SERVICES</A>
@@ -1322,6 +381,7 @@
<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="#Z"><font size="-2">Z</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.fadeDuration" class="hiddenlink" target="rightframe">fadeDuration</A>
@@ -1384,6 +444,7 @@
<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="#Z"><font size="-2">Z</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.gestureColor" class="hiddenlink" target="rightframe">gestureColor</A>
@@ -1557,6 +618,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>ImageSpan</i><br>
@@ -1638,6 +700,7 @@
<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="#Z"><font size="-2">Z</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.largeScreens" class="hiddenlink" target="rightframe">largeScreens</A>
@@ -1667,6 +730,7 @@
<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="#Z"><font size="-2">Z</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.html#android.os.Build.MANUFACTURER" class="hiddenlink" target="rightframe">MANUFACTURER</A>
@@ -1696,6 +760,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>NinePatchDrawable</i><br>
@@ -1729,6 +794,7 @@
<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="#Z"><font size="-2">Z</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.RemoteCallbackList.html#android.os.RemoteCallbackList.onCallbackDied_added(E, java.lang.Object)" class="hiddenlink" target="rightframe"><b>onCallbackDied</b>
@@ -1763,6 +829,7 @@
<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="#Z"><font size="-2">Z</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.parseUri_added(java.lang.String, int)" class="hiddenlink" target="rightframe"><b>parseUri</b>
@@ -1806,6 +873,7 @@
<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="#Z"><font size="-2">Z</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.queryAfterZeroResults" class="hiddenlink" target="rightframe">queryAfterZeroResults</A>
@@ -1832,6 +900,7 @@
<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="#Z"><font size="-2">Z</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.html#android.Manifest.permission.READ_HISTORY_BOOKMARKS" class="hiddenlink" target="rightframe">READ_HISTORY_BOOKMARKS</A>
@@ -1870,6 +939,7 @@
<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="#Z"><font size="-2">Z</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.screenLayout" class="hiddenlink" target="rightframe">screenLayout</A>
@@ -2055,6 +1125,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>targetSdkVersion</i><br>
@@ -2330,6 +1401,7 @@
<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="#Z"><font size="-2">Z</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.uncertainGestureColor" class="hiddenlink" target="rightframe">uncertainGestureColor</A>
@@ -2365,6 +1437,7 @@
<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="#Z"><font size="-2">Z</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#ViewDebug.FlagToString" class="hiddenlink" target="rightframe"><b>ViewDebug.FlagToString</b></A><br>
@@ -2399,6 +1472,7 @@
<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="#Z"><font size="-2">Z</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.style.html#android.R.style.Widget_ProgressBar_Inverse" class="hiddenlink" target="rightframe">Widget_ProgressBar_Inverse</A>
@@ -2417,6 +1491,34 @@
<!-- Field WRITE_HISTORY_BOOKMARKS -->
<nobr><A HREF="android.Manifest.permission.html#android.Manifest.permission.WRITE_HISTORY_BOOKMARKS" class="hiddenlink" target="rightframe">WRITE_HISTORY_BOOKMARKS</A>
</nobr><br>
+<!-- Class ZoomButtonsController -->
+<A NAME="Z"></A>
+<br><font size="+2">Z</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="#Q"><font size="-2">Q</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.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<!-- Class ZoomButtonsController.OnZoomListener -->
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html b/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html
index d20054b..4c52602 100644
--- a/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html
+++ b/docs/html/sdk/api_diff/4/changes/alldiffs_index_all.html
@@ -71,6 +71,7 @@
<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="#Z"><font size="-2">Z</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.ACCESSIBILITY_ENABLED" class="hiddenlink" target="rightframe">ACCESSIBILITY_ENABLED</A>
@@ -228,6 +229,7 @@
<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="#Z"><font size="-2">Z</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.backupAgent" class="hiddenlink" target="rightframe">backupAgent</A>
@@ -291,6 +293,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>calculateLength</i><br>
@@ -385,6 +388,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>Date</i><br>
@@ -464,952 +468,6 @@
<!-- Method divideMessage -->
<nobr><A HREF="android.telephony.gsm.SmsManager.html#android.telephony.gsm.SmsManager.divideMessage_changed(java.lang.String)" class="hiddenlink" target="rightframe">divideMessage
(<code>String</code>)</A></nobr><br>
-<!-- Field donut_resource_pad1 -->
-<i>donut_resource_pad1</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad1 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
-<i>donut_resource_pad10</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad10 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
-<i>donut_resource_pad11</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad11 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
-<i>donut_resource_pad12</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad12 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
-<i>donut_resource_pad13</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad13 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
-<i>donut_resource_pad14</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad14 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
-<i>donut_resource_pad15</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad15 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
-<i>donut_resource_pad16</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad16 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
-<i>donut_resource_pad17</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad17 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
-<i>donut_resource_pad18</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad18 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
-<i>donut_resource_pad19</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad19 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
-<i>donut_resource_pad2</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad2 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
-<i>donut_resource_pad20</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad20 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
-<i>donut_resource_pad21</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad21 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
-<i>donut_resource_pad22</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad22 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
-<i>donut_resource_pad23</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad23 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
-<i>donut_resource_pad24</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad24 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
-<i>donut_resource_pad25</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad25 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
-<i>donut_resource_pad26</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad26 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
-<i>donut_resource_pad27</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad27 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
-<i>donut_resource_pad28</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad28 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
-<i>donut_resource_pad29</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad29 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
-<i>donut_resource_pad3</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad3 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
-<i>donut_resource_pad30</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad30 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
-<i>donut_resource_pad31</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad31 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad32 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<!-- Field donut_resource_pad33 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<!-- Field donut_resource_pad34 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<!-- Field donut_resource_pad35 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<!-- Field donut_resource_pad36 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<!-- Field donut_resource_pad37 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<!-- Field donut_resource_pad38 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<!-- Field donut_resource_pad39 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
-<i>donut_resource_pad4</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad4 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad40 -->
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
-<i>donut_resource_pad5</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad5 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
-<i>donut_resource_pad6</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad6 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
-<i>donut_resource_pad7</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad7 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
-<i>donut_resource_pad8</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad8 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
-<i>donut_resource_pad9</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<!-- Field donut_resource_pad9 -->
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<!-- Class Drawable -->
<A HREF="android.graphics.drawable.Drawable.html" class="hiddenlink" target="rightframe">Drawable</A><br>
<!-- Field dropDownHeight -->
@@ -1439,6 +497,7 @@
<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="#Z"><font size="-2">Z</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.ENABLED_ACCESSIBILITY_SERVICES" class="hiddenlink" target="rightframe">ENABLED_ACCESSIBILITY_SERVICES</A>
@@ -1494,6 +553,7 @@
<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="#Z"><font size="-2">Z</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.fadeDuration" class="hiddenlink" target="rightframe">fadeDuration</A>
@@ -1564,6 +624,7 @@
<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="#Z"><font size="-2">Z</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.gestureColor" class="hiddenlink" target="rightframe">gestureColor</A>
@@ -1817,6 +878,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<i>ImageSpan</i><br>
@@ -2030,6 +1092,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.inputmethodservice.KeyboardView.html" class="hiddenlink" target="rightframe">KeyboardView</A><br>
@@ -2057,6 +1120,7 @@
<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="#Z"><font size="-2">Z</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.largeScreens" class="hiddenlink" target="rightframe">largeScreens</A>
@@ -2103,6 +1167,7 @@
<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="#Z"><font size="-2">Z</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.html" class="hiddenlink" target="rightframe">Manifest.permission</A><br>
@@ -2159,6 +1224,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.NinePatch.html" class="hiddenlink" target="rightframe">NinePatch</A><br>
@@ -2204,6 +1270,7 @@
<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="#Z"><font size="-2">Z</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.RemoteCallbackList.html#android.os.RemoteCallbackList.onCallbackDied_added(E, java.lang.Object)" class="hiddenlink" target="rightframe"><b>onCallbackDied</b>
@@ -2246,6 +1313,7 @@
<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="#Z"><font size="-2">Z</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>
@@ -2302,6 +1370,7 @@
<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="#Z"><font size="-2">Z</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.queryAfterZeroResults" class="hiddenlink" target="rightframe">queryAfterZeroResults</A>
@@ -2330,27 +1399,14 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<!-- Class R.array -->
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<!-- Class R.attr -->
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<!-- Class R.color -->
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<!-- Class R.dimen -->
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<!-- Class R.drawable -->
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<!-- Class R.id -->
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<!-- Class R.integer -->
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<!-- Class R.layout -->
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<!-- Class R.string -->
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<!-- Class R.style -->
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<!-- Field READ_HISTORY_BOOKMARKS -->
@@ -2412,6 +1468,7 @@
<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="#Z"><font size="-2">Z</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.screenLayout" class="hiddenlink" target="rightframe">screenLayout</A>
@@ -2699,6 +1756,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.widget.TabHost.TabSpec.html" class="hiddenlink" target="rightframe">TabHost.TabSpec</A><br>
@@ -2989,6 +2047,7 @@
<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="#Z"><font size="-2">Z</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.uncertainGestureColor" class="hiddenlink" target="rightframe">uncertainGestureColor</A>
@@ -3026,6 +2085,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.view.VelocityTracker.html" class="hiddenlink" target="rightframe">VelocityTracker</A><br>
@@ -3068,6 +2128,7 @@
<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="#Z"><font size="-2">Z</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.style.html#android.R.style.Widget_ProgressBar_Inverse" class="hiddenlink" target="rightframe">Widget_ProgressBar_Inverse</A>
@@ -3090,6 +2151,36 @@
<!-- Field WRITE_HISTORY_BOOKMARKS -->
<nobr><A HREF="android.Manifest.permission.html#android.Manifest.permission.WRITE_HISTORY_BOOKMARKS" class="hiddenlink" target="rightframe">WRITE_HISTORY_BOOKMARKS</A>
</nobr><br>
+<!-- Class ZoomButtonsController -->
+<A NAME="Z"></A>
+<br><font size="+2">Z</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="#Q"><font size="-2">Q</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.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<!-- Class ZoomButtonsController.OnZoomListener -->
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html b/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html
index 8195523..8b9e697 100644
--- a/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html
+++ b/docs/html/sdk/api_diff/4/changes/alldiffs_index_changes.html
@@ -705,24 +705,10 @@
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<!-- Class R.array -->
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<!-- Class R.attr -->
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<!-- Class R.color -->
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<!-- Class R.dimen -->
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<!-- Class R.drawable -->
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<!-- Class R.id -->
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<!-- Class R.integer -->
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<!-- Class R.layout -->
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<!-- Class R.string -->
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<!-- Class R.style -->
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<!-- Field RELEASE -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html
index b0389a1..76a0095 100644
--- a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html
+++ b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html
index 628ef07..10347eb 100644
--- a/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html
+++ b/docs/html/sdk/api_diff/4/changes/android.Manifest.permission_group.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.anim.html b/docs/html/sdk/api_diff/4/changes/android.R.anim.html
index cce8c29..93459a5 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.anim.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.anim.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -105,153 +105,6 @@
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad15"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad16"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad17"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad18"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad19"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad20"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad21"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.anim.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="android.R.anim.linear_interpolator"></A>
<nobr><code>int</code> <A HREF="../../../../reference/android/R.anim.html#linear_interpolator" target="_top"><code>linear_interpolator</code></A></nobr>
</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.array.html b/docs/html/sdk/api_diff/4/changes/android.R.array.html
deleted file mode 100644
index 43bd0b1..0000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.array.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!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.array
-</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">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</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.array.html" target="_top"><font size="+2"><code>R.array</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.array.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.array.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.array.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</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/4/changes/android.R.attr.html b/docs/html/sdk/api_diff/4/changes/android.R.attr.html
index a4b9adb..a1923f6 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.attr.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.attr.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -119,132 +119,6 @@
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad15"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad16"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad17"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad18"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.attr.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="android.R.attr.dropDownHeight"></A>
<nobr><code>int</code> <A HREF="../../../../reference/android/R.attr.html#dropDownHeight" target="_top"><code>dropDownHeight</code></A></nobr>
</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.color.html b/docs/html/sdk/api_diff/4/changes/android.R.color.html
deleted file mode 100644
index 20ce475..0000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.color.html
+++ /dev/null
@@ -1,332 +0,0 @@
-<!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.color
-</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">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</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.color.html" target="_top"><font size="+2"><code>R.color</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.color.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad15"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad16"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad17"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad18"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad19"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad20"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad21"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad22"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad23"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad23" target="_top"><code>donut_resource_pad23</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad24"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad24" target="_top"><code>donut_resource_pad24</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad25"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad25" target="_top"><code>donut_resource_pad25</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad26"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad26" target="_top"><code>donut_resource_pad26</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad27"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad27" target="_top"><code>donut_resource_pad27</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad28"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad28" target="_top"><code>donut_resource_pad28</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad29"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad29" target="_top"><code>donut_resource_pad29</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad30"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad30" target="_top"><code>donut_resource_pad30</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad31"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad31" target="_top"><code>donut_resource_pad31</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.color.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.color.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</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/4/changes/android.R.dimen.html b/docs/html/sdk/api_diff/4/changes/android.R.dimen.html
deleted file mode 100644
index d6736d7..0000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.dimen.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!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.dimen
-</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">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</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.dimen.html" target="_top"><font size="+2"><code>R.dimen</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.dimen.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.dimen.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.dimen.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</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/4/changes/android.R.drawable.html b/docs/html/sdk/api_diff/4/changes/android.R.drawable.html
index 25776a9..9ecf628 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.drawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.drawable.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -84,286 +84,6 @@
</TH>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad15"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad16"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad17"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad18"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad19"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad20"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad21"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad22"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad23"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad23" target="_top"><code>donut_resource_pad23</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad24"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad24" target="_top"><code>donut_resource_pad24</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad25"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad25" target="_top"><code>donut_resource_pad25</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad26"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad26" target="_top"><code>donut_resource_pad26</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad27"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad27" target="_top"><code>donut_resource_pad27</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad28"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad28" target="_top"><code>donut_resource_pad28</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad29"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad29" target="_top"><code>donut_resource_pad29</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad30"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad30" target="_top"><code>donut_resource_pad30</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad31"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad31" target="_top"><code>donut_resource_pad31</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad32"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad32" target="_top"><code>donut_resource_pad32</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad33"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad33" target="_top"><code>donut_resource_pad33</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad34"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad34" target="_top"><code>donut_resource_pad34</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad35"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad35" target="_top"><code>donut_resource_pad35</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad36"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad36" target="_top"><code>donut_resource_pad36</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad37"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad37" target="_top"><code>donut_resource_pad37</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad38"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad38" target="_top"><code>donut_resource_pad38</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad39"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad39" target="_top"><code>donut_resource_pad39</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad40"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad40" target="_top"><code>donut_resource_pad40</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.drawable.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="android.R.drawable.stat_sys_vp_phone_call"></A>
<nobr><code>int</code> <A HREF="../../../../reference/android/R.drawable.html#stat_sys_vp_phone_call" target="_top"><code>stat_sys_vp_phone_call</code></A></nobr>
</TD>
diff --git a/docs/html/sdk/api_diff/4/changes/android.R.id.html b/docs/html/sdk/api_diff/4/changes/android.R.id.html
deleted file mode 100644
index 4fb4894..0000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.id.html
+++ /dev/null
@@ -1,269 +0,0 @@
-<!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.id
-</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">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</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.id.html" target="_top"><font size="+2"><code>R.id</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.id.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad15"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad16"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad17"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad18"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad19"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad20"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad21"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad22"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.id.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.id.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</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/4/changes/android.R.integer.html b/docs/html/sdk/api_diff/4/changes/android.R.integer.html
deleted file mode 100644
index 6b9e2c0..0000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.integer.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!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.integer
-</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">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</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.integer.html" target="_top"><font size="+2"><code>R.integer</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.integer.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.integer.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.integer.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</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/4/changes/android.R.layout.html b/docs/html/sdk/api_diff/4/changes/android.R.layout.html
deleted file mode 100644
index b8aeabd..0000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.layout.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<!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.layout
-</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">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</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.layout.html" target="_top"><font size="+2"><code>R.layout</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.layout.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.layout.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.layout.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</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/4/changes/android.R.string.html b/docs/html/sdk/api_diff/4/changes/android.R.string.html
deleted file mode 100644
index 770be4e..0000000
--- a/docs/html/sdk/api_diff/4/changes/android.R.string.html
+++ /dev/null
@@ -1,304 +0,0 @@
-<!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.string
-</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">Donut</td>
- </tr>
- <tr>
- <td class="diffspec">From Level:</td>
- <td class="diffvalueold">3</td>
- </tr>
- <tr>
- <td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</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.string.html" target="_top"><font size="+2"><code>R.string</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.string.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad15"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad16"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad17"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad18"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad19"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad20"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad20" target="_top"><code>donut_resource_pad20</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad21"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad21" target="_top"><code>donut_resource_pad21</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad22"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad22" target="_top"><code>donut_resource_pad22</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad23"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad23" target="_top"><code>donut_resource_pad23</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad24"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad24" target="_top"><code>donut_resource_pad24</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad25"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad25" target="_top"><code>donut_resource_pad25</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad26"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad26" target="_top"><code>donut_resource_pad26</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad27"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad27" target="_top"><code>donut_resource_pad27</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.string.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.string.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</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/4/changes/android.R.style.html b/docs/html/sdk/api_diff/4/changes/android.R.style.html
index 5dbe9a1..6755e3d 100644
--- a/docs/html/sdk/api_diff/4/changes/android.R.style.html
+++ b/docs/html/sdk/api_diff/4/changes/android.R.style.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -103,139 +103,6 @@
</TD>
<TD> </TD>
</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad1"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad1" target="_top"><code>donut_resource_pad1</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad10"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad10" target="_top"><code>donut_resource_pad10</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad11"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad11" target="_top"><code>donut_resource_pad11</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad12"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad12" target="_top"><code>donut_resource_pad12</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad13"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad13" target="_top"><code>donut_resource_pad13</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad14"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad14" target="_top"><code>donut_resource_pad14</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad15"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad15" target="_top"><code>donut_resource_pad15</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad16"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad16" target="_top"><code>donut_resource_pad16</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad17"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad17" target="_top"><code>donut_resource_pad17</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad18"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad18" target="_top"><code>donut_resource_pad18</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad19"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad19" target="_top"><code>donut_resource_pad19</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad2"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad2" target="_top"><code>donut_resource_pad2</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad3"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad3" target="_top"><code>donut_resource_pad3</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad4"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad4" target="_top"><code>donut_resource_pad4</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad5"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad5" target="_top"><code>donut_resource_pad5</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad6"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad6" target="_top"><code>donut_resource_pad6</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad7"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad7" target="_top"><code>donut_resource_pad7</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad8"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad8" target="_top"><code>donut_resource_pad8</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="android.R.style.donut_resource_pad9"></A>
- <nobr><code>int</code> <A HREF="../../../../reference/android/R.style.html#donut_resource_pad9" target="_top"><code>donut_resource_pad9</code></A></nobr>
- </TD>
- <TD> </TD>
-</TR>
</TABLE>
</div>
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.Activity.html b/docs/html/sdk/api_diff/4/changes/android.app.Activity.html
index 633252d..6950355 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.Activity.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.Activity.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html b/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html
index df5a13c..a6ec387 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.Dialog.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
index f837ae5..83070a1 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.ListItem.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html
index 2a21f3b..ebfd0ae 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.LauncherActivity.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html b/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html
index 032671b..221ce64 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.PendingIntent.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html b/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html
index 7cde296..99df03e 100644
--- a/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.app.SearchManager.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html b/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html
index 09b3892..6451a5b 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.ComponentName.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html b/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html
index 387574c..baeb713 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.ContentProvider.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.Context.html b/docs/html/sdk/api_diff/4/changes/android.content.Context.html
index 08ad9ad..0d90202 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.Context.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.Context.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html b/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html
index 6f67f68..b39cd46 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.ContextWrapper.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.Intent.html b/docs/html/sdk/api_diff/4/changes/android.content.Intent.html
index 69995d6..7274c55 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.Intent.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.Intent.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
index 369dd3f..ffdccb8 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ActivityInfo.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
index e218e8f..20f9b6b 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ApplicationInfo.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
index b44626b..600a08f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ConfigurationInfo.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
index 8667611..921ba9f 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.PackageManager.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html b/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
index 059c7e0..911419b 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.pm.ProviderInfo.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html b/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html
index 947243f..cc3f967 100644
--- a/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html
+++ b/docs/html/sdk/api_diff/4/changes/android.content.res.Configuration.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html b/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html
index df2e105..6e99e84 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.Bitmap.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
index bc8cc7c..6c812d0 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.Options.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
index 8549752..d730e09 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.BitmapFactory.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html b/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html
index 49128fa..48ed8b6 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.Canvas.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html b/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html
index 1a3f94a..0d78eb0 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.NinePatch.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html b/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html
index 6739f05..e6d27d4 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.Typeface.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
index c5c7670..d72281a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.AnimationDrawable.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
index 8dea688..4971712 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.BitmapDrawable.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
index 7e52fc6..e1dc283 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.Drawable.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
index 49245f1..5eafab0 100644
--- a/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
+++ b/docs/html/sdk/api_diff/4/changes/android.graphics.drawable.NinePatchDrawable.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html b/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html
index 55ebacf..87b1f34 100644
--- a/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.hardware.SensorManager.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html b/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
index 6e927b8..bec08b0 100644
--- a/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.inputmethodservice.KeyboardView.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.location.Address.html b/docs/html/sdk/api_diff/4/changes/android.location.Address.html
index b32f4f3..0aeec49 100644
--- a/docs/html/sdk/api_diff/4/changes/android.location.Address.html
+++ b/docs/html/sdk/api_diff/4/changes/android.location.Address.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html b/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html
index 1ac2b9c..8d1224c 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.AudioManager.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
index b371e46..9321b59 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.AudioSource.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html
index 8f7aa00..c161466 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.MediaRecorder.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html b/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html
index c1e1bb8..a8d5580 100644
--- a/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html
+++ b/docs/html/sdk/api_diff/4/changes/android.media.ToneGenerator.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html b/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
index f1fcaad..2e4f339 100644
--- a/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.net.wifi.WifiManager.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html b/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html
index 941c554..178adbb 100644
--- a/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html
+++ b/docs/html/sdk/api_diff/4/changes/android.os.Build.VERSION.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.os.Build.html b/docs/html/sdk/api_diff/4/changes/android.os.Build.html
index 075819a..89fcb48 100644
--- a/docs/html/sdk/api_diff/4/changes/android.os.Build.html
+++ b/docs/html/sdk/api_diff/4/changes/android.os.Build.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html b/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
index de379ea..19918aa 100644
--- a/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
+++ b/docs/html/sdk/api_diff/4/changes/android.os.RemoteCallbackList.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
index af0b161..a5d47d6 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Genres.Members.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
index aa07442..ab8f206 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.MediaStore.Audio.Media.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
index be600e4..f349488 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.Secure.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html
index d979133..4730602 100644
--- a/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html
+++ b/docs/html/sdk/api_diff/4/changes/android.provider.Settings.System.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
index 35d07a4..555ec8c 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsManager.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
index c848939..e60aada 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.MessageClass.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
index af36496..03d5b6a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.SubmitPdu.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
index e480955..e9f749e 100644
--- a/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
+++ b/docs/html/sdk/api_diff/4/changes/android.telephony.gsm.SmsMessage.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html b/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
index 8e772ab..b816a07 100644
--- a/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
+++ b/docs/html/sdk/api_diff/4/changes/android.test.AndroidTestCase.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html
index 317556a..fdc83cd 100644
--- a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html
+++ b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockContext.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
index 939b9e8..2e4fc37 100644
--- a/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
+++ b/docs/html/sdk/api_diff/4/changes/android.test.mock.MockPackageManager.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html b/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
index 729d9ef..b4eb161 100644
--- a/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
+++ b/docs/html/sdk/api_diff/4/changes/android.text.style.ImageSpan.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.util.Config.html b/docs/html/sdk/api_diff/4/changes/android.util.Config.html
index e5d67d9..d6d303e 100644
--- a/docs/html/sdk/api_diff/4/changes/android.util.Config.html
+++ b/docs/html/sdk/api_diff/4/changes/android.util.Config.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html b/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
index 4ab0b38..d1a482a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
+++ b/docs/html/sdk/api_diff/4/changes/android.util.DisplayMetrics.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html b/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html
index fd15172..bb74b65 100644
--- a/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html
+++ b/docs/html/sdk/api_diff/4/changes/android.util.TypedValue.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.Surface.html b/docs/html/sdk/api_diff/4/changes/android.view.Surface.html
index 7231913..a323bee 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.Surface.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.Surface.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html b/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html
index 208ee0d..4d96667 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.VelocityTracker.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.View.html b/docs/html/sdk/api_diff/4/changes/android.view.View.html
index 1696e1c..45d735b 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.View.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.View.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html b/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
index 30a66ab..aa8d02a 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.ViewConfiguration.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html b/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html
index 61626bd..de1d354 100644
--- a/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html
+++ b/docs/html/sdk/api_diff/4/changes/android.view.Window.Callback.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
index 2ad8c43..bad2b22 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.AutoCompleteTextView.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html b/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
index 91675dc8..79e40a8 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.CheckedTextView.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html b/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html
index 37680eb..487c69b 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.ListView.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html b/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html
index e97e296d..6ce83af 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.PopupWindow.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html b/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
index 639b466..8940867 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.TabHost.TabSpec.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html b/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html
index beb4056..17b2a5e 100644
--- a/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html
+++ b/docs/html/sdk/api_diff/4/changes/android.widget.TabWidget.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/changes-summary.html b/docs/html/sdk/api_diff/4/changes/changes-summary.html
index d4b794c..a4850a5 100644
--- a/docs/html/sdk/api_diff/4/changes/changes-summary.html
+++ b/docs/html/sdk/api_diff/4/changes/changes-summary.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_additions.html b/docs/html/sdk/api_diff/4/changes/classes_index_additions.html
index 8100cfc..d59f666 100644
--- a/docs/html/sdk/api_diff/4/changes/classes_index_additions.html
+++ b/docs/html/sdk/api_diff/4/changes/classes_index_additions.html
@@ -57,6 +57,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.graphics.drawable.html#Animatable" class="hiddenlink" target="rightframe"><b><i>Animatable</i></b></A><br>
@@ -72,6 +73,7 @@
<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="#Z"><font size="-2">Z</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.animation.html#BounceInterpolator" class="hiddenlink" target="rightframe"><b>BounceInterpolator</b></A><br>
@@ -86,6 +88,7 @@
<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="#Z"><font size="-2">Z</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#GLES10" class="hiddenlink" target="rightframe"><b>GLES10</b></A><br>
@@ -102,6 +105,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.content.html#IntentSender" class="hiddenlink" target="rightframe"><b>IntentSender</b></A><br>
@@ -117,6 +121,7 @@
<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="#Z"><font size="-2">Z</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.animation.html#OvershootInterpolator" class="hiddenlink" target="rightframe"><b>OvershootInterpolator</b></A><br>
@@ -130,6 +135,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="pkg_android.content.pm.html#PathPermission" class="hiddenlink" target="rightframe"><b>PathPermission</b></A><br>
@@ -143,6 +149,7 @@
<a href="#P"><font size="-2">P</font></a>
<a href="#V"><font size="-2">V</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</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#SmsManager" class="hiddenlink" target="rightframe"><b>SmsManager</b></A><br>
@@ -159,6 +166,7 @@
<a href="#P"><font size="-2">P</font></a>
<a href="#S"><font size="-2">S</font></a>
<a href="#W"><font size="-2">W</font></a>
+<a href="#Z"><font size="-2">Z</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#ViewDebug.FlagToString" class="hiddenlink" target="rightframe"><b>ViewDebug.FlagToString</b></A><br>
@@ -172,9 +180,25 @@
<a href="#P"><font size="-2">P</font></a>
<a href="#S"><font size="-2">S</font></a>
<a href="#V"><font size="-2">V</font></a>
+<a href="#Z"><font size="-2">Z</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.wifi.html#WifiManager.MulticastLock" class="hiddenlink" target="rightframe"><b>WifiManager.MulticastLock</b></A><br>
+<A NAME="Z"></A>
+<br><font size="+2">Z</font>
+<a href="#A"><font size="-2">A</font></a>
+<a href="#B"><font size="-2">B</font></a>
+<a href="#G"><font size="-2">G</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="#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="pkg_android.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_all.html b/docs/html/sdk/api_diff/4/changes/classes_index_all.html
index 667a433..4af2716 100644
--- a/docs/html/sdk/api_diff/4/changes/classes_index_all.html
+++ b/docs/html/sdk/api_diff/4/changes/classes_index_all.html
@@ -65,6 +65,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
@@ -96,6 +97,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.Bitmap.html" class="hiddenlink" target="rightframe">Bitmap</A><br>
@@ -124,6 +126,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.Canvas.html" class="hiddenlink" target="rightframe">Canvas</A><br>
@@ -153,6 +156,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="java.util.Date.html" class="hiddenlink" target="rightframe">Date</A><br>
@@ -177,6 +181,7 @@
<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="#Z"><font size="-2">Z</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#GLES10" class="hiddenlink" target="rightframe"><b>GLES10</b></A><br>
@@ -201,6 +206,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.text.style.ImageSpan.html" class="hiddenlink" target="rightframe">ImageSpan</A><br>
@@ -228,6 +234,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.inputmethodservice.KeyboardView.html" class="hiddenlink" target="rightframe">KeyboardView</A><br>
@@ -249,6 +256,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.app.LauncherActivity.html" class="hiddenlink" target="rightframe">LauncherActivity</A><br>
@@ -272,6 +280,7 @@
<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="#Z"><font size="-2">Z</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.html" class="hiddenlink" target="rightframe">Manifest.permission</A><br>
@@ -300,6 +309,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.graphics.NinePatch.html" class="hiddenlink" target="rightframe">NinePatch</A><br>
@@ -322,6 +332,7 @@
<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="#Z"><font size="-2">Z</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.animation.html#OvershootInterpolator" class="hiddenlink" target="rightframe"><b>OvershootInterpolator</b></A><br>
@@ -343,6 +354,7 @@
<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="#Z"><font size="-2">Z</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>
@@ -368,18 +380,12 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
<A NAME="S"></A>
@@ -400,6 +406,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.app.SearchManager.html" class="hiddenlink" target="rightframe">SearchManager</A><br>
@@ -439,6 +446,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.widget.TabHost.TabSpec.html" class="hiddenlink" target="rightframe">TabHost.TabSpec</A><br>
@@ -464,6 +472,7 @@
<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="#Z"><font size="-2">Z</font></a>
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.view.VelocityTracker.html" class="hiddenlink" target="rightframe">VelocityTracker</A><br>
@@ -488,11 +497,35 @@
<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="#Z"><font size="-2">Z</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.WifiManager.html" class="hiddenlink" target="rightframe">WifiManager</A><br>
<A HREF="pkg_android.net.wifi.html#WifiManager.MulticastLock" class="hiddenlink" target="rightframe"><b>WifiManager.MulticastLock</b></A><br>
<A HREF="android.view.Window.Callback.html" class="hiddenlink" target="rightframe"><i>Window.Callback</i></A><br>
+<A NAME="Z"></A>
+<br><font size="+2">Z</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="#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">
+<A HREF="pkg_android.widget.html#ZoomButtonsController" class="hiddenlink" target="rightframe"><b>ZoomButtonsController</b></A><br>
+<A HREF="pkg_android.widget.html#ZoomButtonsController.OnZoomListener" class="hiddenlink" target="rightframe"><b><i>ZoomButtonsController.OnZoomListener</i></b></A><br>
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
diff --git a/docs/html/sdk/api_diff/4/changes/classes_index_changes.html b/docs/html/sdk/api_diff/4/changes/classes_index_changes.html
index 246e64b..193e21c 100644
--- a/docs/html/sdk/api_diff/4/changes/classes_index_changes.html
+++ b/docs/html/sdk/api_diff/4/changes/classes_index_changes.html
@@ -293,15 +293,8 @@
<a href="#topheader"><font size="-2">TOP</font></a>
<p><div style="line-height:1.5em;color:black">
<A HREF="android.R.anim.html" class="hiddenlink" target="rightframe">R.anim</A><br>
-<A HREF="android.R.array.html" class="hiddenlink" target="rightframe">R.array</A><br>
<A HREF="android.R.attr.html" class="hiddenlink" target="rightframe">R.attr</A><br>
-<A HREF="android.R.color.html" class="hiddenlink" target="rightframe">R.color</A><br>
-<A HREF="android.R.dimen.html" class="hiddenlink" target="rightframe">R.dimen</A><br>
<A HREF="android.R.drawable.html" class="hiddenlink" target="rightframe">R.drawable</A><br>
-<A HREF="android.R.id.html" class="hiddenlink" target="rightframe">R.id</A><br>
-<A HREF="android.R.integer.html" class="hiddenlink" target="rightframe">R.integer</A><br>
-<A HREF="android.R.layout.html" class="hiddenlink" target="rightframe">R.layout</A><br>
-<A HREF="android.R.string.html" class="hiddenlink" target="rightframe">R.string</A><br>
<A HREF="android.R.style.html" class="hiddenlink" target="rightframe">R.style</A><br>
<A HREF="android.os.RemoteCallbackList.html" class="hiddenlink" target="rightframe">RemoteCallbackList</A><br>
<A NAME="S"></A>
diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_additions.html b/docs/html/sdk/api_diff/4/changes/fields_index_additions.html
index 6a500b4..8ab19ba 100644
--- a/docs/html/sdk/api_diff/4/changes/fields_index_additions.html
+++ b/docs/html/sdk/api_diff/4/changes/fields_index_additions.html
@@ -205,721 +205,6 @@
</nobr><br>
<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
</nobr><br>
-<i>donut_resource_pad1</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad10</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad11</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad12</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad13</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad14</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad15</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad16</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad17</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad18</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad19</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad2</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad20</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad21</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad22</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad23</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad24</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad25</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad26</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad27</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad28</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad29</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad3</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad30</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad31</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<i>donut_resource_pad4</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<i>donut_resource_pad5</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad6</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad7</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad8</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad9</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<nobr><A HREF="android.R.attr.html#android.R.attr.dropDownHeight" class="hiddenlink" target="rightframe">dropDownHeight</A>
</nobr><br>
<A NAME="E"></A>
diff --git a/docs/html/sdk/api_diff/4/changes/fields_index_all.html b/docs/html/sdk/api_diff/4/changes/fields_index_all.html
index db76778..3d155b7 100644
--- a/docs/html/sdk/api_diff/4/changes/fields_index_all.html
+++ b/docs/html/sdk/api_diff/4/changes/fields_index_all.html
@@ -214,721 +214,6 @@
</nobr><br>
<nobr><A HREF="android.util.DisplayMetrics.html#android.util.DisplayMetrics.densityDpi" class="hiddenlink" target="rightframe">densityDpi</A>
</nobr><br>
-<i>donut_resource_pad1</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad1" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad10</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad10" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad11</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad11" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad12</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad12" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad13</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad13" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad14</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad14" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad15</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad15" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad16</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad16" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad17</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad17" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad18</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad18" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad19</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad19" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad2</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad2" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad20</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad20" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad21</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad21" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad22</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad22" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad23</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad23" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad24</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad24" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad25</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad25" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad26</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad26" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad27</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad27" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
-<i>donut_resource_pad28</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad28" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad29</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad29" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad3</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad3" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad30</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad30" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<i>donut_resource_pad31</i><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad31" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad32" class="hiddenlink" target="rightframe">donut_resource_pad32</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad33" class="hiddenlink" target="rightframe">donut_resource_pad33</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad34" class="hiddenlink" target="rightframe">donut_resource_pad34</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad35" class="hiddenlink" target="rightframe">donut_resource_pad35</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad36" class="hiddenlink" target="rightframe">donut_resource_pad36</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad37" class="hiddenlink" target="rightframe">donut_resource_pad37</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad38" class="hiddenlink" target="rightframe">donut_resource_pad38</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad39" class="hiddenlink" target="rightframe">donut_resource_pad39</A>
-</nobr><br>
-<i>donut_resource_pad4</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad4" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad40" class="hiddenlink" target="rightframe">donut_resource_pad40</A>
-</nobr><br>
-<i>donut_resource_pad5</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad5" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad6</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad6" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad7</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad7" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad8</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad8" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
-<i>donut_resource_pad9</i><br>
- in
-<nobr><A HREF="android.R.anim.html#android.R.anim.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.anim</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.array.html#android.R.array.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.array</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.attr.html#android.R.attr.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.attr</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.color.html#android.R.color.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.color</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.dimen.html#android.R.dimen.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.dimen</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.drawable.html#android.R.drawable.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.drawable</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.id.html#android.R.id.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.id</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.integer.html#android.R.integer.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.integer</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.layout.html#android.R.layout.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.layout</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.string.html#android.R.string.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.string</A>
-</nobr><br>
- in
-<nobr><A HREF="android.R.style.html#android.R.style.donut_resource_pad9" class="hiddenlink" target="rightframe">android.R.style</A>
-</nobr><br>
<nobr><A HREF="android.R.attr.html#android.R.attr.dropDownHeight" class="hiddenlink" target="rightframe">dropDownHeight</A>
</nobr><br>
<A NAME="E"></A>
diff --git a/docs/html/sdk/api_diff/4/changes/java.lang.String.html b/docs/html/sdk/api_diff/4/changes/java.lang.String.html
index 1e19474..61a6945 100644
--- a/docs/html/sdk/api_diff/4/changes/java.lang.String.html
+++ b/docs/html/sdk/api_diff/4/changes/java.lang.String.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/java.net.Socket.html b/docs/html/sdk/api_diff/4/changes/java.net.Socket.html
index 0d1cf76..bbeeab9 100644
--- a/docs/html/sdk/api_diff/4/changes/java.net.Socket.html
+++ b/docs/html/sdk/api_diff/4/changes/java.net.Socket.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/java.util.Date.html b/docs/html/sdk/api_diff/4/changes/java.util.Date.html
index 69caada..13acc8d 100644
--- a/docs/html/sdk/api_diff/4/changes/java.util.Date.html
+++ b/docs/html/sdk/api_diff/4/changes/java.util.Date.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/jdiff_help.html b/docs/html/sdk/api_diff/4/changes/jdiff_help.html
index b414f62..f4b9968 100644
--- a/docs/html/sdk/api_diff/4/changes/jdiff_help.html
+++ b/docs/html/sdk/api_diff/4/changes/jdiff_help.html
@@ -31,7 +31,7 @@
<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>Donut</code></B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../reference/index.html" target="_top"><FONT CLASS="NavBarFont1"><B><code>4</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>
diff --git a/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html
index 3fafb7a..3244a17 100644
--- a/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html
+++ b/docs/html/sdk/api_diff/4/changes/jdiff_statistics.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Version:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Version:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -105,10 +105,6 @@
<TD><A HREF="pkg_android.telephony.html">android.telephony</A></TD>
</TR>
<TR>
- <TD ALIGN="center">21</TD>
- <TD><A HREF="pkg_android.html">android</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">16</TD>
<TD><A HREF="pkg_android.opengl.html">android.opengl</A></TD>
</TR>
@@ -146,6 +142,14 @@
</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.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>
@@ -178,10 +182,6 @@
</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.provider.html">android.provider</A></TD>
</TR>
<TR>
@@ -214,32 +214,12 @@
<TH><b>Class or <i>Interface</i></b></TH>
</TR>
<TR>
- <TD ALIGN="center">63</TD>
- <TD><A HREF="android.R.dimen.html">
-android.R.dimen</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">63</TD>
- <TD><A HREF="android.R.integer.html">
-android.R.integer</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">61</TD>
- <TD><A HREF="android.R.anim.html">
-android.R.anim</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">55</TD>
<TD><A HREF="android.telephony.gsm.SmsMessage.html">
android.telephony.gsm.SmsMessage</A></TD>
</TR>
<TR>
<TD ALIGN="center">50</TD>
- <TD><A HREF="android.R.array.html">
-android.R.array</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">50</TD>
<TD><A HREF="android.media.ToneGenerator.html">
android.media.ToneGenerator</A></TD>
</TR>
@@ -259,21 +239,11 @@
android.graphics.drawable.NinePatchDrawable</A></TD>
</TR>
<TR>
- <TD ALIGN="center">44</TD>
- <TD><A HREF="android.R.color.html">
-android.R.color</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">42</TD>
<TD><A HREF="android.media.MediaRecorder.AudioSource.html">
android.media.MediaRecorder.AudioSource</A></TD>
</TR>
<TR>
- <TD ALIGN="center">36</TD>
- <TD><A HREF="android.R.string.html">
-android.R.string</A></TD>
-</TR>
-<TR>
<TD ALIGN="center">33</TD>
<TD><A HREF="android.util.Config.html">
android.util.Config</A></TD>
@@ -290,8 +260,8 @@
</TR>
<TR>
<TD ALIGN="center">23</TD>
- <TD><A HREF="android.R.layout.html">
-android.R.layout</A></TD>
+ <TD><A HREF="android.R.anim.html">
+android.R.anim</A></TD>
</TR>
<TR>
<TD ALIGN="center">23</TD>
@@ -325,11 +295,6 @@
</TR>
<TR>
<TD ALIGN="center">20</TD>
- <TD><A HREF="android.R.id.html">
-android.R.id</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">20</TD>
<TD><A HREF="android.test.AndroidTestCase.html">
android.test.AndroidTestCase</A></TD>
</TR>
@@ -365,21 +330,11 @@
</TR>
<TR>
<TD ALIGN="center">11</TD>
- <TD><A HREF="android.R.drawable.html">
-android.R.drawable</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">11</TD>
<TD><A HREF="android.app.LauncherActivity.html">
android.app.LauncherActivity</A></TD>
</TR>
<TR>
<TD ALIGN="center">10</TD>
- <TD><A HREF="android.R.style.html">
-android.R.style</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">10</TD>
<TD><A HREF="android.content.res.Configuration.html">
android.content.res.Configuration</A></TD>
</TR>
@@ -475,11 +430,6 @@
</TR>
<TR>
<TD ALIGN="center">4</TD>
- <TD><A HREF="android.R.attr.html">
-android.R.attr</A></TD>
-</TR>
-<TR>
- <TD ALIGN="center">4</TD>
<TD><A HREF="android.content.pm.ProviderInfo.html">
android.content.pm.ProviderInfo</A></TD>
</TR>
@@ -510,6 +460,11 @@
</TR>
<TR>
<TD ALIGN="center">2</TD>
+ <TD><A HREF="android.R.attr.html">
+android.R.attr</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center">2</TD>
<TD><A HREF="android.content.Intent.html">
android.content.Intent</A></TD>
</TR>
@@ -555,6 +510,11 @@
</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.widget.ListView.html">
android.widget.ListView</A></TD>
</TR>
@@ -605,6 +565,11 @@
</TR>
<TR>
<TD ALIGN="center"><1</TD>
+ <TD><A HREF="android.R.drawable.html">
+android.R.drawable</A></TD>
+</TR>
+<TR>
+ <TD ALIGN="center"><1</TD>
<TD><A HREF="android.provider.Settings.System.html">
android.provider.Settings.System</A></TD>
</TR>
@@ -642,9 +607,9 @@
<TR>
<TD>Classes and <i>Interfaces</i></TD>
<TD ALIGN="right">2</TD>
- <TD ALIGN="right">20</TD>
- <TD ALIGN="right">80</TD>
- <TD ALIGN="right">102</TD>
+ <TD ALIGN="right">22</TD>
+ <TD ALIGN="right">73</TD>
+ <TD ALIGN="right">97</TD>
</TR>
<TR>
<TD>Constructors</TD>
@@ -663,16 +628,16 @@
<TR>
<TD>Fields</TD>
<TD ALIGN="right">29</TD>
- <TD ALIGN="right">433</TD>
+ <TD ALIGN="right">202</TD>
<TD ALIGN="right">27</TD>
- <TD ALIGN="right">489</TD>
+ <TD ALIGN="right">258</TD>
</TR>
<TR>
<TD><b>Total</b></TD>
<TD ALIGN="right">34</TD>
- <TD ALIGN="right">543</TD>
- <TD ALIGN="right">197</TD>
- <TD ALIGN="right">774</TD>
+ <TD ALIGN="right">314</TD>
+ <TD ALIGN="right">190</TD>
+ <TD ALIGN="right">538</TD>
</TR>
</TABLE>
</div>
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.app.html b/docs/html/sdk/api_diff/4/changes/pkg_android.app.html
index 212abba..acd66f3 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.app.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.app.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.content.html b/docs/html/sdk/api_diff/4/changes/pkg_android.content.html
index 6b07fc4..db3f896 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.content.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.content.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html b/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html
index c8f0d36..7bfd185 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.content.pm.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html b/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html
index 2b6d95a..8a07bb2 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.content.res.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
index e8033a3..3fa65de 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.drawable.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html
index 3c69a1e..6d6caac 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.graphics.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html b/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html
index 5a51d12..ddce23d 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.hardware.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.html b/docs/html/sdk/api_diff/4/changes/pkg_android.html
index 8ea8efe..596b5c1 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -102,13 +102,6 @@
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.array"></A>
- <nobr><A HREF="android.R.array.html">R.array</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>
@@ -116,20 +109,6 @@
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.color"></A>
- <nobr><A HREF="android.R.color.html">R.color</A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.dimen"></A>
- <nobr><A HREF="android.R.dimen.html">R.dimen</A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
<A NAME="R.drawable"></A>
<nobr><A HREF="android.R.drawable.html">R.drawable</A></nobr>
</TD>
@@ -137,34 +116,6 @@
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
<TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.id"></A>
- <nobr><A HREF="android.R.id.html">R.id</A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.integer"></A>
- <nobr><A HREF="android.R.integer.html">R.integer</A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.layout"></A>
- <nobr><A HREF="android.R.layout.html">R.layout</A></nobr>
- </TD>
- <TD> </TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
- <TD VALIGN="TOP" WIDTH="25%">
- <A NAME="R.string"></A>
- <nobr><A HREF="android.R.string.html">R.string</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>
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html b/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
index 57913d9..5027272 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.inputmethodservice.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.location.html b/docs/html/sdk/api_diff/4/changes/pkg_android.location.html
index 9c803b4..344b11f 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.location.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.location.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.media.html b/docs/html/sdk/api_diff/4/changes/pkg_android.media.html
index 4017876..19cf361 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.media.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.media.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html b/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html
index ad844fd..50e52736 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.net.wifi.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html b/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html
index ceb4326..d2483d41 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.opengl.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.os.html b/docs/html/sdk/api_diff/4/changes/pkg_android.os.html
index 175e365..dc22fd4 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.os.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.os.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html b/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html
index 44458da..87aaaf2 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.provider.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
index 0c1fd78..176a343 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.gsm.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html
index b6e7b90..a40a526 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.telephony.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.test.html b/docs/html/sdk/api_diff/4/changes/pkg_android.test.html
index ad91cd4..7fa10be 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.test.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.test.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html b/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html
index bea2724..6d5a183 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.test.mock.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html b/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html
index d248546..ab59848 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.text.style.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.util.html b/docs/html/sdk/api_diff/4/changes/pkg_android.util.html
index 1efbe7d..5a936ae 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.util.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.util.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html b/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html
index ed53b79..a88e7fc 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.view.animation.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.view.html b/docs/html/sdk/api_diff/4/changes/pkg_android.view.html
index dc85219..381a339 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.view.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.view.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html b/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html
index 8a1cb3b..1388a0c 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_android.widget.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
@@ -74,6 +74,28 @@
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="ZoomButtonsController"></A>
+ <nobr><A HREF="../../../../reference/android/widget/ZoomButtonsController.html" target="_top"><code>ZoomButtonsController</code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+ <TD VALIGN="TOP" WIDTH="25%">
+ <A NAME="ZoomButtonsController.OnZoomListener"></A>
+ <nobr><A HREF="../../../../reference/android/widget/ZoomButtonsController.OnZoomListener.html" target="_top"><code><I>ZoomButtonsController.<br>OnZoomListener</I></code></A></nobr>
+ </TD>
+ <TD> </TD>
+</TR>
+</TABLE>
+
+<p>
<a NAME="Changed"></a>
<TABLE summary="Changed Classes" WIDTH="100%">
<TR>
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html b/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html
index 995f660..4206681 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_java.lang.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_java.net.html b/docs/html/sdk/api_diff/4/changes/pkg_java.net.html
index 3bacffc..9d98155 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_java.net.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_java.net.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/changes/pkg_java.util.html b/docs/html/sdk/api_diff/4/changes/pkg_java.util.html
index 70db301..1702f22 100644
--- a/docs/html/sdk/api_diff/4/changes/pkg_java.util.html
+++ b/docs/html/sdk/api_diff/4/changes/pkg_java.util.html
@@ -46,7 +46,7 @@
</tr>
<tr>
<td class="diffspec" style="padding-top:.25em">To Level:</td>
- <td class="diffvaluenew" style="padding-top:.25em">Donut</td>
+ <td class="diffvaluenew" style="padding-top:.25em">4</td>
</tr>
<tr>
<td class="diffspec">From Level:</td>
@@ -54,7 +54,7 @@
</tr>
<tr>
<td class="diffspec">Generated</td>
- <td class="diffvalue">2009.08.05 19:20</td>
+ <td class="diffvalue">2009.09.02 18:26</td>
</tr>
</table>
</div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/4/missingSinces.txt b/docs/html/sdk/api_diff/4/missingSinces.txt
index 4d35e0f..2cdddf9 100644
--- a/docs/html/sdk/api_diff/4/missingSinces.txt
+++ b/docs/html/sdk/api_diff/4/missingSinces.txt
@@ -18,6 +18,8 @@
NO DOC BLOCK: android.telephony.SmsMessage.SubmitPdu Class
NO DOC BLOCK: android.view.ViewDebug.FlagToString Class
NO DOC BLOCK: android.net.wifi.WifiManager.MulticastLock Class
+NO DOC BLOCK: android.widget.ZoomButtonsController Class
+NO DOC BLOCK: android.widget.ZoomButtonsController.OnZoomListener Interface
NO DOC BLOCK: android.graphics.drawable.BitmapDrawable Constructor (android.content.res.Resources)
NO DOC BLOCK: android.graphics.drawable.BitmapDrawable Constructor (android.content.res.Resources, android.graphics.Bitmap)
NO DOC BLOCK: android.text.style.ImageSpan Constructor (android.content.Context, android.graphics.Bitmap)
@@ -134,237 +136,6 @@
NO DOC BLOCK: android.graphics.Bitmap Field DENSITY_NONE
NO DOC BLOCK: android.util.TypedValue Field DENSITY_NONE
NO DOC BLOCK: android.util.DisplayMetrics Field densityDpi
-NO DOC BLOCK: android.R.anim Field donut_resource_pad1
-NO DOC BLOCK: android.R.array Field donut_resource_pad1
-NO DOC BLOCK: android.R.attr Field donut_resource_pad1
-NO DOC BLOCK: android.R.color Field donut_resource_pad1
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad1
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad1
-NO DOC BLOCK: android.R.id Field donut_resource_pad1
-NO DOC BLOCK: android.R.integer Field donut_resource_pad1
-NO DOC BLOCK: android.R.layout Field donut_resource_pad1
-NO DOC BLOCK: android.R.string Field donut_resource_pad1
-NO DOC BLOCK: android.R.style Field donut_resource_pad1
-NO DOC BLOCK: android.R.anim Field donut_resource_pad10
-NO DOC BLOCK: android.R.array Field donut_resource_pad10
-NO DOC BLOCK: android.R.attr Field donut_resource_pad10
-NO DOC BLOCK: android.R.color Field donut_resource_pad10
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad10
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad10
-NO DOC BLOCK: android.R.id Field donut_resource_pad10
-NO DOC BLOCK: android.R.integer Field donut_resource_pad10
-NO DOC BLOCK: android.R.layout Field donut_resource_pad10
-NO DOC BLOCK: android.R.string Field donut_resource_pad10
-NO DOC BLOCK: android.R.style Field donut_resource_pad10
-NO DOC BLOCK: android.R.anim Field donut_resource_pad11
-NO DOC BLOCK: android.R.array Field donut_resource_pad11
-NO DOC BLOCK: android.R.attr Field donut_resource_pad11
-NO DOC BLOCK: android.R.color Field donut_resource_pad11
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad11
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad11
-NO DOC BLOCK: android.R.id Field donut_resource_pad11
-NO DOC BLOCK: android.R.integer Field donut_resource_pad11
-NO DOC BLOCK: android.R.layout Field donut_resource_pad11
-NO DOC BLOCK: android.R.string Field donut_resource_pad11
-NO DOC BLOCK: android.R.style Field donut_resource_pad11
-NO DOC BLOCK: android.R.anim Field donut_resource_pad12
-NO DOC BLOCK: android.R.array Field donut_resource_pad12
-NO DOC BLOCK: android.R.attr Field donut_resource_pad12
-NO DOC BLOCK: android.R.color Field donut_resource_pad12
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad12
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad12
-NO DOC BLOCK: android.R.id Field donut_resource_pad12
-NO DOC BLOCK: android.R.integer Field donut_resource_pad12
-NO DOC BLOCK: android.R.layout Field donut_resource_pad12
-NO DOC BLOCK: android.R.string Field donut_resource_pad12
-NO DOC BLOCK: android.R.style Field donut_resource_pad12
-NO DOC BLOCK: android.R.anim Field donut_resource_pad13
-NO DOC BLOCK: android.R.attr Field donut_resource_pad13
-NO DOC BLOCK: android.R.color Field donut_resource_pad13
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad13
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad13
-NO DOC BLOCK: android.R.id Field donut_resource_pad13
-NO DOC BLOCK: android.R.integer Field donut_resource_pad13
-NO DOC BLOCK: android.R.layout Field donut_resource_pad13
-NO DOC BLOCK: android.R.string Field donut_resource_pad13
-NO DOC BLOCK: android.R.style Field donut_resource_pad13
-NO DOC BLOCK: android.R.anim Field donut_resource_pad14
-NO DOC BLOCK: android.R.attr Field donut_resource_pad14
-NO DOC BLOCK: android.R.color Field donut_resource_pad14
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad14
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad14
-NO DOC BLOCK: android.R.id Field donut_resource_pad14
-NO DOC BLOCK: android.R.integer Field donut_resource_pad14
-NO DOC BLOCK: android.R.string Field donut_resource_pad14
-NO DOC BLOCK: android.R.style Field donut_resource_pad14
-NO DOC BLOCK: android.R.anim Field donut_resource_pad15
-NO DOC BLOCK: android.R.attr Field donut_resource_pad15
-NO DOC BLOCK: android.R.color Field donut_resource_pad15
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad15
-NO DOC BLOCK: android.R.id Field donut_resource_pad15
-NO DOC BLOCK: android.R.string Field donut_resource_pad15
-NO DOC BLOCK: android.R.style Field donut_resource_pad15
-NO DOC BLOCK: android.R.anim Field donut_resource_pad16
-NO DOC BLOCK: android.R.attr Field donut_resource_pad16
-NO DOC BLOCK: android.R.color Field donut_resource_pad16
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad16
-NO DOC BLOCK: android.R.id Field donut_resource_pad16
-NO DOC BLOCK: android.R.string Field donut_resource_pad16
-NO DOC BLOCK: android.R.style Field donut_resource_pad16
-NO DOC BLOCK: android.R.anim Field donut_resource_pad17
-NO DOC BLOCK: android.R.attr Field donut_resource_pad17
-NO DOC BLOCK: android.R.color Field donut_resource_pad17
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad17
-NO DOC BLOCK: android.R.id Field donut_resource_pad17
-NO DOC BLOCK: android.R.string Field donut_resource_pad17
-NO DOC BLOCK: android.R.style Field donut_resource_pad17
-NO DOC BLOCK: android.R.anim Field donut_resource_pad18
-NO DOC BLOCK: android.R.attr Field donut_resource_pad18
-NO DOC BLOCK: android.R.color Field donut_resource_pad18
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad18
-NO DOC BLOCK: android.R.id Field donut_resource_pad18
-NO DOC BLOCK: android.R.string Field donut_resource_pad18
-NO DOC BLOCK: android.R.style Field donut_resource_pad18
-NO DOC BLOCK: android.R.anim Field donut_resource_pad19
-NO DOC BLOCK: android.R.color Field donut_resource_pad19
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad19
-NO DOC BLOCK: android.R.id Field donut_resource_pad19
-NO DOC BLOCK: android.R.string Field donut_resource_pad19
-NO DOC BLOCK: android.R.style Field donut_resource_pad19
-NO DOC BLOCK: android.R.anim Field donut_resource_pad2
-NO DOC BLOCK: android.R.array Field donut_resource_pad2
-NO DOC BLOCK: android.R.attr Field donut_resource_pad2
-NO DOC BLOCK: android.R.color Field donut_resource_pad2
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad2
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad2
-NO DOC BLOCK: android.R.id Field donut_resource_pad2
-NO DOC BLOCK: android.R.integer Field donut_resource_pad2
-NO DOC BLOCK: android.R.layout Field donut_resource_pad2
-NO DOC BLOCK: android.R.string Field donut_resource_pad2
-NO DOC BLOCK: android.R.style Field donut_resource_pad2
-NO DOC BLOCK: android.R.anim Field donut_resource_pad20
-NO DOC BLOCK: android.R.color Field donut_resource_pad20
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad20
-NO DOC BLOCK: android.R.id Field donut_resource_pad20
-NO DOC BLOCK: android.R.string Field donut_resource_pad20
-NO DOC BLOCK: android.R.anim Field donut_resource_pad21
-NO DOC BLOCK: android.R.color Field donut_resource_pad21
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad21
-NO DOC BLOCK: android.R.id Field donut_resource_pad21
-NO DOC BLOCK: android.R.string Field donut_resource_pad21
-NO DOC BLOCK: android.R.color Field donut_resource_pad22
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad22
-NO DOC BLOCK: android.R.id Field donut_resource_pad22
-NO DOC BLOCK: android.R.string Field donut_resource_pad22
-NO DOC BLOCK: android.R.color Field donut_resource_pad23
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad23
-NO DOC BLOCK: android.R.string Field donut_resource_pad23
-NO DOC BLOCK: android.R.color Field donut_resource_pad24
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad24
-NO DOC BLOCK: android.R.string Field donut_resource_pad24
-NO DOC BLOCK: android.R.color Field donut_resource_pad25
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad25
-NO DOC BLOCK: android.R.string Field donut_resource_pad25
-NO DOC BLOCK: android.R.color Field donut_resource_pad26
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad26
-NO DOC BLOCK: android.R.string Field donut_resource_pad26
-NO DOC BLOCK: android.R.color Field donut_resource_pad27
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad27
-NO DOC BLOCK: android.R.string Field donut_resource_pad27
-NO DOC BLOCK: android.R.color Field donut_resource_pad28
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad28
-NO DOC BLOCK: android.R.color Field donut_resource_pad29
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad29
-NO DOC BLOCK: android.R.anim Field donut_resource_pad3
-NO DOC BLOCK: android.R.array Field donut_resource_pad3
-NO DOC BLOCK: android.R.attr Field donut_resource_pad3
-NO DOC BLOCK: android.R.color Field donut_resource_pad3
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad3
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad3
-NO DOC BLOCK: android.R.id Field donut_resource_pad3
-NO DOC BLOCK: android.R.integer Field donut_resource_pad3
-NO DOC BLOCK: android.R.layout Field donut_resource_pad3
-NO DOC BLOCK: android.R.string Field donut_resource_pad3
-NO DOC BLOCK: android.R.style Field donut_resource_pad3
-NO DOC BLOCK: android.R.color Field donut_resource_pad30
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad30
-NO DOC BLOCK: android.R.color Field donut_resource_pad31
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad31
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad32
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad33
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad34
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad35
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad36
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad37
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad38
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad39
-NO DOC BLOCK: android.R.anim Field donut_resource_pad4
-NO DOC BLOCK: android.R.array Field donut_resource_pad4
-NO DOC BLOCK: android.R.attr Field donut_resource_pad4
-NO DOC BLOCK: android.R.color Field donut_resource_pad4
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad4
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad4
-NO DOC BLOCK: android.R.id Field donut_resource_pad4
-NO DOC BLOCK: android.R.integer Field donut_resource_pad4
-NO DOC BLOCK: android.R.layout Field donut_resource_pad4
-NO DOC BLOCK: android.R.string Field donut_resource_pad4
-NO DOC BLOCK: android.R.style Field donut_resource_pad4
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad40
-NO DOC BLOCK: android.R.anim Field donut_resource_pad5
-NO DOC BLOCK: android.R.array Field donut_resource_pad5
-NO DOC BLOCK: android.R.attr Field donut_resource_pad5
-NO DOC BLOCK: android.R.color Field donut_resource_pad5
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad5
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad5
-NO DOC BLOCK: android.R.id Field donut_resource_pad5
-NO DOC BLOCK: android.R.integer Field donut_resource_pad5
-NO DOC BLOCK: android.R.layout Field donut_resource_pad5
-NO DOC BLOCK: android.R.string Field donut_resource_pad5
-NO DOC BLOCK: android.R.style Field donut_resource_pad5
-NO DOC BLOCK: android.R.anim Field donut_resource_pad6
-NO DOC BLOCK: android.R.array Field donut_resource_pad6
-NO DOC BLOCK: android.R.attr Field donut_resource_pad6
-NO DOC BLOCK: android.R.color Field donut_resource_pad6
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad6
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad6
-NO DOC BLOCK: android.R.id Field donut_resource_pad6
-NO DOC BLOCK: android.R.integer Field donut_resource_pad6
-NO DOC BLOCK: android.R.layout Field donut_resource_pad6
-NO DOC BLOCK: android.R.string Field donut_resource_pad6
-NO DOC BLOCK: android.R.style Field donut_resource_pad6
-NO DOC BLOCK: android.R.anim Field donut_resource_pad7
-NO DOC BLOCK: android.R.array Field donut_resource_pad7
-NO DOC BLOCK: android.R.attr Field donut_resource_pad7
-NO DOC BLOCK: android.R.color Field donut_resource_pad7
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad7
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad7
-NO DOC BLOCK: android.R.id Field donut_resource_pad7
-NO DOC BLOCK: android.R.integer Field donut_resource_pad7
-NO DOC BLOCK: android.R.layout Field donut_resource_pad7
-NO DOC BLOCK: android.R.string Field donut_resource_pad7
-NO DOC BLOCK: android.R.style Field donut_resource_pad7
-NO DOC BLOCK: android.R.anim Field donut_resource_pad8
-NO DOC BLOCK: android.R.array Field donut_resource_pad8
-NO DOC BLOCK: android.R.attr Field donut_resource_pad8
-NO DOC BLOCK: android.R.color Field donut_resource_pad8
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad8
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad8
-NO DOC BLOCK: android.R.id Field donut_resource_pad8
-NO DOC BLOCK: android.R.integer Field donut_resource_pad8
-NO DOC BLOCK: android.R.layout Field donut_resource_pad8
-NO DOC BLOCK: android.R.string Field donut_resource_pad8
-NO DOC BLOCK: android.R.style Field donut_resource_pad8
-NO DOC BLOCK: android.R.anim Field donut_resource_pad9
-NO DOC BLOCK: android.R.array Field donut_resource_pad9
-NO DOC BLOCK: android.R.attr Field donut_resource_pad9
-NO DOC BLOCK: android.R.color Field donut_resource_pad9
-NO DOC BLOCK: android.R.dimen Field donut_resource_pad9
-NO DOC BLOCK: android.R.drawable Field donut_resource_pad9
-NO DOC BLOCK: android.R.id Field donut_resource_pad9
-NO DOC BLOCK: android.R.integer Field donut_resource_pad9
-NO DOC BLOCK: android.R.layout Field donut_resource_pad9
-NO DOC BLOCK: android.R.string Field donut_resource_pad9
-NO DOC BLOCK: android.R.style Field donut_resource_pad9
NO DOC BLOCK: android.R.attr Field dropDownHeight
NO DOC BLOCK: android.provider.Settings.Secure Field ENABLED_ACCESSIBILITY_SERVICES
NO DOC BLOCK: android.R.attr Field eventsInterceptionEnabled
diff --git a/docs/html/sdk/api_diff/4/user_comments_for_3_to_Donut.xml b/docs/html/sdk/api_diff/4/user_comments_for_3_to_4.xml
similarity index 71%
rename from docs/html/sdk/api_diff/4/user_comments_for_3_to_Donut.xml
rename to docs/html/sdk/api_diff/4/user_comments_for_3_to_4.xml
index 5bbe945..b0aba96 100644
--- a/docs/html/sdk/api_diff/4/user_comments_for_3_to_Donut.xml
+++ b/docs/html/sdk/api_diff/4/user_comments_for_3_to_4.xml
@@ -2,7 +2,7 @@
<comments
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='comments.xsd'
- name="3_to_Donut"
+ name="3_to_4"
jdversion="1.1.0">
<!-- Use this file to enter an API change description. For example, when you remove a class,
@@ -130,132 +130,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.anim.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.anim.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.anim.linear_interpolator"/>
<text>
InsertCommentsHere
@@ -268,84 +142,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.array"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.array.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.attr"/>
<text>
InsertCommentsHere
@@ -382,114 +178,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.attr.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.attr.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.attr.dropDownHeight"/>
<text>
InsertCommentsHere
@@ -676,534 +364,12 @@
</text>
</comment>
<comment>
- <identifier id="android.R.color"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad23"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad24"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad25"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad26"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad27"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad28"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad29"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad30"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad31"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.color.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.dimen.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.drawable"/>
<text>
InsertCommentsHere
</text>
</comment>
<comment>
- <identifier id="android.R.drawable.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad23"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad24"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad25"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad26"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad27"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad28"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad29"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad30"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad31"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad32"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad33"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad34"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad35"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad36"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad37"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad38"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad39"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad40"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.drawable.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.drawable.stat_sys_vp_phone_call"/>
<text>
InsertCommentsHere
@@ -1216,486 +382,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.id"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.id.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.integer.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.layout.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad20"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad21"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad22"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad23"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad24"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad25"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad26"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad27"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.string.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.R.style"/>
<text>
InsertCommentsHere
@@ -1720,120 +406,6 @@
</text>
</comment>
<comment>
- <identifier id="android.R.style.donut_resource_pad1"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad10"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad11"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad12"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad13"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad14"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad15"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad16"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad17"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad18"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad19"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad2"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad3"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad4"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad5"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad6"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad7"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad8"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
- <identifier id="android.R.style.donut_resource_pad9"/>
- <text>
- InsertCommentsHere
- </text>
-</comment>
-<comment>
<identifier id="android.accessibilityservice"/>
<text>
InsertCommentsHere
@@ -4564,6 +3136,18 @@
</text>
</comment>
<comment>
+ <identifier id="android.widget.ZoomButtonsController"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
+ <identifier id="android.widget.ZoomButtonsController.OnZoomListener"/>
+ <text>
+ InsertCommentsHere
+ </text>
+</comment>
+<comment>
<identifier id="java.lang"/>
<text>
InsertCommentsHere
diff --git a/docs/html/sdk/preview/features.jd b/docs/html/sdk/preview/features.jd
new file mode 100644
index 0000000..81b4ff6
--- /dev/null
+++ b/docs/html/sdk/preview/features.jd
@@ -0,0 +1,4 @@
+sdk.redirect=true
+
+@jd:body
+
diff --git a/docs/html/sdk/preview/index.jd b/docs/html/sdk/preview/index.jd
index a6a6ca2..81b4ff6 100644
--- a/docs/html/sdk/preview/index.jd
+++ b/docs/html/sdk/preview/index.jd
@@ -1,194 +1,4 @@
-page.title=Android 1.6 Early Look SDK
-sdk.redirect=0
-sdk.version=1.6
-sdk.preview=true
-
-sdk.date=August 2009
-
-sdk.win_download=android-sdk-windows-1.5_r3.zip
-sdk.win_bytes=191477853
-sdk.win_checksum=1725fd6963ce69102ba7192568dfc711
-
-sdk.mac_download=android-sdk-mac_x86-1.5_r3.zip
-sdk.mac_bytes=183024673
-sdk.mac_checksum=b1bafdaefdcec89a14b604b504e7daec
-
-sdk.linux_download=android-sdk-linux_x86-1.5_r3.zip
-sdk.linux_bytes=178117561
-sdk.linux_checksum=350d0211678ced38da926b8c9ffa4fac
-
-adt.zip_download=ADT-0.9.2.zip
-adt.zip_version=0.9.2
-adt.zip_bytes=178117561
-adt.zip_checksum=350d0211678ced38da926b8c9ffa4fac
+sdk.redirect=true
@jd:body
-<h2 id="overview">SDK Overview</h2>
-
-<p>This Early Look SDK provides the tools, libraries, and system images that you need to start developing and testing applications on the next version of the Android platform — Android 1.6.</p>
-
-<p>The sections below provide information about the contents of the SDK, as well as any applicable release notes.</p>
-
-<p>This Early Look SDK is provided for development and testing purposes only. You can use it to get familiar with the new Android 1.6 framework APIs and the UI and features of the Android 1.6 system, and you can use it to begin testing your existing applications with the new API and system. However, this SDK is not suitable for compiling applications for deployment to Android-powered devices running the Android 1.6 platform, when such devices are available. For more information, see <a href="#provisional">Framework API and Provisional API Level</a>. </p>
-
-<p>The sections below provide information about the contents of the SDK, as well as any applicable release notes.</p>
-
-<p class="note"><strong>Note:</strong> This is an <em>early look SDK only</em>.
-The tools and documentation are not complete. The API reference documentation for the early look
-SDK is provided only in the downloadable SDK package — documentation for this early
-look release is <em>not</em> available at <a href="http://developer.android.com">http://developer.android.com</a>.
-To access the API reference for the early
-look SDK, see the documentation in your SDK's <em>docs/reference/</em> directory.
-<br/><br/>
-Additionally, note that the APIs provided in this SDK are subject to change until the final
-Android 1.6 SDK is released. You should not compile any applications for distribution using
-this version of the SDK. If you do so, your applications will not function properly when deployed
-to Android-powered devices running the final Android 1.6 platform. Please wait for the final
-Android 1.6 SDK before distributing applications built on the Android 1.6 system image.
-</p>
-
-<h3 id="provisional">Framework API and Provisional API Level</h3>
-
-<p>This SDK gives you early access to the framework API that will be offered in Android 1.6. However, at the time of this release, The API specification for Android 1.6 was not yet final, meaning that it is possible that the API could change before the final release of the Android 1.6 platform. </p>
-
-<p>To help distinguish the API offered in the Early Look SDK from that of the final Android 1.6 platform, this SDK assigns a provisional API Level identifier — <strong>Donut</strong> — to its Early Look framework API. When the Android 1.6 framework API specification is final, the API Level identifier will change to <strong>4</strong> and the "Donut" identifier will no longer be supported. </p>
-
-<p>The "Donut" framework API is for development only and is not supported as a platform for compiling applications for deployment or publishing. The API Level of "Donut" will not be supported by any Android-powered devices in the field, including those running the Android 1.6 platform. This means that when the final Android 1.6 platform is released, you will need to change your application's <code>android:minSdkVersion</code> manifest attribute to reference the API Level of "4", rather than "Donut", if your application is using Android 1.6 APIs. You would then need to recompile your application before publishing it. </p>
-
-<p>The use of a provisional API Level in this SDK is designed to protect developers and device users from inadvertently publishing or installing applications based on the Early Look framework API, which may not run properly on actual devices running Android 1.6.</p>
-
-<p>To develop using the Early Look framework API, you must reference an API Level of "Donut" in your application's manifest. </p>
-
-<p>Specifically, you must define a <code>android:minSdkVersion</code>
-attribute in a <code><uses-sdk></code> element as a child of
-<code><manifest></code> in the manifest file. When set, the
-attribute looks like this: </p>
-
-<pre><manifest>
- ...
- <uses-sdk android:minSdkVersion="Donut" />
- ...
-</manifest></pre>
-
-<p>If you are developing in Eclipse with ADT, please read the next section for information about the ADT upgrade that supports the Early Look SDK's provisional API Level. </p>
-
-
-<h3>ADT Plugin for Eclipse</h3>
-
-<p>An updated version of the ADT Plugin for Eclipse is available in connection with the Android 1.6 Early Look SDK. The new version, ADT 0.9.2, provides support for the provisional API Level "Donut" that is offered in the Early Look SDK and includes several new features and improvements. These changes mean that this Early Look SDK does not work with older Eclipse plugins (ADT 0.9.1).</li>
-
-<p>If you are developing in Eclipse with ADT and want to get started with Android 1.6 Early Look SDK, you <em>must</em> download and install the correct version of the ADT Plugin (0.9.2 or higher). </p>
-
-<p>The new version of ADT is downloadable from the usual remote update site or is separately downloadable as a .zip archive. For instructions on how to download the plugin, please see <a href="upgrading.html#UpdateAdt">Upgrading Your Eclipse Plugin</a>. </p>
-
-<h3>Android AVD Manager</h3>
-
-<p>The SDK offers a new tool called Android AVD Manager that lets you manage your AVDs more efficiently. For example, you can quickly create new AVDs, manage their properties, and run a target AVD from a single window.
-
-If you are developing in Eclipse with ADT, you can access the Android AVD Manager from the <strong>Window</strong> menu. </p>
-
-If you are developing in another IDE, you can access the AVD manager capabilities through the <code>android</code> command-line tool, located in the <sdk>/tools directory. You can launch the tool with a graphical UI by using the <code>android</code> command without specifying any options. The command-line version of the tool is also still available.</p>
-
-<h3>SDK Component Updater</h3>
-
-<p>This SDK includes a new SDK Component Updater tool that lets you download updated versions of SDK components individually into your environment, as soon as they become available. </p>
-
-<p>The Updater provides a graphical UI that lets you quickly check what Android platforms, add-ons, extras, and documentation packages are available in your SDK environment, what their versions are, and whether updated versions are available. Using the Updater, you can download one or more items from the remote repository and install them directly in your SDK environment. For example, the updater lets you receive updates to SDK tools incrementally, as they are made available, without having to wait for the next SDK release. </p>
-
-<p>To access the Updater, use the <code>android</code> command-line tool, located in the <sdk>/tools directory. You can launch the Updater by using the <code>android</code> command without specifying any options. </p>
-
-<p>In ADT, it you can also access the Updater through the Android AVD Manager tool. </p>
-
-<h3>Support for Test Packages in New Project Wizard</h3>
-
-<p>The New Project Wizard available in the ADT 0.9.2 now lets you add a test package containing JUnit or other classes of tests while you are creating or importing a new Android application project. </p>
-
-
-<h3>Other Notes and Resolved Issues</h3>
-
-<ul>
-<li>This SDK release adds support for Eclipse 3.5 (Galileo) and no longer formally supports Eclipse 3.3 (Europa). </li>
-<li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK only) has been fixed.</li>
-</ul>
-
-<h2>SDK Contents</h2>
-
-<h4>Development tools</h4>
-
-<p>The SDK includes a full set of tools for developing and debugging application code and designing an application UI. You can read about the tools in the
-<a href="{@docRoot}guide/developing/tools/index.html">Dev Guide</a> and access them in the <code><sdk>/tools/</code> directory.
-
-<p>The tools package in this SDK includes updates from those provided in the previous SDK. The tools use the same project structure as in the previous SDK (Android 1.5), but have been updated to support the the provisional API Level identifier "donut". If you have application projects developed in the Android 1.5 SDK, you can migrate them to the latest SDK without modification. For more information about how to migrate, see <a href="upgrading.html">Upgrading the SDK</a>.
-
-<p>For more information about the new tools features, see the <a href="#overview">SDK Overview</a> section above.
-
-<h4 id="system_images">Android Platforms</h4>
-
-<p>This SDK includes multiple Android platform versions that you can use to develop applications. For each version, both a fully compliant Android library and system image are provided. The table below lists the platform versions included in this SDK. For more information about a platform version — features, applications included, localizations, API changes, and so on — see its Version Notes. </p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Platform</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.6 Early Look (Android Donut)</nobr></td>
-<td width="5%">Donut</td>
-<td width="5%"></td>
-<td>Includes an Early Look Android 1.6 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-<tr>
-<td width="5%"><nobr>Android 1.5</nobr></td>
-<td width="5%">3</td>
-<td width="5%"><nobr><a href="{@docRoot}sdk/android-1.5.html">Version Notes</a></nobr></td>
-<td>Includes a standard Android 1.5 library and system image with a set of development applications. Does not include any external libraries (such as the Maps external library).</td>
-</tr>
-</table>
-
-<h4 id="system_images">SDK Add-Ons</h4>
-
-<p>An SDK add-on provides a development environment for an Android external library or a customized (but fully compliant) Android system image. This SDK includes the SDK add-on listed below. The Android system API Level required by the add-on is noted.</p>
-
-<table style="margin-right:1em;" width="80%">
-<tr>
-<th><nobr>Add-On</nobr></th><th><nobr>API Level</nobr></th><th>Notes</th><th>Description</th>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td width="5%">Donut</td>
-<td width="5%"> </td>
-<td>Includes the com.google.android.maps external library, an Early Look
-Android 1.6 system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-<tr>
-<td width="5%"><nobr>Google APIs</nobr></td>
-<td width="5%">3</td>
-<td width="5%"> </td>
-<td>Includes the com.google.android.maps external library, a compliant
-system image, a {@link android.location.Geocoder Geocoder}
-backend service implementation, documentation, and sample code. </td>
-</tr>
-</table>
-
-<h4>Sample Code and Applications</h4>
-
-<p>You can look at a variety of tutorials and samples in the <a href="{@docRoot}guide/samples/index.html">Dev Guide</a> and access the sample code itself
-in the <code><sdk>/platforms/<platform>/samples/</code> directory of the SDK package. Note the new location — the SDK now includes multiple platform versions that you can develop against and each has its own sample code directory. </p>
-
-<p>For example, to view or build the samples available for the Android
-1.6 Early Look platform (AVD target "Android Donut"), you will find the samples in the <code><sdk>/platforms/android-Donut/samples/</code> directory of the SDK package. </p>
-
-<h4>Documentation</h4>
-
-<p>The SDK package includes a full set of local documentation. To view it, open the <code><sdk>/documentation.html</code> file in a web browser. If you are developing in an IDE such as Eclipse, you can also view the reference documentation directly in the IDE. </p>
-
-
-<hr/>
-
-<div class="special">
-<p>Feedback on this preview SDK is welcome on the public Android Open Source forums:</p>
-<p style="margin-left:2em;"><a href="http://source.android.com/discuss">http://source.android.com/discuss</a></p>
-</div>
-
-
diff --git a/docs/html/sdk/preview/installing.jd b/docs/html/sdk/preview/installing.jd
index 05e7ab5..1e6b26b 100644
--- a/docs/html/sdk/preview/installing.jd
+++ b/docs/html/sdk/preview/installing.jd
@@ -1,346 +1,5 @@
-page.title=Installing the Android SDK
-sdk.version=1.6
-sdk.preview=true
-sdk.date=August 2009
+sdk.redirect=true
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
-
- <h2>In this document</h2>
- <ol>
- <li><a href="#Preparing">Preparing for Installation</a></li>
- <li><a href="#Installing">Installing the SDK</a></li>
- <li><a href="#InstallingADT">Installing the ADT Plugin for Eclipse</a>
- <ol>
- <li><a href="#Troubleshooting">Troubleshooting ADT Installation</a></li>
- </ol>
- </li>
- <li><a href="#NextSteps">Next Steps</a></li>
- <li><a href="#InstallationNotes">Installation Notes</a></li>
- </ol>
-
-</div>
-</div>
-
-<p>This page describes how to install the Android Early Look SDK and set up your
-development environment.</p>
-
-<p>If you encounter any problems during installation, see the
-<a href="#InstallationNotes">Installation Notes</a> at the bottom of
-this page.</p>
-
-<h4 style="margin-top">Upgrading?</h4>
-<p>If you have already developed applications using an earlier version
-of the Android SDK, please read <a href="upgrading.html">Upgrading the SDK</a>, instead.
-</p>
-
-
-<h2 id="Preparing">Preparing for Installation</h2>
-
-<p>Before you begin, take a moment to confirm that your development machine meets the
-<a href="requirements.html">System Requirements</a>.
-</p>
-
-<p>If you will be developing on Eclipse with the Android Development
-Tools (ADT) Plugin — the recommended path if you are new to
-Android — make sure that you have a suitable version of Eclipse
-installed on your computer (3.4 or newer is recommended). If you need to install Eclipse, you can
-download it from this location: </p>
-
-<p style="margin-left:2em;"><a href=
-"http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a
-></p>
-
-<p>A Java or RCP version of Eclipse is recommended. </p>
-
-<h2 id="Installing">Installing the SDK</h2>
-
-<p>Unpack the Android SDK .zip archive to a suitable location on your machine.
-By default, the SDK files are unpacked into a directory named
-<code>android_sdk_<em><platform</em>>_<em><release></em></code>.
-The directory contains a local copy of the documentation (accessible by opening
-<code>documentation.html</code> in your browser) and the subdirectories
-<code>tools/</code>, <code>add-ons/</code>, <code>platforms/</code>, and others. Inside
-each subdirectory of <code>platforms/</code> you'll find <code>samples/</code>, which includes
-code samples that are specific to each version of the platform.</p>
-
-<p>Make a note of the name and location of the unpacked SDK directory on your system — you
-will need to refer to the SDK directory later, when setting up the Android plugin or when
-using the SDK tools.</p>
-
-<p>Optionally, you may want to add the location of the SDK's primary <code>tools</code> directory
-to your system <code>PATH</code>. The primary <code>tools/</code> directory is located at the root of the
-SDK folder. Adding <code>tools</code> to your path lets you run Android Debug Bridge (adb) and
-the other command line <a href="{@docRoot}guide/developing/tools/index.html">tools</a> without
-needing to supply the full path to the tools directory. </p>
-<ul>
- <li>On Linux, edit your <code>~/.bash_profile</code> or <code>~/.bashrc</code> file. Look
- for a line that sets the PATH environment variable and add the
- full path to the <code>tools/</code> directory to it. If you don't
- see a line setting the path, you can add one:</li>
-
- <ul><code>export PATH=${PATH}:<em><your_sdk_dir></em>/tools</code></ul>
-
- <li>On a Mac, look in your home directory for <code>.bash_profile</code> and
- proceed as for Linux. You can create the <code>.bash_profile</code> if
- you haven't already set one up on your machine. </li>
-
- <li>On Windows, right-click on My Computer, and select Properties.
- Under the Advanced tab, hit the Environment Variables button, and in the
- dialog that comes up, double-click on Path (under System Variables). Add the full path to the
- <code>tools/</code> directory to the path. </li>
- </ul>
-
-<p>Note that, if you update your SDK in the future, you
-should remember to update your <code>PATH</code> settings to point to the new location, if different.</p>
-
-<p>If you will be using the Eclipse IDE as your development environment,
-the next section describes how to install the Android Development Tools (ADT) plugin and set up Eclipse.
-If you choose not to use Eclipse, you can
-develop Android applications in an IDE of your choice and then compile, debug and deploy using
-the tools included in the SDK (skip to <a href="#NextSteps">Next Steps</a>).</p>
-
-
-<h2 id="InstallingADT">Installing the ADT Plugin for Eclipse</h2>
-
-<p>Android offers a custom plugin for the Eclipse IDE, called Android
-Development Tools (ADT), that is designed to give you a powerful,
-integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
-projects, create an application UI, add components based on the Android
-Framework API, debug your applications using the Android SDK tools, and even export
-signed (or unsigned) APKs in order to distribute your application.</p>
-
-<p>In general, using Eclipse with ADT is a highly recommended
-approach to Android development and is the fastest way to get started.
-(If you prefer to work in an IDE other than Eclipse,
-you do not need to install Eclipse or ADT, instead, you can directly
-use the SDK tools to build and debug your application—skip to <a href="#NextSteps">Next Steps</a>.)</p>
-
-<p>Once you have Eclipse installed, as described in <a href="#Preparing">Preparing for
-Installation</a>, follow the steps below to
-download the ADT plugin and install it in your respective Eclipse
-environment. </p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="45%">
-<!-- 3.3 steps -->
-<ol>
- <li>Start Eclipse, then select <strong>Help</strong> > <strong>Software Updates</strong>
-> <strong>Find and Install...</strong>. </li>
- <li>In the dialog that appears, select <strong>Search for new features to install</strong>
-and click <strong>Next</strong>. </li>
- <li>Click <strong>New Remote Site</strong>. </li>
- <li>In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and
- enter the URL:
- <pre>https://dl-ssl.google.com/android/eclipse/</pre>
- <p>If you have trouble aqcuiring the plugin, try using "http" in the URL,
- instead of "https" (https is preferred for security reasons).</p>
- <p>Click <strong>OK</strong>.</p> </li>
- <li>You should now see the new site added to the search list (and checked).
- Click <strong>Finish</strong>. </li>
- <li>In the subsequent Search Results dialog box, select the checkbox for the
- "Android Plugin".
- This will select the nested tools: "Android DDMS" and "Android Development Tools".
- Click <strong>Next</strong>.</li>
- <li>Read and accept the license agreement, then click <strong>Next</strong>. </li>
- <li>On the following Installation window, click <strong>Finish</strong>. </li>
- <li>The ADT plugin is not digitally signed. Accept the installation anyway
- by clicking <strong>Install All</strong>. </li>
- <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-<td>
-
-<!-- 3.4 steps -->
-<ol>
- <li>Start Eclipse, then select <strong>Help</strong> > <strong>Software Updates...</strong>.</li>
- <li>In the dialog that appears, click the <strong>Available Software</strong> tab. </li>
- <li>Click <strong>Add Site...</strong> </li>
- <li>Enter the Location:
- <pre>https://dl-ssl.google.com/android/eclipse/</pre>
- <p>If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
- instead of "https" (https is preferred for security reasons).</p>
- <p>Click <strong>OK</strong>.</p></li>
- <li>Back in the Available Software view, you should see the plugin listed by the URL,
- with "Developer Tools" nested within it. Select the checkbox next to
- Developer Tools and click <strong>Install...</strong></li>
- <li>On the subsequent Install window, "Android DDMS" and "Android Development Tools"
- should both be checked. Click <strong>Next</strong>. </li>
- <li>Read and accept the license agreement, then click <strong>Finish</strong>.</li>
- <li>Restart Eclipse. </li>
-</ol>
-
-</td>
-</tr>
-</table>
-
-<p>Now modify your Eclipse preferences to point to the Android SDK directory:</p>
-<ol>
- <li>Select <strong>Window</strong> > <strong>Preferences...</strong> to open the Preferences
- panel (Mac: <strong>Eclipse</strong> > <strong>Preferences</strong>).</li>
- <li>Select <strong>Android</strong> from the left panel. </li>
- <li>For the <em>SDK Location</em> in the main panel, click <strong>Browse...</strong> and
-locate your downloaded SDK directory. </li>
- <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-<p>Done! If you haven't encountered any problems, then you're ready to
-begin developing Android applications. See the
-<a href="#NextSteps">Next Steps</a> section for suggestions on how to start. </p>
-
-
-<h3 id="Troubleshooting">Troubleshooting ADT Installation</h3>
-<p>
-If you are having trouble downloading the ADT plugin after following the steps above, here are
-some suggestions: </p>
-
-<ul>
- <li>If Eclipse can not find the remote update site containing the ADT plugin, try changing
- the remote site URL to use http, rather than https. That is, set the Location for the remote site to:
- <pre>http://dl-ssl.google.com/android/eclipse/</pre></li>
- <li>If you are behind a firewall (such as a corporate firewall), make
- sure that you have properly configured your proxy settings in Eclipse.
- In Eclipse 3.3/3.4, you can configure proxy information from the main
- Eclipse menu in <strong>Window</strong> (on Mac, <strong>Eclipse</strong>) >
- <strong>Preferences</strong> > <strong>General</strong> >
- <strong>Network Connections</strong>.</li>
-</ul>
-<p>
-If you are still unable to use Eclipse to download the ADT plugin as a remote update site, you
-can download the ADT zip file to your local machine and manually install the it:
-</p>
-<ol>
- <li><a href="http://developer.android.com/sdk/preview/index.html">Download the ADT Plugin zip file</a> (do not unpack it).</li>
- <li>Follow steps 1 and 2 in the default install instructions (above).</li>
- <li>In Eclipse 3.3, click <strong>New Archive Site...</strong>. <br/>
- In Eclipse 3.4, click <strong>Add Site...</strong>, then <strong>Archive...</strong></li>
- <li>Browse and select the downloaded zip file.</li>
- <li>Follow the remaining procedures, above, starting from steps 5.</li>
-</ol>
-<p>To update your plugin once you've installed using the zip file, you will have to
-follow these steps again instead of the default update instructions.</p>
-
-<h4>Other install errors</h4>
-
-<p>Note that there are features of ADT that require some optional
-Eclipse components (for example, WST). If you encounter an error when
-installing ADT, your Eclipse installion might not include these components.
-For information about how to quickly add the necessary components to your
-Eclipse installation, see the troubleshooting topic
-<a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT
-Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
-
-<h4>For Linux users</h4>
-<p>If you encounter this error when installing the ADT Plugin for Eclipse:
-<pre>
-An error occurred during provisioning.
-Cannot connect to keystore.
-JKS</pre>
-<p>
-...then your development machine lacks a suitable Java VM. Installing Sun
-Java 6 will resolve this issue and you can then reinstall the ADT
-Plugin.</p>
-
-
-<h2 id="NextSteps">Next Steps</h2>
-<p>Once you have completed installation, you are ready to
-begin developing applications. Here are a few ways you can get started: </p>
-
-<p><strong>Learn about Android</strong></p>
-<ul>
- <li>Take a look at the <a href="{@docRoot}guide/index.html">Dev
- Guide</a> and the types of information it provides</li>
- <li>Read an introduction to Android as a platform in <a
- href="{@docRoot}guide/basics/what-is-android.html">What is
- Android?</a></li>
- <li>Learn about the Android framework and how applications run on it in
- <a href="{@docRoot}guide/topics/fundamentals.html">Application
- Fundamentals</a></li>
- <li>Take a look at the Android framework API specification in the <a
- href="{@docRoot}reference/packages.html">Reference</a> tab</li>
-</ul>
-
-<p><strong>Explore the SDK</strong></p>
-<ul>
- <li>Get an overview of the <a
- href="{@docRoot}guide/developing/tools/index.html">development
- tools</a> that are available to you</li>
- <li>Read how to develop <a
- href="{@docRoot}guide/developing/eclipse-adt.html">in Eclipse/ADT</a> or
- <a href="{@docRoot}guide/developing/other-ide.html">in other IDEs</a>
- </li>
-</ul>
-
-<p><strong>Explore some code</strong></p>
-<ul>
- <li>Set up a <a href="{@docRoot}guide/tutorials/hello-world.html">Hello
- World application</a> (highly recommended, especially for Eclipse users)</li>
- <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
- Notepad Tutorial</a> to build a full Android application </li>
- <li>Create a new project for one of the other sample applications
- included in <code><em><sdk></em>/platforms/<em><platfrom></em>/samples</code>,
- then compile and run it in your development environment</li>
-</ul>
-
-<p><strong>Visit the Android developer groups</strong></p>
-<ul>
- <li>Take a look at the <a
- href="{@docRoot}community/index.html">Community</a> tab to see a list of
- Android developers groups. In particular, you might want to look at the
- <a href="http://groups.google.com/group/android-developers">Android
- Developers</a> group to get a sense for what the Android developer
- community is like.</li>
-</ul>
-
-
-<h2 id="InstallationNotes">Installation Notes</h2>
-
-<h3>Ubuntu Linux Notes</h3>
-
-<ul>
- <li>If you need help installing and configuring Java on your
- development machine, you might find these resources helpful:
- <ul>
- <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/Java </a></li>
- <li><a href="https://help.ubuntu.com/community/Java">https://help.ubuntu.com/community/JavaInstallation</a></li>
- </ul>
- </li>
- <li>Here are the steps to install Java and Eclipse, prior to installing
- the Android SDK and ADT Plugin.
- <ol>
- <li>If you are running a 64-bit distribution on your development
- machine, you need to install the <code>ia32-libs</code> package using
- <code>apt-get:</code>:
- <pre>apt-get install ia32-libs</pre>
- </li>
- <li>Next, install Java: <pre>apt-get install sun-java6-bin</pre></li>
- <li>The Ubuntu package manager does not currently offer an Eclipse 3.3
- version for download, so we recommend that you download Eclipse from
- eclipse.org (<a
- href="http://www.eclipse.org/downloads/">http://www.eclipse.org/
- downloads/</a>). A Java or RCP version of Eclipse is recommended.</li>
- <li>Follow the steps given in previous sections to install the SDK
- and the ADT plugin. </li>
- </ol>
- </li>
-</ul>
-
-<h3>Other Linux Notes</h3>
-
-<ul>
- <li>If JDK is already installed on your development computer, please
- take a moment to make sure that it meets the version requirements listed
- in the <a href="{@docRoot}sdk/{@sdkCurrent}/requirements.html">System Requirements</a>.
- In particular, note that some Linux distributions may include JDK 1.4 or Gnu
- Compiler for Java, both of which are not supported for Android development.</li>
-</ul>
-
-
-
diff --git a/docs/html/sdk/preview/requirements.jd b/docs/html/sdk/preview/requirements.jd
index 15731e0..1e6b26b 100644
--- a/docs/html/sdk/preview/requirements.jd
+++ b/docs/html/sdk/preview/requirements.jd
@@ -1,45 +1,5 @@
-page.title=System Requirements
-sdk.version=1.6
-sdk.preview=true
+sdk.redirect=true
+
@jd:body
-<p>The sections below describe the system and software requirements for developing
-Android applications using the Android SDK tools included in Android
-<?cs var:sdk.version ?> SDK<?cs if:sdk.rel.id ?>, Release <?cs var:sdk.rel.id ?><?cs /if ?>. </p>
-<h3>Supported Operating Systems</h3>
-<ul>
- <li>Windows XP (32-bit) or Vista (32- or 64-bit)</li>
- <li>Mac OS X 10.4.8 or later (x86 only)</li>
- <li>Linux (tested on Linux Ubuntu Dapper Drake)</li>
-</ul>
-
-<h3>Supported Development Environments</h3>
-<ul>
- <li>Eclipse IDE
- <ul>
- <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede), 3.5 (Galileo)
- <ul>
- <li><strong>Note:</strong> Eclipse 3.3 has not been fully tested with ADT 0.9.2 and support can no longer be guaranteed. We suggest you upgrade to
- Eclipse 3.4 or 3.5.</li>
- <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
- <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
- <li>Eclipse Classic IDE package is not supported.</li>
- </ul>
- </li>
- <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
- <li><a href="installing.html#installingplugin">Android Development Tools plugin</a> (optional)</li>
- <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
- </ul>
- </li>
- <li>Other development environments or IDEs
- <ul>
- <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
- <li><a href="http://ant.apache.org/">Apache Ant</a> 1.6.5 or later for Linux and Mac, 1.7 or later for Windows</li>
- <li><strong>Not</strong> compatible with Gnu Compiler for Java (gcj)</li>
- </ul>
- </li>
-</ul>
-
-<p class="note"><strong>Note:</strong> If JDK is already installed on your development computer, please take a moment to make sure that it meets the version requirements listed above. In
-particular, note that some Linux distributions may include JDK 1.4 or Gnu Compiler for Java, both of which are not supported for Android development. </p>
\ No newline at end of file
diff --git a/docs/html/sdk/preview/upgrading.jd b/docs/html/sdk/preview/upgrading.jd
index da2eb25..1e6b26b 100644
--- a/docs/html/sdk/preview/upgrading.jd
+++ b/docs/html/sdk/preview/upgrading.jd
@@ -1,258 +1,5 @@
-page.title=Upgrading the SDK
-sdk.version=1.6
-sdk.preview=true
+sdk.redirect=true
+
@jd:body
-<div id="qv-wrapper">
-<div id="qv">
-
- <h2>Upgrading the SDK</h2>
- <ul>
- <li>ADT 0.9 / 0.9.1 is not compatible with the Android 1.6 Early Look SDK. You must upgrade
- ADT to 0.9.2.</li>
- <li>The Early Look SDK uses a special provisional API Level, "Donut", which is required
- to compile against the new Donut platform.</li>
- </ul>
-
- <h2>In this document</h2>
- <ol>
- <li><a href="#Install">Install the SDK</a></li>
- <li><a href="#UpdateAdt">Update Your Eclipse ADT Plugin</a></li>
- <li><a href="#RunYourApps">Run Your Applications</a></li>
- <li><a href="#ConvertYourApps">Convert Your Applications</a></li>
- </ol>
-
- <h2>Migrating references</h2>
- <ol>
- <li><a href="{@docRoot}sdk/api_diff/4/changes.html">Android 1.6 Early Look API Differences</a></li>
- </ol>
-
-</div>
-</div>
-
-<p>This document describes how to move your development environment and existing
-Android applications from an Android 1.5 SDK to the Android 1.6 Early Look SDK.
-If you are migrating applications from an SDK older than 1.5, please also read the upgrading
-document available in the Android 1.5 SDK package.</p>
-
-<p>There are several compelling reasons to upgrade, such as new SDK tools
-that make developing more efficient and new APIs that allow you to expand the feature-set
-of your applications. However, even if you or your applications don't require these enhancements,
-it's important that you upgrade to ensure that your applications run properly on the upcoming
-Android platform.</p>
-
-<p>The Android 1.6 platform will soon be deployable to devices around the world.
-If you have already released Android applications to the public, you should
-test the forward-compatibility of your applications on the latest version of the platform
-as soon as possible. It's unlikely that you'll encounter breakage in your applications, but
-in the interest of maintaining the best user experience, you should take no risks.
-So, please install the new Android SDK and test your applications on the new platform.</p>
-
-<!-- NOT AVAILABLE FOR THE PREVIEW
-<p>For more information on new SDK features and system changes,
-see the <a href="{@docRoot}sdk/android-1.5.html">Android 1.5 Version Notes</a>.</p>
--->
-
-<h2 id="Install">Install the SDK</h2>
-
-<!--
-<p>If you haven't yet downloaded the SDK, <a href="index.html">download from here</a>
-and unpack it into a safe location.</p>
--->
-<p>Now that you have the Android 1.6 Early Look SDK,
-you need to perform some of the regular installation steps.</p>
-
-
-<p>If you had previously setup your <code>PATH</code> variable to point to the SDK tools directory,
-then you need to update it to point to the new SDK. For example, for a
-<code>.bashrc</code> or <code>.bash_profile</code> file:</p>
-<pre>export PATH=$PATH:<em><your_sdk_dir></em>/tools</pre>
-
-
-<h2 id="UpdateAdt">Update Your Eclipse ADT Plugin</h2>
-
-<p>If you don't use Eclipse for development,
-skip to <a href="#RunYourApps">Run Your Applications</a>.</p>
-
-<!--
-<p><em>If you installed ADT 0.9.2 with the Android 1.6 Early Look SDK, there have been
-additional changes, so please continue with this guide and update ADT.</em></p>
--->
-
-<p>A new ADT plugin (version 0.9.2) is required for the Android 1.6 Early Look SDK.
-With ADT 0.9.2, you can still compile your applications against
-multiple platform versions, such as Android 1.5. However, previous versions
-of ADT will not work with the Android 1.6 Early Look SDK, so you must upgrade
-to ADT 0.9.2.</p>
-
-<p>If you're currently using a version of ADT <em>older</em> than version 0.9, then you must
-uninstall ADT before you proceed (read how to
-<a href="http://developer.android.com/sdk/1.5_r3/upgrading.html#uninstallAdt">Uninstall
-your previous ADT plugin</a>). If you currently have version 0.9 or 0.9.1, then you don't
-need to uninstall and can continue with the procedure below.</p>
-
-<h3 id="installAdt">Install the 0.9.2 ADT plugin</h3>
-
-<p>To install the new ADT plugin, follow the steps below for your respective version of Eclipse.</p>
-
-<table style="font-size:100%">
-<tr><th>Eclipse 3.3 (Europa)</th><th>Eclipse 3.4 (Ganymede)</th></tr>
-<tr>
-<td width="50%">
-<!-- 3.3 steps -->
-<ol>
- <li>Select <strong>Help</strong> > <strong>Software Updates</strong> >
- <strong>Find and Install</strong>. </li>
- <li>Select <strong>Search for new features to install</strong>.</li>
- <li>Select the Android plugin entry by checking the box next to it,
- then click <strong>Finish</strong>.
- <p>(Your original entry for the plugin should still be here. If not, see the guide
- to <a href="installing.html#installingplugin">Installing the ADT Plugin</a>.)
- </p></li>
- <li>In the results, expand the entry for the Android plugin and
- be sure that "Developer Tools" is checked, then click <strong>Next</strong>.
- (This will install "Android DDMS" and "Android Development Tools".)</li>
- <li>Read and accept the license agreement, then click <strong>Next</strong>.
- <li>In the next window, click <strong>Finish</strong> to start installation.</li>
- <li>The ADT plugin is not digitally signed. Accept the installation anyway by clicking
- <strong>Install All</strong>.</li>
- <li>Restart Eclipse.</li>
-</ol>
-</td>
-<td>
-<!-- 3.4 steps -->
-<ol>
- <li>Select <strong>Help</strong> > <strong>Software Updates</strong>.</li>
- <li>Select the <strong>Available Software</strong> tab.</li>
- <li>Expand the entry for the Andriod plugin (may be listed as the location URL)
- and select "Developer Tools" by checking the box next to it, then click
- <strong>Install</strong>.</li>
- <li>On the next window, "Android DDMS" and "Android Development Tools"
- should both be checked. Click <strong>Finish</strong>.</li>
- <li>Restart Eclipse.</li>
-</ol>
-</td>
-</tr>
-</table>
-
-<p>If you encounter problems with this update procedure, try performing a fresh installation.
-Ensure your current ADT is fully uninstalled and then
-follow the guide to <a href="installing.html#InstallingADT">Installing the ADT Plugin
-for Eclipse</a>.</p>
-
-<h3 id="updateEclipsePrefs">Update your Eclipse SDK Preferences</h3>
-
-<p>The last step is to update your Eclipse preferences to point to the new SDK directory:</p>
-<ol>
- <li>Select <strong>Window</strong> > <strong>Preferences</strong> to open the Preferences
- panel (Mac: <strong>Eclipse</strong> > <strong>Preferences</strong>).</li>
- <li>Select <strong>Android</strong> from the left panel.</li>
- <li>For the SDK Location, click <strong>Browse</strong>
- and locate your SDK directory.</li>
- <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
-
-<h2 id="RunYourApps">Run Your Applications</h2>
-
-<p>Now that you have installed the Android 1.6 Early Look SDK, we encourage you
-to run each of your applications in an instance
-of the emulator that's running the new Android 1.6 system image. It's possible (however, unlikely)
-that you'll encounter unexpected behavior in your application when you run your applications on
-the new system image. Whether you believe your application will be affected by
-platform changes or not, it's very important that you test the application's
-forward-compatibility.</p>
-
-<p>To test forward-compatibility, simply run your application, as-is, on an instance of the Android
-Emulator that uses an AVD targeted to "Android Donut (Preview)":</p>
-
-<ol>
- <li>Make no changes to your application code.</li>
- <li>Create a new AVD that's targeted to the "Donut" platform.</li>
- <li>Launch your application in an emulator running the new AVD.</li>
- <li>Perform normal testing on your application to ensure everything works as expected.</li>
-</ol>
-
-<p>For more information on creating an AVD and launching your application refer to the
-<a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Eclipse guide to
-Running Your Application</a> or the
-<a href="{@docRoot}guide/developing/other-ide.html#Running">Ant guide to
-Running Your Application</a>, depending on your development environment.</p>
-
-
-<h2 id="ConvertYourApps">Convert Your Applications</h2>
-
-<p>If you want to fully utilize new APIs introduced with the Android 1.6 Early Look SDK,
-then you'll need to convert your application to compile against the new "Donut" platform.</p>
-
-<p>First, you need to change the value of the <code>minSdkVersion</code> attribute in
-the <code><uses-sdk></code> manifest element. While
-running your application against the Donut platform included with the Early Look SDK, you
-<strong>must</strong> set the <code>minSdkVersion</code> value to "Donut". For example:</p>
-
-<pre>
-<manifest>
- ...
- <uses-sdk android:minSdkVersion="Donut" />
- ...
-</manifest>
-</pre>
-
-<p>This value is required only while compiling against the Donut platform included with
-the Android 1.6 Early Look SDK. Once the final SDK is made
-available for Android 1.6, you will need to change this value.
-For more information, read about the <a href="index.html#provisional">Framework API and
-Provisional API Level</a>.</p>
-
-<p>Once you've changed the <code>minSdkVersion</code> value in your application's manifest,
-continue with the procedures below to convert your applications.</p>
-
-<h3 id="EclipseUsers">Eclipse users</h3>
-
-<ol>
- <li>Right-click on the individual project (in the Package Explorer)
- and select <strong>Properties</strong>.</li>
- <li>In the properties, open the Android panel and select a new Project Build Target.
- Select "Android Donut (Preview)" to target the new
- platform (or "Google APIs" with the "Donut" platform if your application uses the Maps APIs).</li>
- <li>Click <strong>Apply</strong>, then <strong>OK</strong>.</li>
-</ol>
-
- <p>Remember that you must create an AVD that targets the same platform in order to run the emulator.
- Continue with the
- <a href="{@docRoot}guide/developing/eclipse-adt.html#Running">Eclipse guide to
- Running Your Application</a>. During the procedure to Running Your Application, select a "deployment
- target" or the AVD that includes the "Donut" platform. If your application utilizes the Google Maps APIs (i.e.,
- MapView), be certain to select a target that includes the Google APIs.</p>
-
-
-<h3 id="AntUsers">Ant users</h3>
-
- <p>Use the <code>android</code> tool (located in <code><em>your_sdk</em>/tools/</code>)
- to create a new <code>build.xml</code> that references
- the new platform target. To see a list of available targets, execute:</p>
-
- <pre>android list targets</pre>
-
- <p>Select the target <code>id</code> that corresponds to the "Donut" platform and pass it with the
- <code>--target</code> parameter when updating your project. For example:</p>
-
- <pre>android update project --path /path/to/my-project --target 2</pre>
-
-<p>Remember that you must create an Android Virtual Device (AVD) that's targeted to the
- same platform before you can run the updated application an instance
- of the emulator. Please continue with the
- <a href="{@docRoot}guide/developing/other-ide.html#Running">Ant guide to
- Running Your Application</a>. During the procedure to Running Your Application, select a "deployment
- target" for the AVD that includes the "Donut" platform.
- If your application utilizes the Google Maps APIs (i.e.,
- MapView), be certain to select a target that includes the Google APIs.</p>
-
-
-<div class="special">
-<p>If you have additional trouble updating your code, visit the
-<a href="http://groups.google.com/group/android-developers">Android Developers Group</a>
-to seek help from other Android developers.</p>
-</div>
-
diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs
index c08d75e..64af012 100644
--- a/docs/html/sdk/sdk_toc.cs
+++ b/docs/html/sdk/sdk_toc.cs
@@ -74,6 +74,7 @@
<span class="zh-TW">系統影像版本資訊</span>
</h2>
<ul>
+ <li><a href="<?cs var:toroot ?>sdk/android-1.6.html">Android 1.6 Version Notes</a></li>
<li><a href="<?cs var:toroot ?>sdk/android-1.5.html">Android 1.5 Version Notes</a></li>
<li><a href="<?cs var:toroot ?>sdk/android-1.1.html">Android 1.1 Version Notes</a></li>
</ul>
@@ -96,6 +97,7 @@
<span class="zh-TW">較舊的 SDK 發行版本</span>
</h2>
<ul>
+ <li><a href="<?cs var:toroot ?>sdk/1.5_r3/index.html">Android 1.5 SDK, r3</a></li>
<li><a href="<?cs var:toroot ?>sdk/1.1_r1/index.html">Android 1.1 SDK, r1</a></li>
<li><a href="<?cs var:toroot ?>sdk/1.0_r2/index.html">Android 1.0 SDK, r2</a></li>
<li><a href="<?cs var:toroot ?>sdk/older_releases.html">Other Releases</a></li>
diff --git a/include/media/mediascanner.h b/include/media/mediascanner.h
index 7749566..cd0b86e 100644
--- a/include/media/mediascanner.h
+++ b/include/media/mediascanner.h
@@ -59,16 +59,17 @@
class MediaScannerClient
{
public:
- MediaScannerClient();
- virtual ~MediaScannerClient();
- void setLocale(const char* locale);
- void beginFile();
- bool addStringTag(const char* name, const char* value);
- void endFile();
-
- virtual bool scanFile(const char* path, long long lastModified, long long fileSize) = 0;
- virtual bool handleStringTag(const char* name, const char* value) = 0;
- virtual bool setMimeType(const char* mimeType) = 0;
+ MediaScannerClient();
+ virtual ~MediaScannerClient();
+ void setLocale(const char* locale);
+ void beginFile();
+ bool addStringTag(const char* name, const char* value);
+ void endFile();
+
+ virtual bool scanFile(const char* path, long long lastModified, long long fileSize) = 0;
+ virtual bool handleStringTag(const char* name, const char* value) = 0;
+ virtual bool setMimeType(const char* mimeType) = 0;
+ virtual bool addNoMediaFolder(const char* path) = 0;
protected:
void convertValues(uint32_t encoding);
diff --git a/include/media/stagefright/MetaData.h b/include/media/stagefright/MetaData.h
index be60565..abb45a9 100644
--- a/include/media/stagefright/MetaData.h
+++ b/include/media/stagefright/MetaData.h
@@ -45,7 +45,7 @@
kKeyPlatformPrivate = 'priv',
kKeyDecoderComponent = 'decC',
kKeyBufferID = 'bfID',
- kKeyCompressedSize = 'cmpS',
+ kKeyMaxInputSize = 'inpS',
};
enum {
diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h
index 5b0e0b4..ac45481 100644
--- a/include/media/stagefright/OMXCodec.h
+++ b/include/media/stagefright/OMXCodec.h
@@ -135,6 +135,8 @@
void addCodecSpecificData(const void *data, size_t size);
void clearCodecSpecificData();
+ void setComponentRole();
+
void setAMRFormat();
void setAACFormat(int32_t numChannels, int32_t sampleRate);
@@ -155,6 +157,11 @@
void setJPEGInputFormat(
OMX_U32 width, OMX_U32 height, OMX_U32 compressedSize);
+ void setMinBufferSize(OMX_U32 portIndex, OMX_U32 size);
+
+ void setRawAudioFormat(
+ OMX_U32 portIndex, int32_t sampleRate, int32_t numChannels);
+
status_t allocateBuffers();
status_t allocateBuffersOnPort(OMX_U32 portIndex);
diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp
index ef71641..8cb89c3 100644
--- a/libs/audioflinger/AudioFlinger.cpp
+++ b/libs/audioflinger/AudioFlinger.cpp
@@ -1319,19 +1319,20 @@
mAudioMixer->setBufferProvider(track);
mAudioMixer->enable(AudioMixer::MIXING);
- int param;
- if ( track->mFillingUpStatus == Track::FS_FILLED) {
+ int param = AudioMixer::VOLUME;
+ if (track->mFillingUpStatus == Track::FS_FILLED) {
// no ramp for the first volume setting
track->mFillingUpStatus = Track::FS_ACTIVE;
if (track->mState == TrackBase::RESUMING) {
track->mState = TrackBase::ACTIVE;
param = AudioMixer::RAMP_VOLUME;
- } else {
- param = AudioMixer::VOLUME;
}
- } else {
+ } else if (cblk->server != 0) {
+ // If the track is stopped before the first frame was mixed,
+ // do not apply ramp
param = AudioMixer::RAMP_VOLUME;
}
+
mAudioMixer->setParameter(param, AudioMixer::VOLUME0, left);
mAudioMixer->setParameter(param, AudioMixer::VOLUME1, right);
mAudioMixer->setParameter(
@@ -1365,7 +1366,7 @@
LOGV("BUFFER TIMEOUT: remove(%d) from active list", track->name());
tracksToRemove->add(track);
}
- // For tracks using static shared memry buffer, make sure that we have
+ // For tracks using static shared memory buffer, make sure that we have
// written enough data to audio hardware before disabling the track
// NOTE: this condition with arrive before track->mRetryCount <= 0 so we
// don't care about code removing track from active list above.
diff --git a/libs/surfaceflinger/LayerBase.cpp b/libs/surfaceflinger/LayerBase.cpp
index fd54e35..9ddf972 100644
--- a/libs/surfaceflinger/LayerBase.cpp
+++ b/libs/surfaceflinger/LayerBase.cpp
@@ -354,11 +354,13 @@
return textureName;
}
-void LayerBase::clearWithOpenGL(const Region& clip) const
+void LayerBase::clearWithOpenGL(const Region& clip, GLclampx red,
+ GLclampx green, GLclampx blue,
+ GLclampx alpha) const
{
const DisplayHardware& hw(graphicPlane(0).displayHardware());
const uint32_t fbHeight = hw.getHeight();
- glColor4x(0,0,0,0);
+ glColor4x(red,green,blue,alpha);
glDisable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
glDisable(GL_DITHER);
@@ -377,6 +379,11 @@
}
}
+void LayerBase::clearWithOpenGL(const Region& clip) const
+{
+ clearWithOpenGL(clip,0,0,0,0);
+}
+
void LayerBase::drawWithOpenGL(const Region& clip, const Texture& texture) const
{
const DisplayHardware& hw(graphicPlane(0).displayHardware());
diff --git a/libs/surfaceflinger/LayerBase.h b/libs/surfaceflinger/LayerBase.h
index 7791941..2168de0 100644
--- a/libs/surfaceflinger/LayerBase.h
+++ b/libs/surfaceflinger/LayerBase.h
@@ -251,7 +251,9 @@
uint32_t transform;
bool dirty;
};
-
+
+ void clearWithOpenGL(const Region& clip, GLclampx r, GLclampx g,
+ GLclampx b, GLclampx alpha) const;
void clearWithOpenGL(const Region& clip) const;
void drawWithOpenGL(const Region& clip, const Texture& texture) const;
void loadTexture(Texture* texture, GLint textureName,
diff --git a/libs/surfaceflinger/LayerBuffer.cpp b/libs/surfaceflinger/LayerBuffer.cpp
index bd6d472f..8a55a3f 100644
--- a/libs/surfaceflinger/LayerBuffer.cpp
+++ b/libs/surfaceflinger/LayerBuffer.cpp
@@ -600,7 +600,11 @@
void LayerBuffer::OverlaySource::onDraw(const Region& clip) const
{
- mLayer.clearWithOpenGL(clip);
+ GLclampx color = 0x000018; //dark blue
+ GLclampx red = 0;
+ GLclampx green = 0;
+ GLclampx blue = 0x1818;
+ mLayer.clearWithOpenGL(clip, red, green, blue, 0);
}
void LayerBuffer::OverlaySource::onTransaction(uint32_t flags)
diff --git a/libs/ui/EventHub.cpp b/libs/ui/EventHub.cpp
index 60c177b..e39a357 100644
--- a/libs/ui/EventHub.cpp
+++ b/libs/ui/EventHub.cpp
@@ -781,12 +781,21 @@
if(strcmp(mDevices[i]->path.string(), deviceName) == 0) {
//LOGD("remove device %d: %s\n", i, deviceName);
device_t* device = mDevices[i];
- int count = mFDCount - i - 1;
+
+ LOGI("Removed device: path=%s name=%s id=0x%x (of 0x%x) index=%d fd=%d classes=0x%x\n",
+ device->path.string(), device->name.string(), device->id,
+ mNumDevicesById, mFDCount, mFDs[i].fd, device->classes);
+
+ // Clear this device's entry.
int index = (device->id&ID_MASK);
mDevicesById[index].device = NULL;
+
+ // Close the file descriptor and compact the fd array.
close(mFDs[i].fd);
+ int count = mFDCount - i - 1;
memmove(mDevices + i, mDevices + i + 1, sizeof(mDevices[0]) * count);
memmove(mFDs + i, mFDs + i + 1, sizeof(mFDs[0]) * count);
+ mFDCount--;
#ifdef EV_SW
for (int j=0; j<EV_SW; j++) {
@@ -799,8 +808,6 @@
device->next = mClosingDevices;
mClosingDevices = device;
- mFDCount--;
-
uint32_t publicID;
if (device->id == mFirstKeyboardId) {
LOGW("built-in keyboard device %s (id=%d) is closing! the apps will not like this",
@@ -817,7 +824,7 @@
return 0;
}
}
- LOGE("remote device: %s not found\n", deviceName);
+ LOGE("remove device: %s not found\n", deviceName);
return -1;
}
@@ -832,7 +839,7 @@
int event_pos = 0;
struct inotify_event *event;
-LOGD("EventHub::read_notify nfd: %d\n", nfd);
+ LOGV("EventHub::read_notify nfd: %d\n", nfd);
res = read(nfd, event_buf, sizeof(event_buf));
if(res < (int)sizeof(*event)) {
if(errno == EINTR)
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index de944ee..1dd644b 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -156,13 +156,13 @@
/** @hide Default volume index values for audio streams */
public static final int[] DEFAULT_STREAM_VOLUME = new int[] {
4, // STREAM_VOICE_CALL
- 5, // STREAM_SYSTEM
+ 7, // STREAM_SYSTEM
5, // STREAM_RING
11, // STREAM_MUSIC
6, // STREAM_ALARM
5, // STREAM_NOTIFICATION
7, // STREAM_BLUETOOTH_SCO
- 5, // STREAM_SYSTEM_ENFORCED
+ 7, // STREAM_SYSTEM_ENFORCED
11, // STREAM_DTMF
11 // STREAM_TTS
};
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 3d5aae3..fcc76ca5 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -825,6 +825,22 @@
}
}
+ public void addNoMediaFolder(String path) {
+ ContentValues values = new ContentValues();
+ values.put(MediaStore.Images.ImageColumns.DATA, "");
+ String [] pathSpec = new String[] {path + '%'};
+ try {
+ mMediaProvider.update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values,
+ MediaStore.Images.ImageColumns.DATA + " LIKE ?", pathSpec);
+ mMediaProvider.update(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values,
+ MediaStore.Images.ImageColumns.DATA + " LIKE ?", pathSpec);
+ mMediaProvider.update(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values,
+ MediaStore.Images.ImageColumns.DATA + " LIKE ?", pathSpec);
+ } catch (RemoteException e) {
+ throw new RuntimeException();
+ }
+ }
+
}; // end of anonymous MediaScannerClient instance
private void prescan(String filePath) throws RemoteException {
diff --git a/media/java/android/media/MediaScannerClient.java b/media/java/android/media/MediaScannerClient.java
index cf1a8da..258c3b4 100644
--- a/media/java/android/media/MediaScannerClient.java
+++ b/media/java/android/media/MediaScannerClient.java
@@ -25,11 +25,13 @@
public void scanFile(String path, String mimeType, long lastModified, long fileSize);
+ public void addNoMediaFolder(String path);
+
/**
* Called by native code to return metadata extracted from media files.
*/
public void handleStringTag(String name, String value);
-
+
/**
* Called by native code to return mime type extracted from DRM content.
*/
diff --git a/media/jni/android_media_MediaScanner.cpp b/media/jni/android_media_MediaScanner.cpp
index 97de486..6a5404e 100644
--- a/media/jni/android_media_MediaScanner.cpp
+++ b/media/jni/android_media_MediaScanner.cpp
@@ -65,6 +65,8 @@
"(Ljava/lang/String;Ljava/lang/String;)V");
mSetMimeTypeMethodID = env->GetMethodID(mediaScannerClientInterface, "setMimeType",
"(Ljava/lang/String;)V");
+ mAddNoMediaFolderMethodID = env->GetMethodID(mediaScannerClientInterface, "addNoMediaFolder",
+ "(Ljava/lang/String;)V");
}
}
@@ -111,12 +113,26 @@
return (!mEnv->ExceptionCheck());
}
+ // returns true if it succeeded, false if an exception occured in the Java code
+ virtual bool addNoMediaFolder(const char* path)
+ {
+ jstring pathStr;
+ if ((pathStr = mEnv->NewStringUTF(path)) == NULL) return false;
+
+ mEnv->CallVoidMethod(mClient, mAddNoMediaFolderMethodID, pathStr);
+
+ mEnv->DeleteLocalRef(pathStr);
+ return (!mEnv->ExceptionCheck());
+ }
+
+
private:
JNIEnv *mEnv;
jobject mClient;
jmethodID mScanFileMethodID;
jmethodID mHandleStringTagMethodID;
jmethodID mSetMimeTypeMethodID;
+ jmethodID mAddNoMediaFolderMethodID;
};
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index 7c8defc..de808e5 100644
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -77,6 +77,8 @@
{ "video/avc", "OMX.PV.avcenc" },
};
+#define CODEC_LOGV(x, ...) LOGV("[%s] "x, mComponentName, ##__VA_ARGS__)
+
struct OMXCodecObserver : public BnOMXObserver {
OMXCodecObserver(const wp<OMXCodec> &target)
: mTarget(target) {
@@ -150,6 +152,15 @@
}
}
+template<class T>
+static void InitOMXParams(T *params) {
+ params->nSize = sizeof(T);
+ params->nVersion.s.nVersionMajor = 1;
+ params->nVersion.s.nVersionMinor = 0;
+ params->nVersion.s.nRevision = 0;
+ params->nVersion.s.nStep = 0;
+}
+
// static
sp<OMXCodec> OMXCodec::Create(
const sp<IOMX> &omx,
@@ -180,6 +191,7 @@
status_t err = omx->allocate_node(componentName, &node);
if (err == OK) {
+ LOGV("Successfully allocated OMX node '%s'", componentName);
break;
}
}
@@ -301,7 +313,7 @@
if (!strcasecmp("audio/3gpp", mime)) {
codec->setAMRFormat();
}
- if (!createEncoder && !strcasecmp("audio/mp4a-latm", mime)) {
+ if (!strcasecmp("audio/mp4a-latm", mime)) {
int32_t numChannels, sampleRate;
CHECK(meta->findInt32(kKeyChannelCount, &numChannels));
CHECK(meta->findInt32(kKeySampleRate, &sampleRate));
@@ -334,7 +346,7 @@
int32_t compressedSize;
success = success && meta->findInt32(
- kKeyCompressedSize, &compressedSize);
+ kKeyMaxInputSize, &compressedSize);
CHECK(success);
CHECK(compressedSize > 0);
@@ -343,19 +355,46 @@
codec->setJPEGInputFormat(width, height, (OMX_U32)compressedSize);
}
+ int32_t maxInputSize;
+ if (createEncoder && meta->findInt32(kKeyMaxInputSize, &maxInputSize)) {
+ codec->setMinBufferSize(kPortIndexInput, (OMX_U32)maxInputSize);
+ }
+
+ if (!strcmp(componentName, "OMX.TI.AMR.encode")
+ || !strcmp(componentName, "OMX.TI.WBAMR.encode")) {
+ codec->setMinBufferSize(kPortIndexOutput, 8192); // XXX
+ }
+
codec->initOutputFormat(meta);
return codec;
}
+void OMXCodec::setMinBufferSize(OMX_U32 portIndex, OMX_U32 size) {
+ OMX_PARAM_PORTDEFINITIONTYPE def;
+ InitOMXParams(&def);
+ def.nPortIndex = portIndex;
+
+ status_t err = mOMX->get_parameter(
+ mNode, OMX_IndexParamPortDefinition, &def, sizeof(def));
+ CHECK_EQ(err, OK);
+
+ if (def.nBufferSize < size) {
+ def.nBufferSize = size;
+
+ }
+
+ err = mOMX->set_parameter(
+ mNode, OMX_IndexParamPortDefinition, &def, sizeof(def));
+ CHECK_EQ(err, OK);
+}
+
status_t OMXCodec::setVideoPortFormatType(
OMX_U32 portIndex,
OMX_VIDEO_CODINGTYPE compressionFormat,
OMX_COLOR_FORMATTYPE colorFormat) {
OMX_VIDEO_PARAM_PORTFORMATTYPE format;
- format.nSize = sizeof(format);
- format.nVersion.s.nVersionMajor = 1;
- format.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&format);
format.nPortIndex = portIndex;
format.nIndex = 0;
bool found = false;
@@ -447,13 +486,11 @@
kPortIndexOutput, compressionFormat, OMX_COLOR_FormatUnused);
OMX_PARAM_PORTDEFINITIONTYPE def;
- OMX_VIDEO_PORTDEFINITIONTYPE *video_def = &def.format.video;
-
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexOutput;
+ OMX_VIDEO_PORTDEFINITIONTYPE *video_def = &def.format.video;
+
status_t err = mOMX->get_parameter(
mNode, OMX_IndexParamPortDefinition, &def, sizeof(def));
@@ -472,9 +509,7 @@
////////////////////////////////////////////////////////////////////////////
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexInput;
err = mOMX->get_parameter(
@@ -482,7 +517,7 @@
CHECK_EQ(err, OK);
def.nBufferSize = (width * height * 2); // (width * height * 3) / 2;
- LOGI("setting nBufferSize = %ld", def.nBufferSize);
+ LOGI("Setting nBufferSize = %ld", def.nBufferSize);
CHECK_EQ(def.eDomain, OMX_PortDomainVideo);
@@ -500,37 +535,6 @@
const char *mime, OMX_U32 width, OMX_U32 height) {
LOGI("setVideoOutputFormat width=%ld, height=%ld", width, height);
- // Enabling this code appears to be the right thing(tm), but,...
- // the TI decoder then loses the ability to output YUV420 and only outputs
- // YCbYCr (16bit)
-
-#if 1
- if (!strcmp("OMX.TI.Video.Decoder", mComponentName)) {
- OMX_PARAM_COMPONENTROLETYPE role;
- role.nSize = sizeof(role);
- role.nVersion.s.nVersionMajor = 1;
- role.nVersion.s.nVersionMinor = 1;
-
- if (!strcasecmp("video/avc", mime)) {
- strncpy((char *)role.cRole, "video_decoder.avc",
- OMX_MAX_STRINGNAME_SIZE - 1);
- } else if (!strcasecmp("video/mp4v-es", mime)) {
- strncpy((char *)role.cRole, "video_decoder.mpeg4",
- OMX_MAX_STRINGNAME_SIZE - 1);
- } else if (!strcasecmp("video/3gpp", mime)) {
- strncpy((char *)role.cRole, "video_decoder.h263",
- OMX_MAX_STRINGNAME_SIZE - 1);
- }
-
- role.cRole[OMX_MAX_STRINGNAME_SIZE - 1] = '\0';
-
- status_t err = mOMX->set_parameter(
- mNode, OMX_IndexParamStandardComponentRole,
- &role, sizeof(role));
- CHECK_EQ(err, OK);
- }
-#endif
-
OMX_VIDEO_CODINGTYPE compressionFormat = OMX_VIDEO_CodingUnused;
if (!strcasecmp("video/avc", mime)) {
compressionFormat = OMX_VIDEO_CodingAVC;
@@ -549,9 +553,7 @@
#if 1
{
OMX_VIDEO_PARAM_PORTFORMATTYPE format;
- format.nSize = sizeof(format);
- format.nVersion.s.nVersionMajor = 1;
- format.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&format);
format.nPortIndex = kPortIndexOutput;
format.nIndex = 0;
@@ -576,13 +578,11 @@
#endif
OMX_PARAM_PORTDEFINITIONTYPE def;
- OMX_VIDEO_PORTDEFINITIONTYPE *video_def = &def.format.video;
-
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexInput;
+ OMX_VIDEO_PORTDEFINITIONTYPE *video_def = &def.format.video;
+
status_t err = mOMX->get_parameter(
mNode, OMX_IndexParamPortDefinition, &def, sizeof(def));
@@ -609,9 +609,7 @@
////////////////////////////////////////////////////////////////////////////
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexOutput;
err = mOMX->get_parameter(
@@ -657,6 +655,63 @@
mObserver = new OMXCodecObserver(this);
mOMX->observe_node(mNode, mObserver);
+
+ setComponentRole();
+}
+
+void OMXCodec::setComponentRole() {
+ struct MimeToRole {
+ const char *mime;
+ const char *decoderRole;
+ const char *encoderRole;
+ };
+
+ static const MimeToRole kMimeToRole[] = {
+ { "audio/mpeg", "audio_decoder.mp3", "audio_encoder.mp3" },
+ { "audio/3gpp", "audio_decoder.amrnb", "audio_encoder.amrnb" },
+ { "audio/mp4a-latm", "audio_decoder.aac", "audio_encoder.aac" },
+ { "video/avc", "video_decoder.avc", "video_encoder.avc" },
+ { "video/mp4v-es", "video_decoder.mpeg4", "video_encoder.mpeg4" },
+ { "video/3gpp", "video_decoder.h263", "video_encoder.h263" },
+ };
+
+ static const size_t kNumMimeToRole =
+ sizeof(kMimeToRole) / sizeof(kMimeToRole[0]);
+
+ size_t i;
+ for (i = 0; i < kNumMimeToRole; ++i) {
+ if (!strcasecmp(mMIME, kMimeToRole[i].mime)) {
+ break;
+ }
+ }
+
+ if (i == kNumMimeToRole) {
+ return;
+ }
+
+ const char *role =
+ mIsEncoder ? kMimeToRole[i].encoderRole
+ : kMimeToRole[i].decoderRole;
+
+ if (role != NULL) {
+ CODEC_LOGV("Setting component role '%s'.", role);
+
+ OMX_PARAM_COMPONENTROLETYPE roleParams;
+ InitOMXParams(&roleParams);
+
+ strncpy((char *)roleParams.cRole,
+ role, OMX_MAX_STRINGNAME_SIZE - 1);
+
+ roleParams.cRole[OMX_MAX_STRINGNAME_SIZE - 1] = '\0';
+
+ status_t err = mOMX->set_parameter(
+ mNode, OMX_IndexParamStandardComponentRole,
+ &roleParams, sizeof(roleParams));
+
+ if (err != OK) {
+ LOGW("Failed to set standard component role '%s'.", role);
+ }
+ }
}
OMXCodec::~OMXCodec() {
@@ -689,7 +744,6 @@
if (!(mQuirks & kRequiresLoadedToIdleAfterAllocation)) {
err = mOMX->send_command(mNode, OMX_CommandStateSet, OMX_StateIdle);
CHECK_EQ(err, OK);
-
setState(LOADED_TO_IDLE);
}
@@ -731,11 +785,7 @@
status_t OMXCodec::allocateBuffersOnPort(OMX_U32 portIndex) {
OMX_PARAM_PORTDEFINITIONTYPE def;
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
- def.nVersion.s.nRevision = 0;
- def.nVersion.s.nStep = 0;
+ InitOMXParams(&def);
def.nPortIndex = portIndex;
status_t err = mOMX->get_parameter(
@@ -783,7 +833,7 @@
mPortBuffers[portIndex].push(info);
- LOGV("allocated buffer %p on %s port", buffer,
+ CODEC_LOGV("allocated buffer %p on %s port", buffer,
portIndex == kPortIndexInput ? "input" : "output");
}
@@ -809,7 +859,7 @@
{
IOMX::buffer_id buffer = msg.u.extended_buffer_data.buffer;
- LOGV("EMPTY_BUFFER_DONE(buffer: %p)", buffer);
+ CODEC_LOGV("EMPTY_BUFFER_DONE(buffer: %p)", buffer);
Vector<BufferInfo> *buffers = &mPortBuffers[kPortIndexInput];
size_t i = 0;
@@ -826,7 +876,7 @@
buffers->editItemAt(i).mOwnedByComponent = false;
if (mPortStatus[kPortIndexInput] == DISABLING) {
- LOGV("Port is disabled, freeing buffer %p", buffer);
+ CODEC_LOGV("Port is disabled, freeing buffer %p", buffer);
status_t err =
mOMX->free_buffer(mNode, kPortIndexInput, buffer);
@@ -846,12 +896,12 @@
IOMX::buffer_id buffer = msg.u.extended_buffer_data.buffer;
OMX_U32 flags = msg.u.extended_buffer_data.flags;
- LOGV("FILL_BUFFER_DONE(buffer: %p, size: %ld, flags: 0x%08lx)",
+ CODEC_LOGV("FILL_BUFFER_DONE(buffer: %p, size: %ld, flags: 0x%08lx)",
buffer,
msg.u.extended_buffer_data.range_length,
flags);
- LOGV("FILL_BUFFER_DONE(timestamp: %lld us (%.2f secs))",
+ CODEC_LOGV("FILL_BUFFER_DONE(timestamp: %lld us (%.2f secs))",
msg.u.extended_buffer_data.timestamp,
msg.u.extended_buffer_data.timestamp / 1E6);
@@ -872,7 +922,7 @@
info->mOwnedByComponent = false;
if (mPortStatus[kPortIndexOutput] == DISABLING) {
- LOGV("Port is disabled, freeing buffer %p", buffer);
+ CODEC_LOGV("Port is disabled, freeing buffer %p", buffer);
status_t err =
mOMX->free_buffer(mNode, kPortIndexOutput, buffer);
@@ -881,7 +931,7 @@
buffers->removeAt(i);
} else if (mPortStatus[kPortIndexOutput] == ENABLED
&& (flags & OMX_BUFFERFLAG_EOS)) {
- LOGV("No more output data.");
+ CODEC_LOGV("No more output data.");
mNoMoreOutputData = true;
mBufferFilled.signal();
} else if (mPortStatus[kPortIndexOutput] != SHUTTING_DOWN) {
@@ -953,7 +1003,7 @@
case OMX_EventBufferFlag:
{
- LOGV("EVENT_BUFFER_FLAG(%ld)", data1);
+ CODEC_LOGV("EVENT_BUFFER_FLAG(%ld)", data1);
if (data1 == kPortIndexOutput) {
mNoMoreOutputData = true;
@@ -963,7 +1013,7 @@
default:
{
- LOGV("EVENT(%d, %ld, %ld)", event, data1, data2);
+ CODEC_LOGV("EVENT(%d, %ld, %ld)", event, data1, data2);
break;
}
}
@@ -980,7 +1030,7 @@
case OMX_CommandPortDisable:
{
OMX_U32 portIndex = data;
- LOGV("PORT_DISABLED(%ld)", portIndex);
+ CODEC_LOGV("PORT_DISABLED(%ld)", portIndex);
CHECK(mState == EXECUTING || mState == RECONFIGURING);
CHECK_EQ(mPortStatus[portIndex], DISABLING);
@@ -1002,7 +1052,7 @@
case OMX_CommandPortEnable:
{
OMX_U32 portIndex = data;
- LOGV("PORT_ENABLED(%ld)", portIndex);
+ CODEC_LOGV("PORT_ENABLED(%ld)", portIndex);
CHECK(mState == EXECUTING || mState == RECONFIGURING);
CHECK_EQ(mPortStatus[portIndex], ENABLING);
@@ -1023,7 +1073,7 @@
{
OMX_U32 portIndex = data;
- LOGV("FLUSH_DONE(%ld)", portIndex);
+ CODEC_LOGV("FLUSH_DONE(%ld)", portIndex);
CHECK_EQ(mPortStatus[portIndex], SHUTTING_DOWN);
mPortStatus[portIndex] = ENABLED;
@@ -1038,7 +1088,7 @@
} else if (mState == EXECUTING_TO_IDLE) {
if (mPortStatus[kPortIndexInput] == ENABLED
&& mPortStatus[kPortIndexOutput] == ENABLED) {
- LOGV("Finished flushing both ports, now completing "
+ CODEC_LOGV("Finished flushing both ports, now completing "
"transition from EXECUTING to IDLE.");
mPortStatus[kPortIndexInput] = SHUTTING_DOWN;
@@ -1053,7 +1103,7 @@
if (mPortStatus[kPortIndexInput] == ENABLED
&& mPortStatus[kPortIndexOutput] == ENABLED) {
- LOGV("Finished flushing both ports, now continuing from"
+ CODEC_LOGV("Finished flushing both ports, now continuing from"
" seek-time.");
drainInputBuffers();
@@ -1066,7 +1116,7 @@
default:
{
- LOGV("CMD_COMPLETE(%d, %ld)", cmd, data);
+ CODEC_LOGV("CMD_COMPLETE(%d, %ld)", cmd, data);
break;
}
}
@@ -1076,7 +1126,7 @@
switch (newState) {
case OMX_StateIdle:
{
- LOGV("Now Idle.");
+ CODEC_LOGV("Now Idle.");
if (mState == LOADED_TO_IDLE) {
status_t err = mOMX->send_command(
mNode, OMX_CommandStateSet, OMX_StateExecuting);
@@ -1118,7 +1168,7 @@
{
CHECK_EQ(mState, IDLE_TO_EXECUTING);
- LOGV("Now Executing.");
+ CODEC_LOGV("Now Executing.");
setState(EXECUTING);
@@ -1134,7 +1184,7 @@
{
CHECK_EQ(mState, IDLE_TO_LOADED);
- LOGV("Now Loaded.");
+ CODEC_LOGV("Now Loaded.");
setState(LOADED);
break;
@@ -1200,7 +1250,7 @@
}
void OMXCodec::onPortSettingsChanged(OMX_U32 portIndex) {
- LOGV("PORT_SETTINGS_CHANGED(%ld)", portIndex);
+ CODEC_LOGV("PORT_SETTINGS_CHANGED(%ld)", portIndex);
CHECK_EQ(mState, EXECUTING);
CHECK_EQ(portIndex, kPortIndexOutput);
@@ -1219,7 +1269,7 @@
CHECK(mState == EXECUTING || mState == RECONFIGURING
|| mState == EXECUTING_TO_IDLE);
- LOGV("flushPortAsync(%ld): we own %d out of %d buffers already.",
+ CODEC_LOGV("flushPortAsync(%ld): we own %d out of %d buffers already.",
portIndex, countBuffersWeOwn(mPortBuffers[portIndex]),
mPortBuffers[portIndex].size());
@@ -1342,7 +1392,7 @@
size_t srcLength = 0;
if (err != OK) {
- LOGV("signalling end of input stream.");
+ CODEC_LOGV("signalling end of input stream.");
flags |= OMX_BUFFERFLAG_EOS;
mSignalledEOS = true;
@@ -1363,9 +1413,9 @@
&& srcBuffer->meta_data()->findInt32(kKeyTimeScale, &scale)) {
timestamp = ((OMX_TICKS)units * 1000000) / scale;
- LOGV("Calling empty_buffer on buffer %p (length %d)",
+ CODEC_LOGV("Calling empty_buffer on buffer %p (length %d)",
info->mBuffer, srcLength);
- LOGV("Calling empty_buffer with timestamp %lld us (%.2f secs)",
+ CODEC_LOGV("Calling empty_buffer with timestamp %lld us (%.2f secs)",
timestamp, timestamp / 1E6);
}
}
@@ -1386,12 +1436,12 @@
CHECK_EQ(info->mOwnedByComponent, false);
if (mNoMoreOutputData) {
- LOGV("There is no more output data available, not "
+ CODEC_LOGV("There is no more output data available, not "
"calling fillOutputBuffer");
return;
}
- LOGV("Calling fill_buffer on buffer %p", info->mBuffer);
+ CODEC_LOGV("Calling fill_buffer on buffer %p", info->mBuffer);
mOMX->fill_buffer(mNode, info->mBuffer);
info->mOwnedByComponent = true;
@@ -1430,12 +1480,43 @@
mBufferFilled.signal();
}
+void OMXCodec::setRawAudioFormat(
+ OMX_U32 portIndex, int32_t sampleRate, int32_t numChannels) {
+ OMX_AUDIO_PARAM_PCMMODETYPE pcmParams;
+ InitOMXParams(&pcmParams);
+ pcmParams.nPortIndex = portIndex;
+
+ status_t err = mOMX->get_parameter(
+ mNode, OMX_IndexParamAudioPcm, &pcmParams, sizeof(pcmParams));
+
+ CHECK_EQ(err, OK);
+
+ pcmParams.nChannels = numChannels;
+ pcmParams.eNumData = OMX_NumericalDataSigned;
+ pcmParams.bInterleaved = OMX_TRUE;
+ pcmParams.nBitPerSample = 16;
+ pcmParams.nSamplingRate = sampleRate;
+ pcmParams.ePCMMode = OMX_AUDIO_PCMModeLinear;
+
+ if (numChannels == 1) {
+ pcmParams.eChannelMapping[0] = OMX_AUDIO_ChannelCF;
+ } else {
+ CHECK_EQ(numChannels, 2);
+
+ pcmParams.eChannelMapping[0] = OMX_AUDIO_ChannelLF;
+ pcmParams.eChannelMapping[1] = OMX_AUDIO_ChannelRF;
+ }
+
+ err = mOMX->set_parameter(
+ mNode, OMX_IndexParamAudioPcm, &pcmParams, sizeof(pcmParams));
+
+ CHECK_EQ(err, OK);
+}
+
void OMXCodec::setAMRFormat() {
if (!mIsEncoder) {
OMX_AUDIO_PARAM_AMRTYPE def;
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexInput;
status_t err =
@@ -1459,62 +1540,35 @@
CHECK(format->findInt32(kKeySampleRate, &sampleRate));
CHECK(format->findInt32(kKeyChannelCount, &numChannels));
- OMX_AUDIO_PARAM_PCMMODETYPE pcmParams;
- pcmParams.nSize = sizeof(pcmParams);
- pcmParams.nVersion.s.nVersionMajor = 1;
- pcmParams.nVersion.s.nVersionMinor = 1;
- pcmParams.nPortIndex = kPortIndexInput;
-
- status_t err = mOMX->get_parameter(
- mNode, OMX_IndexParamAudioPcm, &pcmParams, sizeof(pcmParams));
-
- CHECK_EQ(err, OK);
-
- pcmParams.nChannels = numChannels;
- pcmParams.eNumData = OMX_NumericalDataSigned;
- pcmParams.bInterleaved = OMX_TRUE;
- pcmParams.nBitPerSample = 16;
- pcmParams.nSamplingRate = sampleRate;
- pcmParams.ePCMMode = OMX_AUDIO_PCMModeLinear;
-
- if (numChannels == 1) {
- pcmParams.eChannelMapping[0] = OMX_AUDIO_ChannelCF;
- } else {
- CHECK_EQ(numChannels, 2);
-
- pcmParams.eChannelMapping[0] = OMX_AUDIO_ChannelLF;
- pcmParams.eChannelMapping[1] = OMX_AUDIO_ChannelRF;
- }
-
- err = mOMX->set_parameter(
- mNode, OMX_IndexParamAudioPcm, &pcmParams, sizeof(pcmParams));
-
- CHECK_EQ(err, OK);
+ setRawAudioFormat(kPortIndexInput, sampleRate, numChannels);
}
}
void OMXCodec::setAACFormat(int32_t numChannels, int32_t sampleRate) {
- OMX_AUDIO_PARAM_AACPROFILETYPE profile;
- profile.nSize = sizeof(profile);
- profile.nVersion.s.nVersionMajor = 1;
- profile.nVersion.s.nVersionMinor = 1;
- profile.nPortIndex = kPortIndexInput;
+ if (mIsEncoder) {
+ setRawAudioFormat(kPortIndexInput, sampleRate, numChannels);
+ } else {
+ OMX_AUDIO_PARAM_AACPROFILETYPE profile;
+ InitOMXParams(&profile);
+ profile.nPortIndex = kPortIndexInput;
- status_t err =
- mOMX->get_parameter(mNode, OMX_IndexParamAudioAac, &profile, sizeof(profile));
- CHECK_EQ(err, OK);
+ status_t err = mOMX->get_parameter(
+ mNode, OMX_IndexParamAudioAac, &profile, sizeof(profile));
+ CHECK_EQ(err, OK);
- profile.nChannels = numChannels;
- profile.nSampleRate = sampleRate;
- profile.eAACStreamFormat = OMX_AUDIO_AACStreamFormatMP4ADTS;
+ profile.nChannels = numChannels;
+ profile.nSampleRate = sampleRate;
+ profile.eAACStreamFormat = OMX_AUDIO_AACStreamFormatMP4ADTS;
- err = mOMX->set_parameter(mNode, OMX_IndexParamAudioAac, &profile, sizeof(profile));
- CHECK_EQ(err, OK);
+ err = mOMX->set_parameter(
+ mNode, OMX_IndexParamAudioAac, &profile, sizeof(profile));
+ CHECK_EQ(err, OK);
+ }
}
void OMXCodec::setImageOutputFormat(
OMX_COLOR_FORMATTYPE format, OMX_U32 width, OMX_U32 height) {
- LOGV("setImageOutputFormat(%ld, %ld)", width, height);
+ CODEC_LOGV("setImageOutputFormat(%ld, %ld)", width, height);
#if 0
OMX_INDEXTYPE index;
@@ -1527,9 +1581,7 @@
#endif
OMX_PARAM_PORTDEFINITIONTYPE def;
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexOutput;
status_t err = mOMX->get_parameter(
@@ -1580,9 +1632,7 @@
void OMXCodec::setJPEGInputFormat(
OMX_U32 width, OMX_U32 height, OMX_U32 compressedSize) {
OMX_PARAM_PORTDEFINITIONTYPE def;
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexInput;
status_t err = mOMX->get_parameter(
@@ -1650,7 +1700,7 @@
}
status_t OMXCodec::stop() {
- LOGV("stop");
+ CODEC_LOGV("stop");
Mutex::Autolock autoLock(mLock);
@@ -1668,7 +1718,7 @@
setState(EXECUTING_TO_IDLE);
if (mQuirks & kRequiresFlushBeforeShutdown) {
- LOGV("This component requires a flush before transitioning "
+ CODEC_LOGV("This component requires a flush before transitioning "
"from EXECUTING to IDLE...");
bool emulateInputFlushCompletion =
@@ -1740,7 +1790,7 @@
int64_t seekTimeUs;
if (options && options->getSeekTo(&seekTimeUs)) {
- LOGV("seeking to %lld us (%.2f secs)", seekTimeUs, seekTimeUs / 1E6);
+ CODEC_LOGV("seeking to %lld us (%.2f secs)", seekTimeUs, seekTimeUs / 1E6);
mSignalledEOS = false;
mNoMoreOutputData = false;
@@ -1969,9 +2019,7 @@
void OMXCodec::dumpPortStatus(OMX_U32 portIndex) {
OMX_PARAM_PORTDEFINITIONTYPE def;
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = portIndex;
status_t err = mOMX->get_parameter(
@@ -2037,9 +2085,7 @@
if (audioDef->eEncoding == OMX_AUDIO_CodingPCM) {
OMX_AUDIO_PARAM_PCMMODETYPE params;
- params.nSize = sizeof(params);
- params.nVersion.s.nVersionMajor = 1;
- params.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(¶ms);
params.nPortIndex = portIndex;
err = mOMX->get_parameter(
@@ -2076,9 +2122,7 @@
mOutputFormat->setCString(kKeyDecoderComponent, mComponentName);
OMX_PARAM_PORTDEFINITIONTYPE def;
- def.nSize = sizeof(def);
- def.nVersion.s.nVersionMajor = 1;
- def.nVersion.s.nVersionMinor = 1;
+ InitOMXParams(&def);
def.nPortIndex = kPortIndexOutput;
status_t err = mOMX->get_parameter(
@@ -2102,40 +2146,44 @@
{
OMX_AUDIO_PORTDEFINITIONTYPE *audio_def = &def.format.audio;
- CHECK_EQ(audio_def->eEncoding, OMX_AUDIO_CodingPCM);
+ if (audio_def->eEncoding == OMX_AUDIO_CodingPCM) {
+ OMX_AUDIO_PARAM_PCMMODETYPE params;
+ InitOMXParams(¶ms);
+ params.nPortIndex = kPortIndexOutput;
- OMX_AUDIO_PARAM_PCMMODETYPE params;
- params.nSize = sizeof(params);
- params.nVersion.s.nVersionMajor = 1;
- params.nVersion.s.nVersionMinor = 1;
- params.nPortIndex = kPortIndexOutput;
+ err = mOMX->get_parameter(
+ mNode, OMX_IndexParamAudioPcm, ¶ms, sizeof(params));
+ CHECK_EQ(err, OK);
- err = mOMX->get_parameter(
- mNode, OMX_IndexParamAudioPcm, ¶ms, sizeof(params));
- CHECK_EQ(err, OK);
+ CHECK_EQ(params.eNumData, OMX_NumericalDataSigned);
+ CHECK_EQ(params.nBitPerSample, 16);
+ CHECK_EQ(params.ePCMMode, OMX_AUDIO_PCMModeLinear);
- CHECK_EQ(params.eNumData, OMX_NumericalDataSigned);
- CHECK_EQ(params.nBitPerSample, 16);
- CHECK_EQ(params.ePCMMode, OMX_AUDIO_PCMModeLinear);
+ int32_t numChannels, sampleRate;
+ inputFormat->findInt32(kKeyChannelCount, &numChannels);
+ inputFormat->findInt32(kKeySampleRate, &sampleRate);
- int32_t numChannels, sampleRate;
- inputFormat->findInt32(kKeyChannelCount, &numChannels);
- inputFormat->findInt32(kKeySampleRate, &sampleRate);
+ if ((OMX_U32)numChannels != params.nChannels) {
+ LOGW("Codec outputs a different number of channels than "
+ "the input stream contains.");
+ }
- if ((OMX_U32)numChannels != params.nChannels) {
- LOGW("Codec outputs a different number of channels than "
- "the input stream contains.");
+ mOutputFormat->setCString(kKeyMIMEType, "audio/raw");
+
+ // Use the codec-advertised number of channels, as some
+ // codecs appear to output stereo even if the input data is
+ // mono.
+ mOutputFormat->setInt32(kKeyChannelCount, params.nChannels);
+
+ // The codec-reported sampleRate is not reliable...
+ mOutputFormat->setInt32(kKeySampleRate, sampleRate);
+ } else if (audio_def->eEncoding == OMX_AUDIO_CodingAMR) {
+ mOutputFormat->setCString(kKeyMIMEType, "audio/3gpp");
+ } else if (audio_def->eEncoding == OMX_AUDIO_CodingAAC) {
+ mOutputFormat->setCString(kKeyMIMEType, "audio/mp4a-latm");
+ } else {
+ CHECK(!"Should not be here. Unknown audio encoding.");
}
-
- mOutputFormat->setCString(kKeyMIMEType, "audio/raw");
-
- // Use the codec-advertised number of channels, as some
- // codecs appear to output stereo even if the input data is
- // mono.
- mOutputFormat->setInt32(kKeyChannelCount, params.nChannels);
-
- // The codec-reported sampleRate is not reliable...
- mOutputFormat->setInt32(kKeySampleRate, sampleRate);
break;
}
diff --git a/opengl/tests/gl2_basic/Android.mk b/opengl/tests/gl2_basic/Android.mk
new file mode 100644
index 0000000..a642eaf
--- /dev/null
+++ b/opengl/tests/gl2_basic/Android.mk
@@ -0,0 +1,19 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES:= \
+ gl2_basic.cpp
+
+LOCAL_SHARED_LIBRARIES := \
+ libcutils \
+ libEGL \
+ libGLESv2 \
+ libui
+
+LOCAL_MODULE:= test-opengl-gl2_basic
+
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_CFLAGS := -DGL_GLEXT_PROTOTYPES
+
+include $(BUILD_EXECUTABLE)
diff --git a/opengl/tests/gl2_basic/gl2_basic.cpp b/opengl/tests/gl2_basic/gl2_basic.cpp
new file mode 100644
index 0000000..705794a
--- /dev/null
+++ b/opengl/tests/gl2_basic/gl2_basic.cpp
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2007 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.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <sched.h>
+#include <sys/resource.h>
+
+#include <EGL/egl.h>
+#include <GLES/gl.h>
+#include <GLES/glext.h>
+
+#include <utils/Timers.h>
+
+#include <ui/FramebufferNativeWindow.h>
+#include <ui/EGLUtils.h>
+
+using namespace android;
+
+static void printGLString(const char *name, GLenum s)
+{
+ const char *v = (const char *)glGetString(s);
+ if (v)
+ printf("GL %s = %s\n", name, v);
+ else
+ printf("GL %s = (null)\n", name);
+}
+
+int main(int argc, char** argv)
+{
+ EGLint s_configAttribs[] = {
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RED_SIZE, 5,
+ EGL_GREEN_SIZE, 6,
+ EGL_BLUE_SIZE, 5,
+ EGL_NONE
+ };
+
+ EGLint numConfigs = -1;
+ EGLint majorVersion;
+ EGLint minorVersion;
+ EGLConfig config;
+ EGLContext context;
+ EGLSurface surface;
+ EGLint w, h;
+
+ EGLDisplay dpy;
+
+ EGLNativeWindowType window = 0;
+ window = android_createDisplaySurface();
+
+ dpy = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+ eglInitialize(dpy, &majorVersion, &minorVersion);
+ EGLUtils::selectConfigForNativeWindow(dpy, s_configAttribs, window, &config);
+ surface = eglCreateWindowSurface(dpy, config, window, NULL);
+
+ EGLint gl2_0Attribs[] = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE};
+
+ context = eglCreateContext(dpy, config, NULL, gl2_0Attribs);
+ eglMakeCurrent(dpy, surface, surface, context);
+ eglQuerySurface(dpy, surface, EGL_WIDTH, &w);
+ eglQuerySurface(dpy, surface, EGL_HEIGHT, &h);
+ GLint dim = w<h ? w : h;
+
+ printGLString("Version", GL_VERSION);
+ printGLString("Vendor", GL_VENDOR);
+ printGLString("Renderer", GL_RENDERER);
+ printGLString("Extensions", GL_EXTENSIONS);
+
+ return 0;
+}
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index 4198154..558a024 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -180,6 +180,11 @@
= new HashMap<IBinder, ClientState>();
/**
+ * Set once the system is ready to run third party code.
+ */
+ boolean mSystemReady;
+
+ /**
* Id of the currently selected input method.
*/
String mCurMethodId;
@@ -508,6 +513,16 @@
}
public void systemReady() {
+ synchronized (mMethodMap) {
+ if (!mSystemReady) {
+ mSystemReady = true;
+ try {
+ startInputInnerLocked();
+ } catch (RuntimeException e) {
+ Log.w(TAG, "Unexpected exception", e);
+ }
+ }
+ }
}
public List<InputMethodInfo> getInputMethodList() {
@@ -727,6 +742,20 @@
}
}
+ return startInputInnerLocked();
+ }
+
+ InputBindResult startInputInnerLocked() {
+ if (mCurMethodId == null) {
+ return mNoBinding;
+ }
+
+ if (!mSystemReady) {
+ // If the system is not yet ready, we shouldn't be running third
+ // party code.
+ return new InputBindResult(null, mCurMethodId, mCurSeq);
+ }
+
InputMethodInfo info = mMethodMap.get(mCurMethodId);
if (info == null) {
throw new IllegalArgumentException("Unknown id: " + mCurMethodId);
@@ -777,17 +806,20 @@
synchronized (mMethodMap) {
if (mCurIntent != null && name.equals(mCurIntent.getComponent())) {
mCurMethod = IInputMethod.Stub.asInterface(service);
+ if (mCurToken == null) {
+ Log.w(TAG, "Service connected without a token!");
+ unbindCurrentMethodLocked(false);
+ return;
+ }
+ if (DEBUG) Log.v(TAG, "Initiating attach with token: " + mCurToken);
+ executeOrSendMessage(mCurMethod, mCaller.obtainMessageOO(
+ MSG_ATTACH_TOKEN, mCurMethod, mCurToken));
if (mCurClient != null) {
- if (DEBUG) Log.v(TAG, "Initiating attach with token: " + mCurToken);
+ if (DEBUG) Log.v(TAG, "Creating first session while with client "
+ + mCurClient);
executeOrSendMessage(mCurMethod, mCaller.obtainMessageOO(
- MSG_ATTACH_TOKEN, mCurMethod, mCurToken));
- if (mCurClient != null) {
- if (DEBUG) Log.v(TAG, "Creating first session while with client "
- + mCurClient);
- executeOrSendMessage(mCurMethod, mCaller.obtainMessageOO(
- MSG_CREATE_SESSION, mCurMethod,
- new MethodCallback(mCurMethod)));
- }
+ MSG_CREATE_SESSION, mCurMethod,
+ new MethodCallback(mCurMethod)));
}
}
}
@@ -977,6 +1009,11 @@
mShowExplicitlyRequested = true;
mShowForced = true;
}
+
+ if (!mSystemReady) {
+ return false;
+ }
+
boolean res = false;
if (mCurMethod != null) {
executeOrSendMessage(mCurMethod, mCaller.obtainMessageIOO(
@@ -1612,7 +1649,7 @@
+ " mShowExplicitlyRequested=" + mShowExplicitlyRequested
+ " mShowForced=" + mShowForced
+ " mInputShown=" + mInputShown);
- p.println(" mScreenOn=" + mScreenOn);
+ p.println(" mSystemReady=" + mSystemReady + " mScreenOn=" + mScreenOn);
}
if (client != null) {
diff --git a/services/java/com/android/server/KeyInputQueue.java b/services/java/com/android/server/KeyInputQueue.java
index 7ca12f21..244e136 100644
--- a/services/java/com/android/server/KeyInputQueue.java
+++ b/services/java/com/android/server/KeyInputQueue.java
@@ -54,6 +54,7 @@
private static final String EXCLUDED_DEVICES_PATH = "etc/excluded-input-devices.xml";
final SparseArray<InputDevice> mDevices = new SparseArray<InputDevice>();
+ final SparseArray<InputDevice> mIgnoredDevices = new SparseArray<InputDevice>();
final ArrayList<VirtualKey> mVirtualKeys = new ArrayList<VirtualKey>();
final HapticFeedbackCallback mHapticFeedbackCallback;
@@ -391,26 +392,50 @@
if (ev.type == RawInputEvent.EV_DEVICE_ADDED) {
synchronized (mFirst) {
di = newInputDevice(ev.deviceId);
- mDevices.put(ev.deviceId, di);
- if ((di.classes & RawInputEvent.CLASS_TOUCHSCREEN) != 0) {
- readVirtualKeys(di.name);
+ if (di.classes != 0) {
+ // If this device is some kind of input class,
+ // we care about it.
+ mDevices.put(ev.deviceId, di);
+ if ((di.classes & RawInputEvent.CLASS_TOUCHSCREEN) != 0) {
+ readVirtualKeys(di.name);
+ }
+ // The configuration may have changed because
+ // of this device.
+ configChanged = true;
+ } else {
+ // We won't do anything with this device.
+ mIgnoredDevices.put(ev.deviceId, di);
+ Log.i(TAG, "Ignoring non-input device: id=0x"
+ + Integer.toHexString(di.id)
+ + ", name=" + di.name);
}
- configChanged = true;
}
} else if (ev.type == RawInputEvent.EV_DEVICE_REMOVED) {
synchronized (mFirst) {
- Log.i(TAG, "Device removed: id=0x"
- + Integer.toHexString(ev.deviceId));
+ if (false) {
+ Log.i(TAG, "Device removed: id=0x"
+ + Integer.toHexString(ev.deviceId));
+ }
di = mDevices.get(ev.deviceId);
if (di != null) {
mDevices.delete(ev.deviceId);
+ // The configuration may have changed because
+ // of this device.
configChanged = true;
+ } else if ((di=mIgnoredDevices.get(ev.deviceId)) != null) {
+ mIgnoredDevices.remove(ev.deviceId);
} else {
- Log.w(TAG, "Bad device id: " + ev.deviceId);
+ Log.w(TAG, "Removing bad device id: "
+ + Integer.toHexString(ev.deviceId));
+ continue;
}
}
} else {
di = getInputDevice(ev.deviceId);
+ if (di == null) {
+ // This may be some junk from an ignored device.
+ continue;
+ }
// first crack at it
send = preprocessEvent(di, ev);
@@ -422,10 +447,6 @@
}
}
- if (di == null) {
- continue;
- }
-
if (configChanged) {
synchronized (mFirst) {
addLocked(di, System.nanoTime(), 0,
@@ -1056,28 +1077,33 @@
private InputDevice newInputDevice(int deviceId) {
int classes = getDeviceClasses(deviceId);
String name = getDeviceName(deviceId);
- Log.i(TAG, "Device added: id=0x" + Integer.toHexString(deviceId)
- + ", name=" + name
- + ", classes=" + Integer.toHexString(classes));
- InputDevice.AbsoluteInfo absX;
- InputDevice.AbsoluteInfo absY;
- InputDevice.AbsoluteInfo absPressure;
- InputDevice.AbsoluteInfo absSize;
- if ((classes&RawInputEvent.CLASS_TOUCHSCREEN_MT) != 0) {
- absX = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_MT_POSITION_X, "X");
- absY = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_MT_POSITION_Y, "Y");
- absPressure = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_MT_TOUCH_MAJOR, "Pressure");
- absSize = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_MT_WIDTH_MAJOR, "Size");
- } else if ((classes&RawInputEvent.CLASS_TOUCHSCREEN) != 0) {
- absX = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_X, "X");
- absY = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_Y, "Y");
- absPressure = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_PRESSURE, "Pressure");
- absSize = loadAbsoluteInfo(deviceId, RawInputEvent.ABS_TOOL_WIDTH, "Size");
- } else {
- absX = null;
- absY = null;
- absPressure = null;
- absSize = null;
+ InputDevice.AbsoluteInfo absX = null;
+ InputDevice.AbsoluteInfo absY = null;
+ InputDevice.AbsoluteInfo absPressure = null;
+ InputDevice.AbsoluteInfo absSize = null;
+ if (classes != 0) {
+ Log.i(TAG, "Device added: id=0x" + Integer.toHexString(deviceId)
+ + ", name=" + name
+ + ", classes=" + Integer.toHexString(classes));
+ if ((classes&RawInputEvent.CLASS_TOUCHSCREEN_MT) != 0) {
+ absX = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_MT_POSITION_X, "X");
+ absY = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_MT_POSITION_Y, "Y");
+ absPressure = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_MT_TOUCH_MAJOR, "Pressure");
+ absSize = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_MT_WIDTH_MAJOR, "Size");
+ } else if ((classes&RawInputEvent.CLASS_TOUCHSCREEN) != 0) {
+ absX = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_X, "X");
+ absY = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_Y, "Y");
+ absPressure = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_PRESSURE, "Pressure");
+ absSize = loadAbsoluteInfo(deviceId,
+ RawInputEvent.ABS_TOOL_WIDTH, "Size");
+ }
}
return new InputDevice(deviceId, classes, name, absX, absY, absPressure, absSize);
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index 14cd7a8..82cf1bc 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -112,6 +112,7 @@
private static final boolean MULTIPLE_APPLICATION_UIDS = true;
private static final int RADIO_UID = Process.PHONE_UID;
+ private static final int LOG_UID = Process.LOG_UID;
private static final int FIRST_APPLICATION_UID =
Process.FIRST_APPLICATION_UID;
private static final int MAX_APPLICATION_UIDS = 1000;
@@ -364,6 +365,10 @@
MULTIPLE_APPLICATION_UIDS
? RADIO_UID : FIRST_APPLICATION_UID,
ApplicationInfo.FLAG_SYSTEM);
+ mSettings.addSharedUserLP("android.uid.log",
+ MULTIPLE_APPLICATION_UIDS
+ ? LOG_UID : FIRST_APPLICATION_UID,
+ ApplicationInfo.FLAG_SYSTEM);
String separateProcesses = SystemProperties.get("debug.separate_processes");
if (separateProcesses != null && separateProcesses.length() > 0) {
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index df01c61..1158a71 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -92,22 +92,22 @@
// Critical services...
try {
- Log.i(TAG, "Starting Entropy Service.");
+ Log.i(TAG, "Entropy Service");
ServiceManager.addService("entropy", new EntropyService());
- Log.i(TAG, "Starting Power Manager.");
+ Log.i(TAG, "Power Manager");
power = new PowerManagerService();
ServiceManager.addService(Context.POWER_SERVICE, power);
- Log.i(TAG, "Starting Activity Manager.");
+ Log.i(TAG, "Activity Manager");
context = ActivityManagerService.main(factoryTest);
- Log.i(TAG, "Starting telephony registry");
+ Log.i(TAG, "Telephony Registry");
ServiceManager.addService("telephony.registry", new TelephonyRegistry(context));
AttributeCache.init(context);
- Log.i(TAG, "Starting Package Manager.");
+ Log.i(TAG, "Package Manager");
pm = PackageManagerService.main(context,
factoryTest != SystemServer.FACTORY_TEST_OFF);
@@ -116,25 +116,25 @@
mContentResolver = context.getContentResolver();
try {
- Log.i(TAG, "Starting Account Manager.");
+ Log.i(TAG, "Account Manager");
ServiceManager.addService(Context.ACCOUNT_SERVICE,
new AccountManagerService(context));
} catch (Throwable e) {
Log.e(TAG, "Failure starting Account Manager", e);
}
- Log.i(TAG, "Starting Content Manager.");
+ Log.i(TAG, "Content Manager");
ContentService.main(context,
factoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL);
- Log.i(TAG, "Starting System Content Providers.");
+ Log.i(TAG, "System Content Providers");
ActivityManagerService.installSystemProviders();
- Log.i(TAG, "Starting Battery Service.");
+ Log.i(TAG, "Battery Service");
battery = new BatteryService(context);
ServiceManager.addService("battery", battery);
- Log.i(TAG, "Starting Hardware Service.");
+ Log.i(TAG, "Hardware Service");
hardware = new HardwareService(context);
ServiceManager.addService("hardware", hardware);
@@ -142,18 +142,19 @@
// hardware service, content providers and the battery service.
power.init(context, hardware, ActivityManagerService.getDefault(), battery);
- Log.i(TAG, "Starting Alarm Manager.");
+ Log.i(TAG, "Alarm Manager");
AlarmManagerService alarm = new AlarmManagerService(context);
ServiceManager.addService(Context.ALARM_SERVICE, alarm);
+ Log.i(TAG, "Init Watchdog");
Watchdog.getInstance().init(context, battery, power, alarm,
ActivityManagerService.self());
// Sensor Service is needed by Window Manager, so this goes first
- Log.i(TAG, "Starting Sensor Service.");
+ Log.i(TAG, "Sensor Service");
ServiceManager.addService(Context.SENSOR_SERVICE, new SensorService(context));
- Log.i(TAG, "Starting Window Manager.");
+ Log.i(TAG, "Window Manager");
wm = WindowManagerService.main(context, power,
factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL);
ServiceManager.addService(Context.WINDOW_SERVICE, wm);
@@ -171,7 +172,7 @@
Log.i(TAG, "Registering null Bluetooth Service (factory test)");
ServiceManager.addService(Context.BLUETOOTH_SERVICE, null);
} else {
- Log.i(TAG, "Starting Bluetooth Service.");
+ Log.i(TAG, "Bluetooth Service");
bluetooth = new BluetoothService(context);
ServiceManager.addService(Context.BLUETOOTH_SERVICE, bluetooth);
bluetooth.initAfterRegistration();
@@ -198,7 +199,7 @@
if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
try {
- Log.i(TAG, "Starting Status Bar Service.");
+ Log.i(TAG, "Status Bar");
statusBar = new StatusBarService(context);
ServiceManager.addService("statusbar", statusBar);
} catch (Throwable e) {
@@ -206,14 +207,14 @@
}
try {
- Log.i(TAG, "Starting Clipboard Service.");
+ Log.i(TAG, "Clipboard Service");
ServiceManager.addService("clipboard", new ClipboardService(context));
} catch (Throwable e) {
Log.e(TAG, "Failure starting Clipboard Service", e);
}
try {
- Log.i(TAG, "Starting Input Method Service.");
+ Log.i(TAG, "Input Method Service");
imm = new InputMethodManagerService(context, statusBar);
ServiceManager.addService(Context.INPUT_METHOD_SERVICE, imm);
} catch (Throwable e) {
@@ -221,14 +222,14 @@
}
try {
- Log.i(TAG, "Starting NetStat Service.");
+ Log.i(TAG, "NetStat Service");
ServiceManager.addService("netstat", new NetStatService(context));
} catch (Throwable e) {
Log.e(TAG, "Failure starting NetStat Service", e);
}
try {
- Log.i(TAG, "Starting Connectivity Service.");
+ Log.i(TAG, "Connectivity Service");
connectivity = ConnectivityService.getInstance(context);
ServiceManager.addService(Context.CONNECTIVITY_SERVICE, connectivity);
} catch (Throwable e) {
@@ -236,7 +237,7 @@
}
try {
- Log.i(TAG, "Starting Accessibility Manager.");
+ Log.i(TAG, "Accessibility Manager");
ServiceManager.addService(Context.ACCESSIBILITY_SERVICE,
new AccessibilityManagerService(context));
} catch (Throwable e) {
@@ -244,7 +245,7 @@
}
try {
- Log.i(TAG, "Starting Notification Manager.");
+ Log.i(TAG, "Notification Manager");
notification = new NotificationManagerService(context, statusBar, hardware);
ServiceManager.addService(Context.NOTIFICATION_SERVICE, notification);
} catch (Throwable e) {
@@ -253,14 +254,14 @@
try {
// MountService must start after NotificationManagerService
- Log.i(TAG, "Starting Mount Service.");
+ Log.i(TAG, "Mount Service");
ServiceManager.addService("mount", new MountService(context));
} catch (Throwable e) {
Log.e(TAG, "Failure starting Mount Service", e);
}
try {
- Log.i(TAG, "Starting DeviceStorageMonitor service");
+ Log.i(TAG, "Device Storage Monitor");
ServiceManager.addService(DeviceStorageMonitorService.SERVICE,
new DeviceStorageMonitorService(context));
} catch (Throwable e) {
@@ -268,14 +269,14 @@
}
try {
- Log.i(TAG, "Starting Location Manager.");
+ Log.i(TAG, "Location Manager");
ServiceManager.addService(Context.LOCATION_SERVICE, new LocationManagerService(context));
} catch (Throwable e) {
Log.e(TAG, "Failure starting Location Manager", e);
}
try {
- Log.i(TAG, "Starting Search Service.");
+ Log.i(TAG, "Search Service");
ServiceManager.addService( Context.SEARCH_SERVICE, new SearchManagerService(context) );
} catch (Throwable e) {
Log.e(TAG, "Failure starting Search Service", e);
@@ -287,7 +288,7 @@
}
try {
- Log.i(TAG, "Starting Checkin Service.");
+ Log.i(TAG, "Checkin Service");
Intent intent = new Intent().setComponent(new ComponentName(
"com.google.android.server.checkin",
"com.google.android.server.checkin.CheckinService"));
@@ -300,7 +301,7 @@
}
try {
- Log.i(TAG, "Starting Wallpaper Service");
+ Log.i(TAG, "Wallpaper Service");
wallpaper = new WallpaperManagerService(context);
ServiceManager.addService(Context.WALLPAPER_SERVICE, wallpaper);
} catch (Throwable e) {
@@ -308,14 +309,14 @@
}
try {
- Log.i(TAG, "Starting Audio Service");
+ Log.i(TAG, "Audio Service");
ServiceManager.addService(Context.AUDIO_SERVICE, new AudioService(context));
} catch (Throwable e) {
Log.e(TAG, "Failure starting Audio Service", e);
}
try {
- Log.i(TAG, "Starting HeadsetObserver");
+ Log.i(TAG, "Headset Observer");
// Listen for wired headset changes
headset = new HeadsetObserver(context);
} catch (Throwable e) {
@@ -323,7 +324,7 @@
}
try {
- Log.i(TAG, "Starting DockObserver");
+ Log.i(TAG, "Dock Observer");
// Listen for dock station changes
dock = new DockObserver(context);
} catch (Throwable e) {
@@ -331,14 +332,14 @@
}
try {
- Log.i(TAG, "Starting Backup Service");
+ Log.i(TAG, "Backup Service");
ServiceManager.addService(Context.BACKUP_SERVICE, new BackupManagerService(context));
} catch (Throwable e) {
Log.e(TAG, "Failure starting Backup Service", e);
}
try {
- Log.i(TAG, "Starting AppWidget Service");
+ Log.i(TAG, "AppWidget Service");
appWidget = new AppWidgetService(context);
ServiceManager.addService(Context.APPWIDGET_SERVICE, appWidget);
} catch (Throwable e) {
@@ -361,7 +362,7 @@
false, new AdbSettingsObserver());
// It is now time to start up the app processes...
- boolean safeMode = wm.detectSafeMode();
+ final boolean safeMode = wm.detectSafeMode();
if (notification != null) {
notification.systemReady();
@@ -370,31 +371,45 @@
if (statusBar != null) {
statusBar.systemReady();
}
- if (imm != null) {
- imm.systemReady();
- }
wm.systemReady();
power.systemReady();
try {
pm.systemReady();
} catch (RemoteException e) {
}
- if (appWidget != null) {
- appWidget.systemReady(safeMode);
- }
- // After making the following code, third party code may be running...
- try {
- ActivityManagerNative.getDefault().systemReady();
- } catch (RemoteException e) {
- }
+ // These are needed to propagate to the runnable below.
+ final BatteryService batteryF = battery;
+ final ConnectivityService connectivityF = connectivity;
+ final DockObserver dockF = dock;
+ final AppWidgetService appWidgetF = appWidget;
+ final WallpaperManagerService wallpaperF = wallpaper;
+ final InputMethodManagerService immF = imm;
+
+ // We now tell the activity manager it is okay to run third party
+ // code. It will call back into us once it has gotten to the state
+ // where third party code can really run (but before it has actually
+ // started launching the initial applications), for us to complete our
+ // initialization.
+ ((ActivityManagerService)ActivityManagerNative.getDefault())
+ .systemReady(new Runnable() {
+ public void run() {
+ Log.i(TAG, "Making services ready");
+
+ if (batteryF != null) batteryF.systemReady();
+ if (connectivityF != null) connectivityF.systemReady();
+ if (dockF != null) dockF.systemReady();
+ Watchdog.getInstance().start();
- if (wallpaper != null) wallpaper.systemReady();
- if (battery != null) battery.systemReady();
- if (connectivity != null) connectivity.systemReady();
- if (dock != null) dock.systemReady();
- Watchdog.getInstance().start();
-
+ // It is now okay to let the various system services start their
+ // third party code...
+
+ if (appWidgetF != null) appWidgetF.systemReady(safeMode);
+ if (wallpaperF != null) wallpaperF.systemReady();
+ if (immF != null) immF.systemReady();
+ }
+ });
+
Looper.loop();
Log.d(TAG, "System ServerThread is exiting!");
}
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index 81e0136..1ea1b31 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -135,6 +135,7 @@
static final boolean DEBUG_INPUT = false;
static final boolean DEBUG_INPUT_METHOD = false;
static final boolean DEBUG_VISIBILITY = false;
+ static final boolean DEBUG_WINDOW_MOVEMENT = false;
static final boolean DEBUG_ORIENTATION = false;
static final boolean DEBUG_APP_TRANSITIONS = false;
static final boolean DEBUG_STARTING_WINDOW = false;
@@ -375,11 +376,14 @@
// made visible or hidden at the next transition.
int mNextAppTransition = WindowManagerPolicy.TRANSIT_NONE;
boolean mAppTransitionReady = false;
+ boolean mAppTransitionRunning = false;
boolean mAppTransitionTimeout = false;
boolean mStartingIconInTransition = false;
boolean mSkipAppTransitionAnimation = false;
final ArrayList<AppWindowToken> mOpeningApps = new ArrayList<AppWindowToken>();
final ArrayList<AppWindowToken> mClosingApps = new ArrayList<AppWindowToken>();
+ final ArrayList<AppWindowToken> mToTopApps = new ArrayList<AppWindowToken>();
+ final ArrayList<AppWindowToken> mToBottomApps = new ArrayList<AppWindowToken>();
//flag to detect fat touch events
boolean mFatTouch = false;
@@ -690,7 +694,11 @@
i--;
break;
}
- if (t.windows.size() > 0) {
+
+ // We haven't reached the token yet; if this token
+ // is not going to the bottom and has windows, we can
+ // use it as an anchor for when we do reach the token.
+ if (!t.sendingToBottom && t.windows.size() > 0) {
pos = t.windows.get(0);
}
}
@@ -712,6 +720,8 @@
}
placeWindowBefore(pos, win);
} else {
+ // Continue looking down until we find the first
+ // token that has windows.
while (i >= 0) {
AppWindowToken t = mAppTokens.get(i);
final int NW = t.windows.size();
@@ -1894,6 +1904,12 @@
moveInputMethodWindowsIfNeededLocked(false);
}
+ if (false) {
+ RuntimeException e = new RuntimeException("here");
+ e.fillInStackTrace();
+ Log.w(TAG, "Removing window " + win, e);
+ }
+
mPolicy.removeWindowLw(win);
win.removeLocked();
@@ -2707,10 +2723,10 @@
Configuration config;
synchronized(mWindowMap) {
config = updateOrientationFromAppTokensLocked(currentConfig, freezeThisOneIfNeeded);
- }
- if (config != null) {
- mLayoutNeeded = true;
- performLayoutAndPlaceSurfacesLocked();
+ if (config != null) {
+ mLayoutNeeded = true;
+ performLayoutAndPlaceSurfacesLocked();
+ }
}
return config;
}
@@ -2760,7 +2776,6 @@
mTempConfiguration.setToDefaults();
if (computeNewConfigurationLocked(mTempConfiguration)) {
if (appConfig.diff(mTempConfiguration) != 0) {
- Log.i(TAG, "Config changed: " + mTempConfiguration);
return new Configuration(mTempConfiguration);
}
}
@@ -3198,12 +3213,14 @@
wtoken.setDummyAnimation();
mOpeningApps.remove(wtoken);
mClosingApps.remove(wtoken);
+ wtoken.waitingToShow = wtoken.waitingToHide = false;
wtoken.inPendingTransaction = true;
if (visible) {
mOpeningApps.add(wtoken);
wtoken.allDrawn = false;
wtoken.startingDisplayed = false;
wtoken.startingMoved = false;
+ wtoken.waitingToShow = true;
if (wtoken.clientHidden) {
// In the case where we are making an app visible
@@ -3217,6 +3234,7 @@
}
} else {
mClosingApps.add(wtoken);
+ wtoken.waitingToHide = true;
}
return;
}
@@ -3351,10 +3369,12 @@
delayed = setTokenVisibilityLocked(wtoken, null, false, WindowManagerPolicy.TRANSIT_NONE, true);
wtoken.inPendingTransaction = false;
mOpeningApps.remove(wtoken);
+ wtoken.waitingToShow = false;
if (mClosingApps.contains(wtoken)) {
delayed = true;
} else if (mNextAppTransition != WindowManagerPolicy.TRANSIT_NONE) {
mClosingApps.add(wtoken);
+ wtoken.waitingToHide = true;
delayed = true;
}
if (DEBUG_APP_TRANSITIONS) Log.v(
@@ -3399,11 +3419,15 @@
final int NW = token.windows.size();
for (int i=0; i<NW; i++) {
WindowState win = token.windows.get(i);
+ if (DEBUG_WINDOW_MOVEMENT) Log.v(TAG, "Tmp removing window " + win);
mWindows.remove(win);
int j = win.mChildWindows.size();
while (j > 0) {
j--;
- mWindows.remove(win.mChildWindows.get(j));
+ WindowState cwin = (WindowState)win.mChildWindows.get(j);
+ if (DEBUG_WINDOW_MOVEMENT) Log.v(TAG,
+ "Tmp removing child window " + cwin);
+ mWindows.remove(cwin);
}
}
return NW > 0;
@@ -3441,6 +3465,12 @@
final AppWindowToken wtoken = mAppTokens.get(tokenPos-1);
if (DEBUG_REORDER) Log.v(TAG, "Looking for lower windows @ "
+ tokenPos + " -- " + wtoken.token);
+ if (wtoken.sendingToBottom) {
+ if (DEBUG_REORDER) Log.v(TAG,
+ "Skipping token -- currently sending to bottom");
+ tokenPos--;
+ continue;
+ }
int i = wtoken.windows.size();
while (i > 0) {
i--;
@@ -3449,7 +3479,7 @@
while (j > 0) {
j--;
WindowState cwin = (WindowState)win.mChildWindows.get(j);
- if (cwin.mSubLayer >= 0 ) {
+ if (cwin.mSubLayer >= 0) {
for (int pos=NW-1; pos>=0; pos--) {
if (mWindows.get(pos) == cwin) {
if (DEBUG_REORDER) Log.v(TAG,
@@ -3478,14 +3508,20 @@
for (int j=0; j<NCW; j++) {
WindowState cwin = (WindowState)win.mChildWindows.get(j);
if (!added && cwin.mSubLayer >= 0) {
+ if (DEBUG_WINDOW_MOVEMENT) Log.v(TAG, "Re-adding child window at "
+ + index + ": " + cwin);
mWindows.add(index, win);
index++;
added = true;
}
+ if (DEBUG_WINDOW_MOVEMENT) Log.v(TAG, "Re-adding window at "
+ + index + ": " + cwin);
mWindows.add(index, cwin);
index++;
}
if (!added) {
+ if (DEBUG_WINDOW_MOVEMENT) Log.v(TAG, "Re-adding window at "
+ + index + ": " + win);
mWindows.add(index, win);
index++;
}
@@ -3553,6 +3589,26 @@
}
}
+ private void moveAppWindowsLocked(AppWindowToken wtoken, int tokenPos,
+ boolean updateFocusAndLayout) {
+ // First remove all of the windows from the list.
+ tmpRemoveAppWindowsLocked(wtoken);
+
+ // Where to start adding?
+ int pos = findWindowOffsetLocked(tokenPos);
+
+ // And now add them back at the correct place.
+ pos = reAddAppWindowsLocked(pos, wtoken);
+
+ if (updateFocusAndLayout) {
+ if (!updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES)) {
+ assignLayersLocked();
+ }
+ mLayoutNeeded = true;
+ performLayoutAndPlaceSurfacesLocked();
+ }
+ }
+
private void moveAppWindowsLocked(List<IBinder> tokens, int tokenPos) {
// First remove all of the windows from the list.
final int N = tokens.size();
@@ -3575,7 +3631,9 @@
}
}
- updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES);
+ if (!updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES)) {
+ assignLayersLocked();
+ }
mLayoutNeeded = true;
performLayoutAndPlaceSurfacesLocked();
@@ -3596,9 +3654,19 @@
AppWindowToken wt = findAppWindowToken(tokens.get(i));
if (wt != null) {
mAppTokens.add(wt);
+ if (mNextAppTransition != WindowManagerPolicy.TRANSIT_NONE) {
+ mToTopApps.remove(wt);
+ mToBottomApps.remove(wt);
+ mToTopApps.add(wt);
+ wt.sendingToBottom = false;
+ wt.sendingToTop = true;
+ }
}
}
- moveAppWindowsLocked(tokens, mAppTokens.size());
+
+ if (mNextAppTransition == WindowManagerPolicy.TRANSIT_NONE) {
+ moveAppWindowsLocked(tokens, mAppTokens.size());
+ }
}
Binder.restoreCallingIdentity(origId);
}
@@ -3618,10 +3686,20 @@
AppWindowToken wt = findAppWindowToken(tokens.get(i));
if (wt != null) {
mAppTokens.add(pos, wt);
+ if (mNextAppTransition != WindowManagerPolicy.TRANSIT_NONE) {
+ mToTopApps.remove(wt);
+ mToBottomApps.remove(wt);
+ mToBottomApps.add(i, wt);
+ wt.sendingToTop = false;
+ wt.sendingToBottom = true;
+ }
pos++;
}
}
- moveAppWindowsLocked(tokens, 0);
+
+ if (mNextAppTransition == WindowManagerPolicy.TRANSIT_NONE) {
+ moveAppWindowsLocked(tokens, 0);
+ }
}
Binder.restoreCallingIdentity(origId);
}
@@ -4253,19 +4331,6 @@
if (!computeNewConfigurationLocked(config)) {
return null;
}
- Log.i(TAG, "Config changed: " + config);
- long now = SystemClock.uptimeMillis();
- //Log.i(TAG, "Config changing, gc pending: " + mFreezeGcPending + ", now " + now);
- if (mFreezeGcPending != 0) {
- if (now > (mFreezeGcPending+1000)) {
- //Log.i(TAG, "Gc! " + now + " > " + (mFreezeGcPending+1000));
- mH.removeMessages(H.FORCE_GC);
- Runtime.getRuntime().gc();
- mFreezeGcPending = now;
- }
- } else {
- mFreezeGcPending = now;
- }
return config;
}
@@ -7213,6 +7278,10 @@
* of a transition that has not yet been started.
*/
boolean isReadyForDisplay() {
+ if (mRootToken.waitingToShow &&
+ mNextAppTransition != WindowManagerPolicy.TRANSIT_NONE) {
+ return false;
+ }
final AppWindowToken atoken = mAppToken;
final boolean animating = atoken != null
? (atoken.animation != null) : false;
@@ -7547,6 +7616,22 @@
// Temporary for finding which tokens no longer have visible windows.
boolean hasVisible;
+ // Set to true when this token is in a pending transaction where it
+ // will be shown.
+ boolean waitingToShow;
+
+ // Set to true when this token is in a pending transaction where it
+ // will be hidden.
+ boolean waitingToHide;
+
+ // Set to true when this token is in a pending transaction where its
+ // windows will be put to the bottom of the list.
+ boolean sendingToBottom;
+
+ // Set to true when this token is in a pending transaction where its
+ // windows will be put to the top of the list.
+ boolean sendingToTop;
+
WindowToken(IBinder _token, int type, boolean _explicit) {
token = _token;
windowType = type;
@@ -7559,6 +7644,12 @@
pw.print(prefix); pw.print("windowType="); pw.print(windowType);
pw.print(" hidden="); pw.print(hidden);
pw.print(" hasVisible="); pw.println(hasVisible);
+ if (waitingToShow || waitingToHide || sendingToBottom || sendingToTop) {
+ pw.print(prefix); pw.print("waitingToShow="); pw.print(waitingToShow);
+ pw.print(" waitingToHide="); pw.print(waitingToHide);
+ pw.print(" sendingToBottom="); pw.print(sendingToBottom);
+ pw.print(" sendingToTop="); pw.println(sendingToTop);
+ }
}
@Override
@@ -7868,7 +7959,7 @@
pw.print(prefix); pw.print("allAppWindows="); pw.println(allAppWindows);
}
pw.print(prefix); pw.print("groupId="); pw.print(groupId);
- pw.print(" appFullscreen="); pw.println(appFullscreen);
+ pw.print(" appFullscreen="); pw.print(appFullscreen);
pw.print(" requestedOrientation="); pw.println(requestedOrientation);
pw.print(prefix); pw.print("hiddenRequested="); pw.print(hiddenRequested);
pw.print(" clientHidden="); pw.print(clientHidden);
@@ -8434,6 +8525,40 @@
return win;
}
+ final void rebuildAppWindowListLocked() {
+ int NW = mWindows.size();
+ int i;
+
+ // First remove all existing app windows.
+ i=0;
+ while (i < NW) {
+ if (((WindowState)mWindows.get(i)).mAppToken != null) {
+ WindowState win = (WindowState)mWindows.remove(i);
+ if (DEBUG_WINDOW_MOVEMENT) Log.v(TAG,
+ "Rebuild removing window: " + win);
+ NW--;
+ continue;
+ }
+ i++;
+ }
+
+ // First add all of the exiting app tokens... these are no longer
+ // in the main app list, but still have windows shown. We put them
+ // in the back because now that the animation is over we no longer
+ // will care about them.
+ int NT = mExitingAppTokens.size();
+ i = 0;
+ for (int j=0; j<NT; j++) {
+ i = reAddAppWindowsLocked(i, mExitingAppTokens.get(j));
+ }
+
+ // And add in the still active app tokens in Z order.
+ NT = mAppTokens.size();
+ for (int j=0; j<NT; j++) {
+ i = reAddAppWindowsLocked(i, mAppTokens.get(j));
+ }
+ }
+
private final void assignLayersLocked() {
int N = mWindows.size();
int curBaseLayer = 0;
@@ -8611,7 +8736,6 @@
final int dw = mDisplay.getWidth();
final int dh = mDisplay.getHeight();
- final int N = mWindows.size();
int i;
// FIRST LOOP: Perform a layout, if needed.
@@ -8671,6 +8795,8 @@
mPolicy.beginAnimationLw(dw, dh);
+ final int N = mWindows.size();
+
for (i=N-1; i>=0; i--) {
WindowState w = (WindowState)mWindows.get(i);
@@ -8814,12 +8940,30 @@
}
mNextAppTransition = WindowManagerPolicy.TRANSIT_NONE;
mAppTransitionReady = false;
+ mAppTransitionRunning = true;
mAppTransitionTimeout = false;
mStartingIconInTransition = false;
mSkipAppTransitionAnimation = false;
mH.removeMessages(H.APP_TRANSITION_TIMEOUT);
+ // If there are applications waiting to come to the
+ // top of the stack, now is the time to move their windows.
+ // (Note that we don't do apps going to the bottom
+ // here -- we want to keep their windows in the old
+ // Z-order until the animation completes.)
+ if (mToTopApps.size() > 0) {
+ NN = mAppTokens.size();
+ for (i=0; i<NN; i++) {
+ AppWindowToken wtoken = mAppTokens.get(i);
+ if (wtoken.sendingToTop) {
+ wtoken.sendingToTop = false;
+ moveAppWindowsLocked(wtoken, NN, false);
+ }
+ }
+ mToTopApps.clear();
+ }
+
adjustWallpaperWindowsLocked();
wallpaperMayChange = false;
@@ -8889,6 +9033,7 @@
wtoken.animation = null;
setTokenVisibilityLocked(wtoken, lp, true, transit, false);
wtoken.updateReportedVisibilityLocked();
+ wtoken.waitingToShow = false;
wtoken.showAllWindowsLocked();
}
NN = mClosingApps.size();
@@ -8900,6 +9045,7 @@
wtoken.animation = null;
setTokenVisibilityLocked(wtoken, lp, false, transit, false);
wtoken.updateReportedVisibilityLocked();
+ wtoken.waitingToHide = false;
// Force the allDrawn flag, because we want to start
// this guy's animations regardless of whether it's
// gotten drawn.
@@ -8922,10 +9068,31 @@
}
}
+ if (!animating && mAppTransitionRunning) {
+ // We have finished the animation of an app transition. To do
+ // this, we have delayed a lot of operations like showing and
+ // hiding apps, moving apps in Z-order, etc. The app token list
+ // reflects the correct Z-order, but the window list may now
+ // be out of sync with it. So here we will just rebuild the
+ // entire app window list. Fun!
+ mAppTransitionRunning = false;
+ // Clear information about apps that were moving.
+ mToBottomApps.clear();
+
+ rebuildAppWindowListLocked();
+ restart = true;
+ moveInputMethodWindowsIfNeededLocked(false);
+ wallpaperMayChange = true;
+ mLayoutNeeded = true;
+ }
+
if (wallpaperMayChange) {
if (adjustWallpaperWindowsLocked()) {
assignLayersLocked();
}
+ if (mLayoutNeeded) {
+ performLayoutLockedInner();
+ }
}
} while (restart);
@@ -8941,6 +9108,8 @@
boolean syswin = false;
boolean backgroundFillerShown = false;
+ final int N = mWindows.size();
+
for (i=N-1; i>=0; i--) {
WindowState w = (WindowState)mWindows.get(i);
@@ -9407,13 +9576,29 @@
}
}
+ boolean needRelayout = false;
+
+ if (!animating && mAppTransitionRunning) {
+ // We have finished the animation of an app transition. To do
+ // this, we have delayed a lot of operations like showing and
+ // hiding apps, moving apps in Z-order, etc. The app token list
+ // reflects the correct Z-order, but the window list may now
+ // be out of sync with it. So here we will just rebuild the
+ // entire app window list. Fun!
+ mAppTransitionRunning = false;
+ needRelayout = true;
+ rebuildAppWindowListLocked();
+ // Clear information about apps that were moving.
+ mToBottomApps.clear();
+ }
+
if (focusDisplayed) {
mH.sendEmptyMessage(H.REPORT_LOSING_FOCUS);
}
if (wallpaperDestroyed) {
- wallpaperDestroyed = adjustWallpaperWindowsLocked();
+ needRelayout = adjustWallpaperWindowsLocked();
}
- if (wallpaperDestroyed) {
+ if (needRelayout) {
requestAnimationLocked(0);
} else if (animating) {
requestAnimationLocked(currentTime+(1000/60)-SystemClock.uptimeMillis());
@@ -9909,6 +10094,7 @@
pw.print(" mNextAppTransition=0x");
pw.print(Integer.toHexString(mNextAppTransition));
pw.print(", mAppTransitionReady="); pw.print(mAppTransitionReady);
+ pw.print(", mAppTransitionRunning="); pw.print(mAppTransitionRunning);
pw.print(", mAppTransitionTimeout="); pw.println( mAppTransitionTimeout);
pw.print(" mStartingIconInTransition="); pw.print(mStartingIconInTransition);
pw.print(", mSkipAppTransitionAnimation="); pw.println(mSkipAppTransitionAnimation);
@@ -9918,6 +10104,12 @@
if (mClosingApps.size() > 0) {
pw.print(" mClosingApps="); pw.println(mClosingApps);
}
+ if (mToTopApps.size() > 0) {
+ pw.print(" mToTopApps="); pw.println(mToTopApps);
+ }
+ if (mToBottomApps.size() > 0) {
+ pw.print(" mToBottomApps="); pw.println(mToBottomApps);
+ }
pw.print(" DisplayWidth="); pw.print(mDisplay.getWidth());
pw.print(" DisplayHeight="); pw.println(mDisplay.getHeight());
pw.println(" KeyWaiter state:");
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 38add94..03ebf0c 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -7414,8 +7414,6 @@
// In this case the provider is a single instance, so we can
// return it right away.
if (r != null) {
- if(true) Log.v(TAG, "Adding content provider requested by "+
- r.processName +" from process "+cpr.info.processName);
r.conProviders.add(cpr);
cpr.clients.add(r);
} else {
@@ -7526,8 +7524,6 @@
mProvidersByName.put(name, cpr);
if (r != null) {
- if(true) Log.v(TAG, "Adding content provider requested by "+
- r.processName +" from process "+cpr.info.processName);
r.conProviders.add(cpr);
cpr.clients.add(r);
} else {
@@ -7583,7 +7579,7 @@
ContentProviderRecord cpr = (ContentProviderRecord)mProvidersByName.get(name);
if(cpr == null) {
//remove from mProvidersByClass
- if(true) Log.v(TAG, name+" content provider not found in providers list");
+ if(localLOGV) Log.v(TAG, name+" content provider not found in providers list");
return;
}
final ProcessRecord r = getRecordForAppLocked(caller);
@@ -7594,11 +7590,11 @@
}
//update content provider record entry info
ContentProviderRecord localCpr = (ContentProviderRecord) mProvidersByClass.get(cpr.info.name);
- if(true) Log.v(TAG, "Removing content provider requested by "+
- r.processName+" from process "+localCpr.info.processName);
- if(localCpr.app == r) {
+ if(localLOGV) Log.v(TAG, "Removing content provider requested by "+
+ r.info.processName+" from process "+localCpr.appInfo.processName);
+ if(localCpr.appInfo.processName == r.info.processName) {
//should not happen. taken care of as a local provider
- if(true) Log.v(TAG, "local provider doing nothing Ignoring other names");
+ if(localLOGV) Log.v(TAG, "local provider doing nothing Ignoring other names");
return;
} else {
localCpr.clients.remove(r);
@@ -8192,7 +8188,7 @@
}
}
- systemReady();
+ systemReady(null);
}
private void retrieveSettings() {
@@ -8222,7 +8218,7 @@
return mSystemReady;
}
- public void systemReady() {
+ public void systemReady(final Runnable goingCallback) {
// In the simulator, startRunning will never have been called, which
// normally sets a few crucial variables. Do it here instead.
if (!Process.supportsProcesses()) {
@@ -8232,6 +8228,7 @@
synchronized(this) {
if (mSystemReady) {
+ if (goingCallback != null) goingCallback.run();
return;
}
@@ -8267,7 +8264,7 @@
synchronized (ActivityManagerService.this) {
mDidUpdate = true;
}
- systemReady();
+ systemReady(goingCallback);
}
};
}
@@ -8314,7 +8311,7 @@
}
}
- if (Config.LOGD) Log.d(TAG, "Start running!");
+ Log.i(TAG, "System now ready");
EventLog.writeEvent(LOG_BOOT_PROGRESS_AMS_READY,
SystemClock.uptimeMillis());
@@ -8356,6 +8353,8 @@
retrieveSettings();
+ if (goingCallback != null) goingCallback.run();
+
synchronized (this) {
if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
try {
@@ -12548,6 +12547,7 @@
}
mConfiguration = newConfig;
+ Log.i(TAG, "Config changed: " + newConfig);
Message msg = mHandler.obtainMessage(UPDATE_CONFIGURATION_MSG);
msg.obj = new Configuration(mConfiguration);
diff --git a/telephony/java/com/android/internal/telephony/CommandsInterface.java b/telephony/java/com/android/internal/telephony/CommandsInterface.java
index ed8bc1e..63bdc2c 100644
--- a/telephony/java/com/android/internal/telephony/CommandsInterface.java
+++ b/telephony/java/com/android/internal/telephony/CommandsInterface.java
@@ -144,7 +144,8 @@
static final int GSM_SMS_FAIL_CAUSE_MEMORY_CAPACITY_EXCEEDED = 0xD3;
static final int GSM_SMS_FAIL_CAUSE_UNSPECIFIED_ERROR = 0xFF;
- // CDMA SMS fail cause for acknowledgeLastIncomingCdmaSms. From TS N.S00005, 6.5.2.125.
+ // CDMA SMS fail cause for acknowledgeLastIncomingCdmaSms. From TS N.S0005, 6.5.2.125.
+ static final int CDMA_SMS_FAIL_CAUSE_INVALID_TELESERVICE_ID = 4;
static final int CDMA_SMS_FAIL_CAUSE_RESOURCE_SHORTAGE = 35;
static final int CDMA_SMS_FAIL_CAUSE_OTHER_TERMINAL_PROBLEM = 39;
diff --git a/telephony/java/com/android/internal/telephony/IccRecords.java b/telephony/java/com/android/internal/telephony/IccRecords.java
index ea24c25..b8d9e3c 100644
--- a/telephony/java/com/android/internal/telephony/IccRecords.java
+++ b/telephony/java/com/android/internal/telephony/IccRecords.java
@@ -31,7 +31,7 @@
public abstract class IccRecords extends Handler implements IccConstants {
protected static final boolean DBG = true;
- //***** Instance Variables
+ // ***** Instance Variables
protected PhoneBase phone;
protected RegistrantList recordsLoadedRegistrants = new RegistrantList();
@@ -40,7 +40,7 @@
protected AdnRecordCache adnCache;
- //***** Cached SIM State; cleared on channel close
+ // ***** Cached SIM State; cleared on channel close
protected boolean recordsRequested = false; // true if we've made requests for the sim records
@@ -54,23 +54,26 @@
protected boolean isVoiceMailFixed = false;
protected int countVoiceMessages = 0;
- protected int mncLength = 0; // 0 is used to indicate that the value
- // is not initialized
+ protected int mncLength = UNINITIALIZED;
protected int mailboxIndex = 0; // 0 is no mailbox dailing number associated
protected String spn;
protected int spnDisplayCondition;
- //***** Constants
+ // ***** Constants
+
+ // Markers for mncLength
+ protected static final int UNINITIALIZED = -1;
+ protected static final int UNKNOWN = 0;
// Bitmasks for SPN display rules.
protected static final int SPN_RULE_SHOW_SPN = 0x01;
protected static final int SPN_RULE_SHOW_PLMN = 0x02;
- //***** Event Constants
+ // ***** Event Constants
protected static final int EVENT_SET_MSISDN_DONE = 30;
- //***** Constructor
+ // ***** Constructor
public IccRecords(PhoneBase p) {
this.phone = p;
@@ -234,4 +237,3 @@
protected abstract void log(String s);
}
-
diff --git a/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java b/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java
index 2cb0041..8a5a6ae 100644
--- a/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java
+++ b/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java
@@ -32,8 +32,6 @@
* access Sms in Icc.
*/
public abstract class IccSmsInterfaceManager extends ISms.Stub {
- static final boolean DBG = true;
-
protected PhoneBase mPhone;
protected Context mContext;
protected SMSDispatcher mDispatcher;
@@ -80,9 +78,11 @@
mPhone.getContext().enforceCallingPermission(
"android.permission.SEND_SMS",
"Sending SMS message");
- if (DBG) log("sendData: destAddr=" + destAddr + " scAddr=" + scAddr + " destPort=" +
+ if (Log.isLoggable("SMS", Log.VERBOSE)) {
+ log("sendData: destAddr=" + destAddr + " scAddr=" + scAddr + " destPort=" +
destPort + " data='"+ HexDump.toHexString(data) + "' sentIntent=" +
sentIntent + " deliveryIntent=" + deliveryIntent);
+ }
mDispatcher.sendData(destAddr, scAddr, destPort, data, sentIntent, deliveryIntent);
}
@@ -115,9 +115,11 @@
mPhone.getContext().enforceCallingPermission(
"android.permission.SEND_SMS",
"Sending SMS message");
- if (DBG) log("sendText: destAddr=" + destAddr + " scAddr=" + scAddr +
+ if (Log.isLoggable("SMS", Log.VERBOSE)) {
+ log("sendText: destAddr=" + destAddr + " scAddr=" + scAddr +
" text='"+ text + "' sentIntent=" +
sentIntent + " deliveryIntent=" + deliveryIntent);
+ }
mDispatcher.sendText(destAddr, scAddr, text, sentIntent, deliveryIntent);
}
@@ -151,7 +153,13 @@
mPhone.getContext().enforceCallingPermission(
"android.permission.SEND_SMS",
"Sending SMS message");
- if (DBG) log("sendMultipartText");
+ if (Log.isLoggable("SMS", Log.VERBOSE)) {
+ int i = 0;
+ for (String part : parts) {
+ log("sendMultipartText: destAddr=" + destAddr + ", srAddr=" + scAddr +
+ ", part[" + (i++) + "]=" + part);
+ }
+ }
mDispatcher.sendMultipartText(destAddr, scAddr, (ArrayList<String>) parts,
(ArrayList<PendingIntent>) sentIntents, (ArrayList<PendingIntent>) deliveryIntents);
}
diff --git a/telephony/java/com/android/internal/telephony/gsm/MccTable.java b/telephony/java/com/android/internal/telephony/MccTable.java
similarity index 84%
rename from telephony/java/com/android/internal/telephony/gsm/MccTable.java
rename to telephony/java/com/android/internal/telephony/MccTable.java
index 9343f44..0d11f8c 100644
--- a/telephony/java/com/android/internal/telephony/gsm/MccTable.java
+++ b/telephony/java/com/android/internal/telephony/MccTable.java
@@ -14,7 +14,17 @@
* limitations under the License.
*/
-package com.android.internal.telephony.gsm;
+package com.android.internal.telephony;
+
+import android.app.ActivityManagerNative;
+import android.app.AlarmManager;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.net.wifi.WifiManager;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.util.Log;
import java.util.Arrays;
@@ -475,8 +485,10 @@
0x65630400, 0x67660400, 0x70790400, 0x73720400, 0x75790400, 0x666b0400
};
+ static final String LOG_TAG = "MccTable";
+
/**
- * Given a GSM Mobile Country Code, returns a default time zone ID
+ * Given a Mobile Country Code, returns a default time zone ID
* if available. Returns null if unavailable.
*/
public static String defaultTimeZoneForMcc(int mcc) {
@@ -494,7 +506,7 @@
}
/**
- * Given a GSM Mobile Country Code, returns an ISO two-character
+ * Given a Mobile Country Code, returns an ISO two-character
* country code if available. Returns "" if unavailable.
*/
public static String countryCodeForMcc(int mcc) {
@@ -553,4 +565,95 @@
return wifi;
}
+ /**
+ * Updates MCC and MNC device configuration information for application retrieving
+ * correct version of resources. If either MCC or MNC is 0, they will be ignored (not set).
+ * @param phone PhoneBae to act on.
+ * @param mccmnc truncated imsi with just the MCC and MNC - MNC assumed to be from 4th to end
+ */
+ public static void updateMccMncConfiguration(PhoneBase phone, String mccmnc) {
+ Configuration config = new Configuration();
+ int mcc, mnc;
+
+ try {
+ mcc = Integer.parseInt(mccmnc.substring(0,3));
+ mnc = Integer.parseInt(mccmnc.substring(3));
+ } catch (NumberFormatException e) {
+ Log.e(LOG_TAG, "Error parsing IMSI");
+ return;
+ }
+
+ Log.d(LOG_TAG, "updateMccMncConfiguration: mcc=" + mcc + ", mnc=" + mnc);
+
+ if (mcc != 0) {
+ config.mcc = mcc;
+ setTimezoneFromMccIfNeeded(phone, mcc);
+ setLocaleFromMccIfNeeded(phone, mcc);
+ setWifiChannelsFromMccIfNeeded(phone, mcc);
+ }
+ if (mnc != 0) {
+ config.mnc = mnc;
+ }
+ try {
+ ActivityManagerNative.getDefault().updateConfiguration(config);
+ } catch (RemoteException e) {
+ Log.e(LOG_TAG, "Can't update configuration", e);
+ }
+ }
+
+ /**
+ * If the timezone is not already set, set it based on the MCC of the SIM.
+ * @param phone PhoneBase to act on (get context from).
+ * @param mcc Mobile Country Code of the SIM or SIM-like entity (build prop on CDMA)
+ */
+ private static void setTimezoneFromMccIfNeeded(PhoneBase phone, int mcc) {
+ String timezone = SystemProperties.get(ServiceStateTracker.TIMEZONE_PROPERTY);
+ if (timezone == null || timezone.length() == 0) {
+ String zoneId = defaultTimeZoneForMcc(mcc);
+ if (zoneId != null && zoneId.length() > 0) {
+ Context context = phone.getContext();
+ // Set time zone based on MCC
+ AlarmManager alarm =
+ (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ alarm.setTimeZone(zoneId);
+ Log.d(LOG_TAG, "timezone set to "+zoneId);
+ }
+ }
+ }
+
+ /**
+ * If the locale is not already set, set it based on the MCC of the SIM.
+ * @param phone PhoneBase to act on.
+ * @param mcc Mobile Country Code of the SIM or SIM-like entity (build prop on CDMA)
+ */
+ private static void setLocaleFromMccIfNeeded(PhoneBase phone, int mcc) {
+ String language = MccTable.defaultLanguageForMcc(mcc);
+ String country = MccTable.countryCodeForMcc(mcc);
+
+ Log.d(LOG_TAG, "locale set to "+language+"_"+country);
+ phone.setSystemLocale(language, country);
+ }
+
+ /**
+ * If the number of allowed wifi channels has not been set, set it based on
+ * the MCC of the SIM.
+ * @param phone PhoneBase to act on (get context from).
+ * @param mcc Mobile Country Code of the SIM or SIM-like entity (build prop on CDMA)
+ */
+ private static void setWifiChannelsFromMccIfNeeded(PhoneBase phone, int mcc) {
+ int wifiChannels = MccTable.wifiChannelsForMcc(mcc);
+ if (wifiChannels != 0) {
+ Context context = phone.getContext();
+ // only set to this default if the user hasn't manually set it
+ try {
+ Settings.Secure.getInt(context.getContentResolver(),
+ Settings.Secure.WIFI_NUM_ALLOWED_CHANNELS);
+ } catch (Settings.SettingNotFoundException e) {
+ Log.d(LOG_TAG, "WIFI_NUM_ALLOWED_CHANNESL set to " + wifiChannels);
+ WifiManager wM = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+ // don't persist
+ wM.setNumAllowedChannels(wifiChannels, false);
+ }
+ }
+ }
}
diff --git a/telephony/java/com/android/internal/telephony/SmsMessageBase.java b/telephony/java/com/android/internal/telephony/SmsMessageBase.java
index e73039b..3f0213b 100644
--- a/telephony/java/com/android/internal/telephony/SmsMessageBase.java
+++ b/telephony/java/com/android/internal/telephony/SmsMessageBase.java
@@ -383,7 +383,7 @@
* 2. [x@y][ ]/[body]
*/
String[] parts = messageBody.split("( /)|( )", 2);
- if (parts.length < 1 || parts[0].indexOf('@') == -1) return;
+ if (parts.length < 1) return;
emailFrom = parts[0];
emailBody = parts[1];
isEmail = true;
diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
index ebe3e096..ff06bc0 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
@@ -48,10 +48,7 @@
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.DataConnection;
-// TODO(Moto): need to move MccTable from telephony.gsm to telephony
-// since there is no difference between CDMA and GSM for MccTable and
-// CDMA uses gsm's MccTable is not good.
-import com.android.internal.telephony.gsm.MccTable;
+import com.android.internal.telephony.MccTable;
import com.android.internal.telephony.IccCard;
import com.android.internal.telephony.IccException;
import com.android.internal.telephony.IccFileHandler;
@@ -179,6 +176,10 @@
// This is needed to handle phone process crashes
String inEcm=SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE, "false");
mIsPhoneInEcmState = inEcm.equals("true");
+ if (mIsPhoneInEcmState) {
+ // Send a message which will invoke handleExitEmergencyCallbackMode
+ mCM.exitEmergencyCallbackMode(obtainMessage(EVENT_EXIT_EMERGENCY_CALLBACK_RESPONSE));
+ }
// get the string that specifies the carrier OTA Sp number
mCarrierOtaSpNumSchema = SystemProperties.get(
@@ -199,7 +200,7 @@
updateCurrentCarrierInProvider(operatorNumeric);
// Updates MCC MNC device configuration information
- updateMccMncConfiguration(operatorNumeric);
+ MccTable.updateMccMncConfiguration(this, operatorNumeric);
// Notify voicemails.
@@ -340,15 +341,6 @@
dial (String dialString) throws CallStateException {
// Need to make sure dialString gets parsed properly
String newDialString = PhoneNumberUtils.stripSeparators(dialString);
-
- if (!mCT.foregroundCall.isIdle()) {
- FeatureCode fc = FeatureCode.newFromDialString(newDialString, this);
- if (fc != null) {
- //mMmiRegistrants.notifyRegistrants(new AsyncResult(null, fc, null));
- fc.processCode();
- return null;
- }
- }
return mCT.dial(newDialString);
}
@@ -846,21 +838,6 @@
mRuimRecords.setVoiceMessageWaiting(1, mwi);
}
- /**
- * Removes the given FC from the pending list and notifies
- * registrants that it is complete.
- * @param fc FC that is done
- */
- /*package*/ void onFeatureCodeDone(FeatureCode fc) {
- /* Only notify complete if it's on the pending list.
- * Otherwise, it's already been handled (eg, previously canceled).
- * The exception is cancellation of an incoming USSD-REQUEST, which is
- * not on the list.
- */
- mMmiCompleteRegistrants.notifyRegistrants(new AsyncResult(null, fc, null));
- }
-
-
@Override
public void exitEmergencyCallbackMode() {
if (mWakeLock.isHeld()) {
@@ -1035,7 +1012,6 @@
Log.d(LOG_TAG, "ERI read, notify registrants");
mEriFileLoadedRegistrants.notifyRegistrants();
}
- setSystemProperty(TelephonyProperties.PROPERTY_INECM_MODE,"false");
}
break;
@@ -1427,21 +1403,4 @@
return false;
}
- /**
- * Updates MCC and MNC device configuration information for application retrieving
- * correct version of resources
- *
- */
- private void updateMccMncConfiguration(String operatorNumeric) {
- if (operatorNumeric.length() >= 5) {
- Configuration config = new Configuration();
- config.mcc = Integer.parseInt(operatorNumeric.substring(0,3));
- config.mnc = Integer.parseInt(operatorNumeric.substring(3));
- try {
- ActivityManagerNative.getDefault().updateConfiguration(config);
- } catch (RemoteException e) {
- Log.e(LOG_TAG, "Can't update configuration", e);
- }
- }
- }
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java b/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java
index 1e3a2e1..bf42257 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java
@@ -128,7 +128,15 @@
sms.getOriginatingAddress());
}
- /**
+ // Reject (NAK) any messages with teleservice ids that have
+ // not yet been handled and also do not correspond to the two
+ // kinds that are processed below.
+ if ((SmsEnvelope.TELESERVICE_WMT != teleService) &&
+ (SmsEnvelope.TELESERVICE_WEMT != teleService)) {
+ return Intents.RESULT_SMS_UNSUPPORTED;
+ }
+
+ /*
* TODO(cleanup): Why are we using a getter method for this
* (and for so many other sms fields)? Trivial getters and
* setters like this are direct violations of the style guide.
@@ -141,11 +149,12 @@
*/
SmsHeader smsHeader = sms.getUserDataHeader();
- /**
+ /*
* TODO(cleanup): Since both CDMA and GSM use the same header
* format, this dispatch processing is naturally identical,
* and code should probably not be replicated explicitly.
*/
+
// See if message is partial or port addressed.
if ((smsHeader == null) || (smsHeader.concatRef == null)) {
// Message is not partial (not part of concatenated sequence).
@@ -416,15 +425,17 @@
private int resultToCause(int rc) {
switch (rc) {
- case Activity.RESULT_OK:
- case Intents.RESULT_SMS_HANDLED:
- // Cause code is ignored on success.
- return 0;
- case Intents.RESULT_SMS_OUT_OF_MEMORY:
- return CommandsInterface.CDMA_SMS_FAIL_CAUSE_RESOURCE_SHORTAGE;
- case Intents.RESULT_SMS_GENERIC_ERROR:
- default:
- return CommandsInterface.CDMA_SMS_FAIL_CAUSE_OTHER_TERMINAL_PROBLEM;
+ case Activity.RESULT_OK:
+ case Intents.RESULT_SMS_HANDLED:
+ // Cause code is ignored on success.
+ return 0;
+ case Intents.RESULT_SMS_OUT_OF_MEMORY:
+ return CommandsInterface.CDMA_SMS_FAIL_CAUSE_RESOURCE_SHORTAGE;
+ case Intents.RESULT_SMS_UNSUPPORTED:
+ return CommandsInterface.CDMA_SMS_FAIL_CAUSE_INVALID_TELESERVICE_ID;
+ case Intents.RESULT_SMS_GENERIC_ERROR:
+ default:
+ return CommandsInterface.CDMA_SMS_FAIL_CAUSE_OTHER_TERMINAL_PROBLEM;
}
}
}
diff --git a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
index dab529e..46e360b 100644
--- a/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -45,9 +45,8 @@
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.DataConnectionTracker;
-import com.android.internal.telephony.gsm.MccTable;
import com.android.internal.telephony.IccCard;
-import com.android.internal.telephony.PhoneProxy;
+import com.android.internal.telephony.MccTable;
import com.android.internal.telephony.ServiceStateTracker;
import com.android.internal.telephony.TelephonyEventLog;
import com.android.internal.telephony.TelephonyIntents;
diff --git a/telephony/java/com/android/internal/telephony/cdma/FeatureCode.java b/telephony/java/com/android/internal/telephony/cdma/FeatureCode.java
deleted file mode 100644
index 23a4ac7..0000000
--- a/telephony/java/com/android/internal/telephony/cdma/FeatureCode.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (C) 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
- *
- * 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.telephony.cdma;
-
-import android.content.Context;
-import android.os.*;
-import android.util.Log;
-
-import com.android.internal.telephony.*;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- *
- * {@hide}
- *
- */
-public final class FeatureCode extends Handler implements MmiCode {
- static final String LOG_TAG = "CDMA";
-
- //***** Constants
-
- // Call Forwarding
- static final String FC_CF_ACTIVATE = "72";
- static final String FC_CF_DEACTIVATE = "73";
- static final String FC_CF_FORWARD_TO_NUMBER = "56";
-
- // Call Forwarding Busy Line
- static final String FC_CFBL_ACTIVATE = "90";
- static final String FC_CFBL_DEACTIVATE = "91";
- static final String FC_CFBL_FORWARD_TO_NUMBER = "40";
-
- // Call Forwarding Don't Answer
- static final String FC_CFDA_ACTIVATE = "92";
- static final String FC_CFDA_DEACTIVATE = "93";
- static final String FC_CFDA_FORWARD_TO_NUMBER = "42";
-
- // Cancel Call Waiting
- static final String FC_CCW = "70";
-
- // Usage Sensitive Three-way Calling
- static final String FC_3WC = "71";
-
- // Do Not Disturb
- static final String FC_DND_ACTIVATE = "78";
- static final String FC_DND_DEACTIVATE = "79";
-
- // Who Called Me?
- static final String FC_WHO = "51";
-
- // Rejection of Undesired Annoying Calls
- static final String FC_RUAC_ACTIVATE = "60";
- static final String FC_RUAC_DEACTIVATE = "80";
-
- // Calling Number Delivery
- // Calling Number Identification Presentation
- static final String FC_CNIP = "65";
- // Calling Number Identification Restriction
- static final String FC_CNIR = "85";
-
-
- //***** Event Constants
-
- static final int EVENT_SET_COMPLETE = 1;
- static final int EVENT_CDMA_FLASH_COMPLETED = 2;
-
-
- //***** Instance Variables
-
- CDMAPhone phone;
- Context context;
- String action; // '*' in CDMA
- String sc; // Service Code
- String poundString; // Entire Flash string
- String dialingNumber;
-
- /** Set to true in processCode, not at newFromDialString time */
-
- State state = State.PENDING;
- CharSequence message;
-
- //***** Class Variables
-
-
- // Flash Code Pattern
-
- static Pattern sPatternSuppService = Pattern.compile(
- "((\\*)(\\d{2,3})(#?)([^*#]*)?)(.*)");
-/* 1 2 3 4 5 6
-
- 1 = Full string up to and including #
- 2 = action
- 3 = service code
- 4 = separator
- 5 = dialing number
-*/
-
- static final int MATCH_GROUP_POUND_STRING = 1;
- static final int MATCH_GROUP_ACTION_STRING = 2;
- static final int MATCH_GROUP_SERVICE_CODE = 3;
- static final int MATCH_GROUP_DIALING_NUMBER = 5;
-
-
- //***** Public Class methods
-
- /**
- * Some dial strings in CDMA are defined to do non-call setup
- * things, such as set supplementary service settings (eg, call
- * forwarding). These are generally referred to as "Feature Codes".
- * We look to see if the dial string contains a valid Feature code (potentially
- * with a dial string at the end as well) and return info here.
- *
- * If the dial string contains no Feature code, we return an instance with
- * only "dialingNumber" set
- *
- * Please see also S.R0006-000-A v2.0 "Wireless Features Description"
- */
-
- static FeatureCode newFromDialString(String dialString, CDMAPhone phone) {
- Matcher m;
- FeatureCode ret = null;
-
- m = sPatternSuppService.matcher(dialString);
-
- // Is this formatted like a standard supplementary service code?
- if (m.matches()) {
- ret = new FeatureCode(phone);
- ret.poundString = makeEmptyNull(m.group(MATCH_GROUP_POUND_STRING));
- ret.action = makeEmptyNull(m.group(MATCH_GROUP_ACTION_STRING));
- ret.sc = makeEmptyNull(m.group(MATCH_GROUP_SERVICE_CODE));
- ret.dialingNumber = makeEmptyNull(m.group(MATCH_GROUP_DIALING_NUMBER));
- }
-
- return ret;
- }
-
- //***** Private Class methods
-
- /** make empty strings be null.
- * Java regexp returns empty strings for empty groups
- */
- private static String makeEmptyNull (String s) {
- if (s != null && s.length() == 0) return null;
-
- return s;
- }
-
- /** returns true of the string is empty or null */
- private static boolean isEmptyOrNull(CharSequence s) {
- return s == null || (s.length() == 0);
- }
-
- static boolean isServiceCodeCallForwarding(String sc) {
- return sc != null &&
- (sc.equals(FC_CF_ACTIVATE)
- || sc.equals(FC_CF_DEACTIVATE) || sc.equals(FC_CF_FORWARD_TO_NUMBER)
- || sc.equals(FC_CFBL_ACTIVATE) || sc.equals(FC_CFBL_DEACTIVATE)
- || sc.equals(FC_CFBL_FORWARD_TO_NUMBER) || sc.equals(FC_CFDA_ACTIVATE)
- || sc.equals(FC_CFDA_DEACTIVATE) || sc.equals(FC_CFDA_FORWARD_TO_NUMBER));
- }
-
- static boolean isServiceCodeCallWaiting(String sc) {
- return sc != null && sc.equals(FC_CCW);
- }
-
- static boolean isServiceCodeThreeWayCalling(String sc) {
- return sc != null && sc.equals(FC_3WC);
- }
-
- static boolean isServiceCodeAnnoyingCalls(String sc) {
- return sc != null &&
- (sc.equals(FC_RUAC_ACTIVATE)
- || sc.equals(FC_RUAC_DEACTIVATE));
- }
-
- static boolean isServiceCodeCallingNumberDelivery(String sc) {
- return sc != null &&
- (sc.equals(FC_CNIP)
- || sc.equals(FC_CNIR));
- }
-
- static boolean isServiceCodeDoNotDisturb(String sc) {
- return sc != null &&
- (sc.equals(FC_DND_ACTIVATE)
- || sc.equals(FC_DND_DEACTIVATE));
- }
-
-
- //***** Constructor
-
- FeatureCode (CDMAPhone phone) {
- super(phone.getHandler().getLooper());
- this.phone = phone;
- this.context = phone.getContext();
- }
-
-
- //***** MmiCode implementation
-
- public State getState() {
- return state;
- }
-
- public CharSequence getMessage() {
- return message;
- }
-
- // inherited javadoc suffices
- public void cancel() {
- //Not used here
- }
-
- public boolean isCancelable() {
- Log.e(LOG_TAG, "isCancelable: not used in CDMA");
- return false;
- }
-
- public boolean isUssdRequest() {
- Log.e(LOG_TAG, "isUssdRequest: not used in CDMA");
- return false;
- }
-
- /** Process a Flash Code...anything that isn't a dialing number */
- void processCode() {
- Log.d(LOG_TAG, "send feature code...");
- phone.mCM.sendCDMAFeatureCode(this.poundString, obtainMessage(EVENT_CDMA_FLASH_COMPLETED));
- }
-
- /** Called from CDMAPhone.handleMessage; not a Handler subclass */
- public void handleMessage (Message msg) {
- AsyncResult ar;
-
- switch (msg.what) {
- case EVENT_SET_COMPLETE:
- ar = (AsyncResult) (msg.obj);
- onSetComplete(ar);
- break;
- case EVENT_CDMA_FLASH_COMPLETED:
- ar = (AsyncResult) (msg.obj);
-
- if (ar.exception != null) {
- state = State.FAILED;
- message = context.getText(com.android.internal.R.string.fcError);
- } else {
- state = State.COMPLETE;
- message = context.getText(com.android.internal.R.string.fcComplete);
- }
- phone.onFeatureCodeDone(this);
- break;
- }
- }
-
-
- //***** Private instance methods
-
- private CharSequence getScString() {
- if (sc != null) {
- if (isServiceCodeCallForwarding(sc)) {
- return context.getText(com.android.internal.R.string.CfMmi);
- } else if (isServiceCodeCallWaiting(sc)) {
- return context.getText(com.android.internal.R.string.CwMmi);
- } else if (sc.equals(FC_CNIP)) {
- return context.getText(com.android.internal.R.string.CnipMmi);
- } else if (sc.equals(FC_CNIR)) {
- return context.getText(com.android.internal.R.string.CnirMmi);
- } else if (isServiceCodeThreeWayCalling(sc)) {
- return context.getText(com.android.internal.R.string.ThreeWCMmi);
- } else if (isServiceCodeAnnoyingCalls(sc)) {
- return context.getText(com.android.internal.R.string.RuacMmi);
- } else if (isServiceCodeCallingNumberDelivery(sc)) {
- return context.getText(com.android.internal.R.string.CndMmi);
- } else if (isServiceCodeDoNotDisturb(sc)) {
- return context.getText(com.android.internal.R.string.DndMmi);
- }
- }
-
- return "";
- }
-
- private void onSetComplete(AsyncResult ar){
- StringBuilder sb = new StringBuilder(getScString());
- sb.append("\n");
-
- if (ar.exception != null) {
- state = State.FAILED;
- sb.append(context.getText(com.android.internal.R.string.mmiError));
- } else {
- state = State.FAILED;
- sb.append(context.getText(com.android.internal.R.string.mmiError));
- }
-
- message = sb;
- phone.onFeatureCodeDone(this);
- }
-}
diff --git a/telephony/java/com/android/internal/telephony/cdma/RuimRecords.java b/telephony/java/com/android/internal/telephony/cdma/RuimRecords.java
index 7c74314..b9ece8b 100644
--- a/telephony/java/com/android/internal/telephony/cdma/RuimRecords.java
+++ b/telephony/java/com/android/internal/telephony/cdma/RuimRecords.java
@@ -28,7 +28,7 @@
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.TelephonyProperties;
import com.android.internal.telephony.cdma.RuimCard;
-import com.android.internal.telephony.gsm.MccTable;
+import com.android.internal.telephony.MccTable;
// can't be used since VoiceMailConstants is not public
//import com.android.internal.telephony.gsm.VoiceMailConstants;
@@ -47,7 +47,7 @@
private static final boolean DBG = true;
private boolean m_ota_commited=false;
- //***** Instance Variables
+ // ***** Instance Variables
private String mImsi;
private String mMyMobileNumber;
@@ -55,7 +55,7 @@
private String mPrlVersion;
- //***** Event Constants
+ // ***** Event Constants
private static final int EVENT_RUIM_READY = 1;
private static final int EVENT_RADIO_OFF_OR_NOT_AVAILABLE = 2;
@@ -109,7 +109,7 @@
@Override
protected void onRadioOffOrNotAvailable() {
countVoiceMessages = 0;
- mncLength = 0;
+ mncLength = UNINITIALIZED;
iccid = null;
adnCache.reset();
@@ -167,7 +167,7 @@
}
// TODO(Moto): mncLength is not set anywhere.
- if (mncLength != 0) {
+ if (mncLength != UNINITIALIZED && mncLength != UNKNOWN) {
// Length = length of MCC + length of MNC
// TODO: change spec name
// length of mcc = 3 (3GPP2 C.S0005 - Section 2.3)
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
index a9be068..65463e5 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
@@ -49,6 +49,7 @@
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.DataConnectionTracker;
import com.android.internal.telephony.IccCard;
+import com.android.internal.telephony.MccTable;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.ServiceStateTracker;
import com.android.internal.telephony.TelephonyEventLog;
diff --git a/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java b/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java
index 4272faa..7f7855a 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SIMRecords.java
@@ -19,13 +19,10 @@
import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_ALPHA;
import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_ISO_COUNTRY;
import static com.android.internal.telephony.TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC;
-import android.app.AlarmManager;
import android.content.Context;
-import android.net.wifi.WifiManager;
import android.os.AsyncResult;
import android.os.Message;
import android.os.SystemProperties;
-import android.provider.Settings;
import android.util.Log;
import com.android.internal.telephony.AdnRecord;
@@ -37,6 +34,7 @@
import com.android.internal.telephony.IccUtils;
import com.android.internal.telephony.IccVmFixedException;
import com.android.internal.telephony.IccVmNotSupportedException;
+import com.android.internal.telephony.MccTable;
import java.util.ArrayList;
@@ -51,14 +49,14 @@
private static final boolean DBG = true;
- //***** Instance Variables
+ // ***** Instance Variables
VoiceMailConstants mVmConfig;
SpnOverride mSpnOverride;
- //***** Cached SIM State; cleared on channel close
+ // ***** Cached SIM State; cleared on channel close
String imsi;
boolean callForwardingEnabled;
@@ -88,7 +86,7 @@
String pnnHomeName = null;
- //***** Constants
+ // ***** Constants
// Bitmasks for SPN display rules.
static final int SPN_RULE_SHOW_SPN = 0x01;
@@ -113,7 +111,7 @@
private static final int CPHS_SST_MBN_MASK = 0x30;
private static final int CPHS_SST_MBN_ENABLED = 0x30;
- //***** Event Constants
+ // ***** Event Constants
private static final int EVENT_SIM_READY = 1;
private static final int EVENT_RADIO_OFF_OR_NOT_AVAILABLE = 2;
@@ -143,9 +141,7 @@
private static final int EVENT_SIM_REFRESH = 31;
private static final int EVENT_GET_CFIS_DONE = 32;
- private static final String TIMEZONE_PROPERTY = "persist.sys.timezone";
-
- //***** Constructor
+ // ***** Constructor
SIMRecords(GSMPhone p) {
super(p);
@@ -188,7 +184,7 @@
msisdn = null;
voiceMailNum = null;
countVoiceMessages = 0;
- mncLength = 0;
+ mncLength = UNINITIALIZED;
iccid = null;
// -1 means no EF_SPN found; treat accordingly.
spnDisplayCondition = -1;
@@ -453,79 +449,16 @@
* provided the SIM card. Returns null of SIM is not yet ready
*/
String getSIMOperatorNumeric() {
- if (imsi == null) {
+ if (imsi == null || mncLength == UNINITIALIZED || mncLength == UNKNOWN) {
return null;
}
- if (mncLength != 0) {
- // Length = length of MCC + length of MNC
- // length of mcc = 3 (TS 23.003 Section 2.2)
- return imsi.substring(0, 3 + mncLength);
- }
-
- // Guess the MNC length based on the MCC if we don't
- // have a valid value in ef[ad]
-
- int mcc;
-
- mcc = Integer.parseInt(imsi.substring(0,3));
-
- return imsi.substring(0, 3 + MccTable.smallestDigitsMccForMnc(mcc));
+ // Length = length of MCC + length of MNC
+ // length of mcc = 3 (TS 23.003 Section 2.2)
+ return imsi.substring(0, 3 + mncLength);
}
- /**
- * If the timezone is not already set, set it based on the MCC of the SIM.
- * @param mcc Mobile Country Code of the SIM
- */
- private void setTimezoneFromMccIfNeeded(int mcc) {
- String timezone = SystemProperties.get(TIMEZONE_PROPERTY);
- if (timezone == null || timezone.length() == 0) {
- String zoneId = MccTable.defaultTimeZoneForMcc(mcc);
-
- if (zoneId != null && zoneId.length() > 0) {
- // Set time zone based on MCC
- AlarmManager alarm =
- (AlarmManager) phone.getContext().getSystemService(Context.ALARM_SERVICE);
- alarm.setTimeZone(zoneId);
- }
- }
- }
-
- /**
- * If the locale is not already set, set it based on the MCC of the SIM.
- * @param mcc Mobile Country Code of the SIM
- */
- private void setLocaleFromMccIfNeeded(int mcc) {
- String language = MccTable.defaultLanguageForMcc(mcc);
- String country = MccTable.countryCodeForMcc(mcc);
-
- phone.setSystemLocale(language, country);
- }
-
- /**
- * If the number of allowed wifi channels has not been set, set it based on
- * the MCC of the SIM.
- * @param mcc Mobile Country Code of the SIM
- */
- private void setWifiChannelsFromMccIfNeeded(int mcc) {
- int wifiChannels = MccTable.wifiChannelsForMcc(mcc);
-
- if (wifiChannels != 0) {
- Context context = phone.getContext();
- // only set to this default if the user hasn't manually set it
- try {
- Settings.Secure.getInt(context.getContentResolver(),
- Settings.Secure.WIFI_NUM_ALLOWED_CHANNELS);
- } catch (Settings.SettingNotFoundException e) {
- WifiManager wM = (WifiManager)
- context.getSystemService(Context.WIFI_SERVICE);
- // don't persist
- wM.setNumAllowedChannels(wifiChannels, false);
- }
- }
- }
-
- //***** Overridden from Handler
+ // ***** Overridden from Handler
public void handleMessage(Message msg) {
AsyncResult ar;
AdnRecord adn;
@@ -564,14 +497,25 @@
}
Log.d(LOG_TAG, "IMSI: " + imsi.substring(0, 6) + "xxxxxxxxx");
- ((GSMPhone) phone).mSimCard.updateImsiConfiguration(imsi);
+
+ if (mncLength == UNKNOWN) {
+ // the SIM has told us all it knows, but it didn't know the mnc length.
+ // guess using the mcc
+ try {
+ int mcc = Integer.parseInt(imsi.substring(0,3));
+ mncLength = MccTable.smallestDigitsMccForMnc(mcc);
+ } catch (NumberFormatException e) {
+ mncLength = UNKNOWN;
+ Log.e(LOG_TAG, "SIMRecords: Corrupt IMSI!");
+ }
+ }
+
+ if (mncLength != UNKNOWN && mncLength != UNINITIALIZED) {
+ // finally have both the imsi and the mncLength and can parse the imsi properly
+ MccTable.updateMccMncConfiguration(phone, imsi.substring(0, 3 + mncLength));
+ }
((GSMPhone) phone).mSimCard.broadcastIccStateChangedIntent(
SimCard.INTENT_VALUE_ICC_IMSI, null);
-
- int mcc = Integer.parseInt(imsi.substring(0, 3));
- setTimezoneFromMccIfNeeded(mcc);
- setLocaleFromMccIfNeeded(mcc);
- setWifiChannelsFromMccIfNeeded(mcc);
break;
case EVENT_GET_MBI_DONE:
@@ -794,12 +738,25 @@
mncLength = (int)data[3] & 0xf;
if (mncLength == 0xf) {
- // Resetting mncLength to 0 to indicate that it is not
- // initialised
- mncLength = 0;
+ if (imsi != null) {
+ try {
+ int mcc = Integer.parseInt(imsi.substring(0,3));
- Log.d(LOG_TAG, "SIMRecords: MNC length not present in EF_AD");
- break;
+ mncLength = MccTable.smallestDigitsMccForMnc(mcc);
+ } catch (NumberFormatException e) {
+ mncLength = UNKNOWN;
+ Log.e(LOG_TAG, "SIMRecords: Corrupt IMSI!");
+ }
+ } else {
+ // Indicate we got this info, but it didn't contain the length.
+ mncLength = UNKNOWN;
+
+ Log.d(LOG_TAG, "SIMRecords: MNC length not present in EF_AD");
+ }
+ }
+ if (imsi != null && mncLength != UNKNOWN) {
+ // finally have both imsi and the length of the mnc and can parse it properly
+ MccTable.updateMccMncConfiguration(phone, imsi.substring(0, 3 + mncLength));
}
break;
diff --git a/telephony/java/com/android/internal/telephony/gsm/SimCard.java b/telephony/java/com/android/internal/telephony/gsm/SimCard.java
index 6c56682..835cb29 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SimCard.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SimCard.java
@@ -16,9 +16,6 @@
package com.android.internal.telephony.gsm;
-import android.app.ActivityManagerNative;
-import android.content.res.Configuration;
-import android.os.RemoteException;
import android.util.Log;
import com.android.internal.telephony.IccCard;
@@ -50,20 +47,4 @@
return ((GSMPhone)mPhone).mSIMRecords.getServiceProviderName();
}
- public void updateImsiConfiguration(String imsi) {
- if (imsi.length() >= 6) {
- Configuration config = new Configuration();
- config.mcc = ((imsi.charAt(0)-'0')*100)
- + ((imsi.charAt(1)-'0')*10)
- + (imsi.charAt(2)-'0');
- config.mnc = ((imsi.charAt(3)-'0')*100)
- + ((imsi.charAt(4)-'0')*10)
- + (imsi.charAt(5)-'0');
- try {
- ActivityManagerNative.getDefault().updateConfiguration(config);
- } catch (RemoteException e) {
- Log.e(mLogTag, "[SimCard] Remote Exception when updating imsi configuration");
- }
- }
- }
}
diff --git a/tests/AndroidTests/src/com/android/unit_tests/MccTableTest.java b/tests/AndroidTests/src/com/android/unit_tests/MccTableTest.java
index 875376a..b2f1ded 100644
--- a/tests/AndroidTests/src/com/android/unit_tests/MccTableTest.java
+++ b/tests/AndroidTests/src/com/android/unit_tests/MccTableTest.java
@@ -16,7 +16,7 @@
package com.android.unit_tests;
-import com.android.internal.telephony.gsm.MccTable;
+import com.android.internal.telephony.MccTable;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java
index b980710..e4c8716 100644
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java
+++ b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java
@@ -150,6 +150,8 @@
static final String HTTP_WML_TESTS_PREFIX = "/sdcard/android/layout_tests/http/tests/wml/";
+ static final String DEFAULT_TEST_HOST = "android-browser-test.mtv.corp.google.com";
+ static final String FORWARD_HOST_CONF = "/sdcard/drt_forward_host.txt";
private ForwardServer fs8000, fs8080, fs8443;
private MyTestRecorder mResultRecorder;
@@ -161,12 +163,7 @@
public LayoutTestsAutoTest() {
super("com.android.dumprendertree", TestShellActivity.class);
- int addr = -1;
- try {
- addr = AdbUtils.resolve("android-browser-test.mtv.corp.google.com");
- } catch (IOException ioe) {
- Log.e(LOGTAG, "failed to resolve server address.", ioe);
- }
+ int addr = getForwardHostAddr();
if(addr != -1) {
fs8000 = new ForwardServer(8000, addr, 8000);
fs8080 = new ForwardServer(8080, addr, 8080);
@@ -174,6 +171,38 @@
}
}
+ private int getForwardHostAddr() {
+ int addr = -1;
+ String host = null;
+ File forwardHostConf = new File(FORWARD_HOST_CONF);
+ if (forwardHostConf.isFile()) {
+ BufferedReader hostReader = null;
+ try {
+ hostReader = new BufferedReader(new FileReader(forwardHostConf));
+ host = hostReader.readLine();
+ Log.v(LOGTAG, "read forward host from file: " + host);
+ } catch (IOException ioe) {
+ Log.v(LOGTAG, "cannot read forward host from file", ioe);
+ } finally {
+ if (hostReader != null) {
+ try {
+ hostReader.close();
+ } catch (IOException ioe) {
+ // burn!!!
+ }
+ }
+ }
+ }
+ if (host == null || host.length() == 0)
+ host = DEFAULT_TEST_HOST;
+ try {
+ addr = AdbUtils.resolve(host);
+ } catch (IOException ioe) {
+ Log.e(LOGTAG, "failed to resolve server address", ioe);
+ }
+ return addr;
+ }
+
// This function writes the result of the layout test to
// Am status so that it can be picked up from a script.
private void passOrFailCallback(String file, boolean result) {
diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp
index f9d2434..3cf6a71 100644
--- a/tools/aapt/ResourceTable.cpp
+++ b/tools/aapt/ResourceTable.cpp
@@ -984,7 +984,7 @@
while ((code=block.next()) != ResXMLTree::END_DOCUMENT && code != ResXMLTree::BAD_DOCUMENT) {
if (code == ResXMLTree::END_TAG) {
- if (strcmp16(block.getElementName(&len), private_symbols16.string()) == 0) {
+ if (strcmp16(block.getElementName(&len), add_resource16.string()) == 0) {
break;
}
}