Merge "Bring back the old-style Ring/Vibrate/Silent states when using volume keys." into ics-mr0
diff --git a/Android.mk b/Android.mk
index 4c0c43a..7209206 100644
--- a/Android.mk
+++ b/Android.mk
@@ -435,9 +435,9 @@
-samplecode $(sample_dir)/NotePad \
resources/samples/NotePad "Note Pad" \
-samplecode $(sample_dir)/SpellChecker/SampleSpellCheckerService \
- resources/samples/SpellChecker/SampleSpellCheckerService "Spell Checker service" \
+ resources/samples/SpellChecker/SampleSpellCheckerService "Spell Checker Service" \
-samplecode $(sample_dir)/SpellChecker/HelloSpellChecker \
- resources/samples/SpellChecker/HelloSpellCheckerService "Spell Checker client" \
+ resources/samples/SpellChecker/HelloSpellChecker "Spell Checker Client" \
-samplecode $(sample_dir)/SampleSyncAdapter \
resources/samples/SampleSyncAdapter "Sample Sync Adapter" \
-samplecode $(sample_dir)/RandomMusicPlayer \
diff --git a/core/java/android/app/backup/BackupAgent.java b/core/java/android/app/backup/BackupAgent.java
index 9542874..9ad33a5 100644
--- a/core/java/android/app/backup/BackupAgent.java
+++ b/core/java/android/app/backup/BackupAgent.java
@@ -46,9 +46,15 @@
* {@link #onBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor) onBackup()}
* and {@link #onRestore(BackupDataInput, int, ParcelFileDescriptor) onRestore()} methods,
* and provide the name of its backup agent class in its {@code AndroidManifest.xml} file via
- * the <code><a
- * href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code>
+ * the <code>
+ * <a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code>
* tag's {@code android:backupAgent} attribute.
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about using BackupAgent, read the
+ * <a href="{@docRoot}guide/topics/data/backup.html">Data Backup</a> developer guide.</p></div>
+ *
* <h3>Basic Operation</h3>
* <p>
* When the application makes changes to data that it wishes to keep backed up,
diff --git a/core/java/android/app/backup/BackupAgentHelper.java b/core/java/android/app/backup/BackupAgentHelper.java
index d47ca22..45daead 100644
--- a/core/java/android/app/backup/BackupAgentHelper.java
+++ b/core/java/android/app/backup/BackupAgentHelper.java
@@ -42,6 +42,12 @@
* {@link BackupAgentHelper} framework. See the {@link BackupHelper} interface
* documentation for details.
*
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about using BackupAgentHelper, read the
+ * <a href="{@docRoot}guide/topics/data/backup.html">Data Backup</a> developer guide.</p>
+ * </div>
+ *
* @see BackupHelper
* @see FileBackupHelper
* @see SharedPreferencesBackupHelper
diff --git a/core/java/android/app/backup/BackupManager.java b/core/java/android/app/backup/BackupManager.java
index 80656a1..6eebed2 100644
--- a/core/java/android/app/backup/BackupManager.java
+++ b/core/java/android/app/backup/BackupManager.java
@@ -41,10 +41,15 @@
* of how the operation then proceeds.
* <p>
* Several attributes affecting the operation of the backup and restore mechanism
- * can be set on the <code><a
- * href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code>
+ * can be set on the <code>
+ * <a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code>
* tag in your application's AndroidManifest.xml file.
*
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about using BackupManager, read the
+ * <a href="{@docRoot}guide/topics/data/backup.html">Data Backup</a> developer guide.</p></div>
+ *
* @attr ref android.R.styleable#AndroidManifestApplication_allowBackup
* @attr ref android.R.styleable#AndroidManifestApplication_backupAgent
* @attr ref android.R.styleable#AndroidManifestApplication_killAfterRestore
diff --git a/core/java/android/content/SharedPreferences.java b/core/java/android/content/SharedPreferences.java
index 4d9ee54..bdc38d6 100644
--- a/core/java/android/content/SharedPreferences.java
+++ b/core/java/android/content/SharedPreferences.java
@@ -30,6 +30,12 @@
* <p><em>Note: currently this class does not support use across multiple
* processes. This will be added later.</em>
*
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about using SharedPreferences, read the
+ * <a href="{@docRoot}guide/topics/data/data-storage.html#pref">Data Storage</a>
+ * developer guide.</p></div>
+ *
* @see Context#getSharedPreferences
*/
public interface SharedPreferences {
diff --git a/core/java/android/database/CursorWindow.java b/core/java/android/database/CursorWindow.java
index 380236b4..a1be121 100644
--- a/core/java/android/database/CursorWindow.java
+++ b/core/java/android/database/CursorWindow.java
@@ -55,6 +55,7 @@
public int mWindowPtr;
private int mStartPos;
+ private final String mName;
private final CloseGuard mCloseGuard = CloseGuard.get();
@@ -85,6 +86,8 @@
private static native boolean nativePutDouble(int windowPtr, double value, int row, int column);
private static native boolean nativePutNull(int windowPtr, int row, int column);
+ private static native String nativeGetName(int windowPtr);
+
/**
* Creates a new empty cursor window and gives it a name.
* <p>
@@ -100,6 +103,7 @@
*/
public CursorWindow(String name, boolean localWindow) {
mStartPos = 0;
+ mName = name;
mWindowPtr = nativeCreate(name, sCursorWindowSize, localWindow);
if (mWindowPtr == 0) {
throw new CursorWindowAllocationException("Cursor window allocation of " +
@@ -130,6 +134,7 @@
throw new CursorWindowAllocationException("Cursor window could not be "
+ "created from binder.");
}
+ mName = nativeGetName(mWindowPtr);
mCloseGuard.open("close");
}
@@ -157,6 +162,14 @@
}
/**
+ * Gets the name of this cursor window.
+ * @hide
+ */
+ public String getName() {
+ return mName;
+ }
+
+ /**
* Closes the cursor window and frees its underlying resources when all other
* remaining references have been released.
*/
@@ -778,4 +791,9 @@
String s = (buff.length() > 980) ? buff.substring(0, 980) : buff.toString();
return "# Open Cursors=" + total + s;
}
+
+ @Override
+ public String toString() {
+ return getName() + " {" + Integer.toHexString(mWindowPtr) + "}";
+ }
}
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java
index 00d7ce8..f990be6 100644
--- a/core/java/android/database/sqlite/SQLiteDatabase.java
+++ b/core/java/android/database/sqlite/SQLiteDatabase.java
@@ -306,10 +306,6 @@
/** Used to find out where this object was created in case it never got closed. */
private final Throwable mStackTrace;
- // System property that enables logging of slow queries. Specify the threshold in ms.
- private static final String LOG_SLOW_QUERIES_PROPERTY = "db.log.slow_query_threshold";
- private final int mSlowQueryThreshold;
-
/** stores the list of statement ids that need to be finalized by sqlite */
private final ArrayList<Integer> mClosedStatementIds = new ArrayList<Integer>();
@@ -1559,11 +1555,6 @@
String editTable) {
verifyDbIsOpen();
BlockGuard.getThreadPolicy().onReadFromDisk();
- long timeStart = 0;
-
- if (false || mSlowQueryThreshold != -1) {
- timeStart = System.currentTimeMillis();
- }
SQLiteDatabase db = getDbConnection(sql);
SQLiteCursorDriver driver = new SQLiteDirectCursorDriver(db, sql, editTable);
@@ -1574,24 +1565,6 @@
cursorFactory != null ? cursorFactory : mFactory,
selectionArgs);
} finally {
- if (false || mSlowQueryThreshold != -1) {
-
- // Force query execution
- int count = -1;
- if (cursor != null) {
- count = cursor.getCount();
- }
-
- long duration = System.currentTimeMillis() - timeStart;
-
- if (false || duration >= mSlowQueryThreshold) {
- Log.v(SQLiteCursor.TAG,
- "query (" + duration + " ms): " + driver.toString() + ", args are "
- + (selectionArgs != null
- ? TextUtils.join(",", selectionArgs)
- : "<null>") + ", count is " + count);
- }
- }
releaseDbConnection(db);
}
return cursor;
@@ -1967,7 +1940,6 @@
setMaxSqlCacheSize(DEFAULT_SQL_CACHE_SIZE);
mFlags = flags;
mPath = path;
- mSlowQueryThreshold = SystemProperties.getInt(LOG_SLOW_QUERIES_PROPERTY, -1);
mStackTrace = new DatabaseObjectNotClosedException().fillInStackTrace();
mFactory = factory;
mPrograms = new WeakHashMap<SQLiteClosable,Object>();
diff --git a/core/java/android/database/sqlite/SQLiteDebug.java b/core/java/android/database/sqlite/SQLiteDebug.java
index 94960791..cc057e0 100644
--- a/core/java/android/database/sqlite/SQLiteDebug.java
+++ b/core/java/android/database/sqlite/SQLiteDebug.java
@@ -18,6 +18,8 @@
import java.util.ArrayList;
+import android.os.Build;
+import android.os.SystemProperties;
import android.util.Log;
/**
@@ -65,6 +67,28 @@
Log.isLoggable("SQLiteLockStackTrace", Log.VERBOSE);
/**
+ * True to enable database performance testing instrumentation.
+ * @hide
+ */
+ public static final boolean DEBUG_LOG_SLOW_QUERIES = Build.IS_DEBUGGABLE;
+
+ /**
+ * Determines whether a query should be logged.
+ *
+ * Reads the "db.log.slow_query_threshold" system property, which can be changed
+ * by the user at any time. If the value is zero, then all queries will
+ * be considered slow. If the value does not exist, then no queries will
+ * be considered slow.
+ *
+ * This value can be changed dynamically while the system is running.
+ * @hide
+ */
+ public static final boolean shouldLogSlowQuery(long elapsedTimeMillis) {
+ int slowQueryMillis = SystemProperties.getInt("db.log.slow_query_threshold", -1);
+ return slowQueryMillis >= 0 && elapsedTimeMillis > slowQueryMillis;
+ }
+
+ /**
* Contains statistics about the active pagers in the current process.
*
* @see #getPagerStats(PagerStats)
diff --git a/core/java/android/database/sqlite/SQLiteQuery.java b/core/java/android/database/sqlite/SQLiteQuery.java
index 7db0914..faf6cba 100644
--- a/core/java/android/database/sqlite/SQLiteQuery.java
+++ b/core/java/android/database/sqlite/SQLiteQuery.java
@@ -18,6 +18,7 @@
import android.database.CursorWindow;
import android.os.SystemClock;
+import android.text.TextUtils;
import android.util.Log;
/**
@@ -32,6 +33,7 @@
private static native int nativeFillWindow(int databasePtr, int statementPtr, int windowPtr,
int startPos, int offsetParam);
+
private static native int nativeColumnCount(int statementPtr);
private static native String nativeColumnName(int statementPtr, int columnIndex);
@@ -80,8 +82,24 @@
acquireReference();
try {
window.acquireReference();
+ int startPos = window.getStartPosition();
int numRows = nativeFillWindow(nHandle, nStatement, window.mWindowPtr,
- window.getStartPosition(), mOffsetIndex);
+ startPos, mOffsetIndex);
+ if (SQLiteDebug.DEBUG_LOG_SLOW_QUERIES) {
+ long elapsed = SystemClock.uptimeMillis() - timeStart;
+ if (SQLiteDebug.shouldLogSlowQuery(elapsed)) {
+ Log.d(TAG, "fillWindow took " + elapsed
+ + " ms: window=\"" + window
+ + "\", startPos=" + startPos
+ + ", offset=" + mOffsetIndex
+ + ", filledRows=" + window.getNumRows()
+ + ", countedRows=" + numRows
+ + ", query=\"" + mSql + "\""
+ + ", args=[" + (mBindArgs != null ?
+ TextUtils.join(", ", mBindArgs.values()) : "")
+ + "]");
+ }
+ }
mDatabase.logTimeStat(mSql, timeStart);
return numRows;
} catch (IllegalStateException e){
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index 5faab36..17a882d 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -326,6 +326,13 @@
public static final String HOST = getString("ro.build.host");
/**
+ * Returns true if we are running a debug build such as "user-debug" or "eng".
+ * @hide
+ */
+ public static final boolean IS_DEBUGGABLE =
+ SystemProperties.getInt("ro.debuggable", 0) == 1;
+
+ /**
* Returns the version string for the radio firmware. May return
* null (if, for instance, the radio is not currently on).
*/
diff --git a/core/java/android/widget/AdapterView.java b/core/java/android/widget/AdapterView.java
index 5d01a0f..40df168 100644
--- a/core/java/android/widget/AdapterView.java
+++ b/core/java/android/widget/AdapterView.java
@@ -38,6 +38,12 @@
* <p>
* See {@link ListView}, {@link GridView}, {@link Spinner} and
* {@link Gallery} for commonly used subclasses of AdapterView.
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about using AdapterView, read the
+ * <a href="{@docRoot}guide/topics/ui/binding.html">Binding to Data with AdapterView</a>
+ * developer guide.</p></div>
*/
public abstract class AdapterView<T extends Adapter> extends ViewGroup {
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 7f03adf..0a2365e 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -9409,8 +9409,8 @@
return false;
}
- int posX = mPositionX + positionX - getScrollX();
- int posY = mPositionY + positionY - getScrollY();
+ int posX = mPositionX + positionX;
+ int posY = mPositionY + positionY;
// Offset by 1 to take into account 0.5 and int rounding around getPrimaryHorizontal.
return posX >= clip.left - 1 && posX <= clip.right + 1 &&
@@ -9421,7 +9421,8 @@
final int line = mLayout.getLineForOffset(offset);
final int lineBottom = mLayout.getLineBottom(line);
final int primaryHorizontal = (int) mLayout.getPrimaryHorizontal(offset);
- return isVisible(primaryHorizontal, lineBottom);
+ return isVisible(primaryHorizontal + viewportToContentHorizontalOffset(),
+ lineBottom + viewportToContentVerticalOffset());
}
public void onScrollChanged() {
@@ -10561,7 +10562,7 @@
mPositionX = (int) (mLayout.getPrimaryHorizontal(offset) - 0.5f - mHotspotX);
mPositionY = mLayout.getLineBottom(line);
- // Take TextView's padding into account.
+ // Take TextView's padding and scroll into account.
mPositionX += viewportToContentHorizontalOffset();
mPositionY += viewportToContentVerticalOffset();
diff --git a/core/jni/android_database_CursorWindow.cpp b/core/jni/android_database_CursorWindow.cpp
index 722aeea..9725c9ff 100644
--- a/core/jni/android_database_CursorWindow.cpp
+++ b/core/jni/android_database_CursorWindow.cpp
@@ -104,6 +104,11 @@
}
}
+static jstring nativeGetName(JNIEnv* env, jclass clazz, jint windowPtr) {
+ CursorWindow* window = reinterpret_cast<CursorWindow*>(windowPtr);
+ return env->NewStringUTF(window->name().string());
+}
+
static void nativeWriteToParcel(JNIEnv * env, jclass clazz, jint windowPtr,
jobject parcelObj) {
CursorWindow* window = reinterpret_cast<CursorWindow*>(windowPtr);
@@ -485,6 +490,8 @@
(void*)nativeDispose },
{ "nativeWriteToParcel", "(ILandroid/os/Parcel;)V",
(void*)nativeWriteToParcel },
+ { "nativeGetName", "(I)Ljava/lang/String;",
+ (void*)nativeGetName },
{ "nativeClear", "(I)V",
(void*)nativeClear },
{ "nativeGetNumRows", "(I)I",
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 9e0ebbc..b5409bd 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -302,7 +302,7 @@
<string name="permdesc_readLogs" product="tablet" msgid="4077356893924755294">"Permite que una aplicación lea diversos archivos de registro del sistema. Con este permiso, la aplicación puede ver información general sobre las acciones que se realizan con el tablet (que puede incluir datos personales o privados)."</string>
<string name="permdesc_readLogs" product="default" msgid="8896449437464867766">"Permite que una aplicación lea distintos archivos de registro del sistema. Con este permiso, la aplicación puede ver información general sobre las acciones que realizas con el teléfono, que puede incluir datos personales o privados."</string>
<string name="permlab_diagnostic" msgid="8076743953908000342">"leer/escribir en los recursos propiedad del grupo de diagnóstico"</string>
- <string name="permdesc_diagnostic" msgid="3121238373951637049">"Permite que una aplicación lea y escriba en cualquier recurso propiedad del grupo de diagnóstico como, por ejemplo, archivos in/dev. Este permiso podría afectar a la seguridad y estabilidad del sistema. SÓLO se debe utilizar para diagnósticos específicos de hardware realizados por el fabricante o el operador."</string>
+ <string name="permdesc_diagnostic" msgid="3121238373951637049">"Permite que una aplicación lea y escriba en cualquier recurso propiedad del grupo de diagnóstico como, por ejemplo, archivos in/dev. Este permiso podría afectar a la seguridad y estabilidad del sistema. SOLO se debe utilizar para diagnósticos específicos de hardware realizados por el fabricante o el operador."</string>
<string name="permlab_changeComponentState" msgid="79425198834329406">"habilitar o inhabilitar componentes de la aplicación"</string>
<string name="permdesc_changeComponentState" product="tablet" msgid="4647419365510068321">"Permite que una aplicación cambie si un componente de otra aplicación está habilitado o inhabilitado. Las aplicaciones malintencionadas pueden utilizar este permiso para inhabilitar funciones importantes del tablet. Este permiso se debe utilizar con precaución, ya que es posible que los componentes se vuelvan inservibles, inconsistentes o inestables."</string>
<string name="permdesc_changeComponentState" product="default" msgid="3443473726140080761">"Permite que una aplicación cambie si un componente de otra aplicación está habilitado o inhabilitado. Las aplicaciones malintencionadas pueden utilizar este permiso para inhabilitar funciones importantes del teléfono. Este permiso se debe utilizar con precaución, ya que es posible que los componentes se vuelvan inservibles, inconsistentes o inestables."</string>
@@ -420,7 +420,7 @@
<string name="permdesc_devicePower" product="default" msgid="4577331933252444818">"Permite que la aplicación active o desactive el teléfono."</string>
<string name="permlab_factoryTest" msgid="3715225492696416187">"ejecutar en modo de prueba de fábrica"</string>
<string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Permite la ejecución como prueba de fabricante de nivel inferior, lo que posibilita un acceso completo al hardware del tablet. Solo está disponible cuando un tablet se está ejecutando en modo de prueba."</string>
- <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Ejecutar como prueba de fabricante de nivel inferior, permitiendo un acceso íntegro al hardware del teléfono. Sólo está disponible cuando un teléfono se está ejecutando en modo de prueba."</string>
+ <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Ejecutar como prueba de fabricante de nivel inferior, permitiendo un acceso íntegro al hardware del teléfono. Solo está disponible cuando un teléfono se está ejecutando en modo de prueba."</string>
<string name="permlab_setWallpaper" msgid="6627192333373465143">"establecer fondo de pantalla"</string>
<string name="permdesc_setWallpaper" msgid="6417041752170585837">"Permite que la aplicación establezca el fondo de pantalla del sistema."</string>
<string name="permlab_setWallpaperHints" msgid="3600721069353106851">"establecer el tamaño del fondo de pantalla"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 697f082..7e38edf 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -486,7 +486,7 @@
<string name="permdesc_readDictionary" msgid="1082972603576360690">"Позволяет приложению считывать любые слова, имена и фразы личного пользования, которые могут храниться в пользовательском словаре."</string>
<string name="permlab_writeDictionary" msgid="6703109511836343341">"записывать в словарь пользователя"</string>
<string name="permdesc_writeDictionary" msgid="2241256206524082880">"Позволяет приложению записывать новые слова в словарь пользователя."</string>
- <string name="permlab_sdcardWrite" product="nosdcard" msgid="85430876310764752">"изм./удал. содерж. накопителя"</string>
+ <string name="permlab_sdcardWrite" product="nosdcard" msgid="85430876310764752">"доступ к USB-накопителю"</string>
<string name="permlab_sdcardWrite" product="default" msgid="8079403759001777291">"изменять/удалять содержимое SD-карты"</string>
<string name="permdesc_sdcardWrite" product="nosdcard" msgid="6594393334785738252">"Разрешает приложению запись на USB-накопитель."</string>
<string name="permdesc_sdcardWrite" product="default" msgid="6643963204976471878">"Разрешает приложению запись на SD-карту"</string>
@@ -674,7 +674,7 @@
<string name="lockscreen_network_locked_message" msgid="143389224986028501">"Сеть заблокирована"</string>
<string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM-карта заблокирована с помощью кода PUK."</string>
<string name="lockscreen_sim_puk_locked_instructions" msgid="635967534992394321">"См. руководство пользователя или свяжитесь со службой поддержки."</string>
- <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM-карта заблокирована."</string>
+ <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM-карта заблокирована"</string>
<string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"Разблокировка SIM-карты…"</string>
<string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="3514742106066877476">"Количество неудачных попыток ввода графического ключа разблокировки: <xliff:g id="NUMBER_0">%d</xliff:g>. "\n\n"Повторите попытку через <xliff:g id="NUMBER_1">%d</xliff:g> с."</string>
<string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="4906034376425175381">"Количество неудачных попыток ввода пароля: <xliff:g id="NUMBER_0">%d</xliff:g>. "\n\n"Повторите попытку через <xliff:g id="NUMBER_1">%d</xliff:g> с."</string>
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index eefd21e..e1c73fd 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -29,6 +29,12 @@
* the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect,
* Path, text, Bitmap), and a paint (to describe the colors and styles for the
* drawing).
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use Canvas, read the
+ * <a href="{@docRoot}guide/topics/graphics/2d-graphics.html">
+ * Canvas and Drawables</a> developer guide.</p></div>
*/
public class Canvas {
// assigned in constructors, freed in finalizer
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index 0a3deb1..4b9c98f 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -103,9 +103,15 @@
* <li> <b>Scale</b>: a compound drawable with a single child drawable,
* whose overall size is modified based on the current level.
* </ul>
- * <p>For information and examples of creating drawable resources (XML or bitmap files that
- * can be loaded in code), see <a
- * href="{@docRoot}guide/topics/resources/drawable-resource.html">Drawable Resources</a>.
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use drawables, read the
+ * <a href="{@docRoot}guide/topics/graphics/2d-graphics.html">Canvas and Drawables</a> developer
+ * guide. For information and examples of creating drawable resources (XML or bitmap files that
+ * can be loaded in code), read the
+ * <a href="{@docRoot}guide/topics/resources/drawable-resource.html">Drawable Resources</a>
+ * document.</p></div>
*/
public abstract class Drawable {
private static final Rect ZERO_BOUNDS_RECT = new Rect();
diff --git a/graphics/java/android/graphics/drawable/NinePatchDrawable.java b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
index c32a5b6..bc7e906 100644
--- a/graphics/java/android/graphics/drawable/NinePatchDrawable.java
+++ b/graphics/java/android/graphics/drawable/NinePatchDrawable.java
@@ -31,9 +31,15 @@
/**
*
* A resizeable bitmap, with stretchable areas that you define. This type of image
- * is defined in a .png file with a special format, described in <a link="../../../resources.html#ninepatch">
- * Resources</a>.
+ * is defined in a .png file with a special format.
*
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use a NinePatchDrawable, read the
+ * <a href="{@docRoot}guide/topics/graphics/2d-graphics.html#nine-patch">
+ * Canvas and Drawables</a> developer guide. For information about creating a NinePatch image
+ * file using the draw9patch tool, see the
+ * <a href="{@docRoot}guide/developing/tools/draw9patch.html">Draw 9-patch</a> tool guide.</p></div>
*/
public class NinePatchDrawable extends Drawable {
// dithering helps a lot, and is pretty cheap, so default is true
diff --git a/graphics/java/android/graphics/drawable/ShapeDrawable.java b/graphics/java/android/graphics/drawable/ShapeDrawable.java
index 4445b6a..a3622a2 100644
--- a/graphics/java/android/graphics/drawable/ShapeDrawable.java
+++ b/graphics/java/android/graphics/drawable/ShapeDrawable.java
@@ -34,9 +34,16 @@
* the ShapeDrawable will default to a
* {@link android.graphics.drawable.shapes.RectShape}.
*
- * <p>It can be defined in an XML file with the <code><shape></code> element. For more
- * information, see the guide to <a
- * href="{@docRoot}guide/topics/resources/drawable-resource.html">Drawable Resources</a>.</p>
+ * <p>This object can be defined in an XML file with the <code><shape></code> element.</p>
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use ShapeDrawable, read the
+ * <a href="{@docRoot}guide/topics/graphics/2d-graphics.html#shape-drawable">
+ * Canvas and Drawables</a> document. For more information about defining a ShapeDrawable in
+ * XML, read the
+ * <a href="{@docRoot}guide/topics/resources/drawable-resource.html#Shape">Drawable Resources</a>
+ * document.</p></div>
*
* @attr ref android.R.styleable#ShapeDrawablePadding_left
* @attr ref android.R.styleable#ShapeDrawablePadding_top
diff --git a/libs/binder/CursorWindow.cpp b/libs/binder/CursorWindow.cpp
index 1b85a71..60681c4 100644
--- a/libs/binder/CursorWindow.cpp
+++ b/libs/binder/CursorWindow.cpp
@@ -211,7 +211,7 @@
uint32_t offset = mHeader->freeOffset + padding;
uint32_t nextFreeOffset = offset + size;
if (nextFreeOffset > mSize) {
- LOGE("Window is full: requested allocation %d bytes, "
+ LOGW("Window is full: requested allocation %d bytes, "
"free space %d bytes, window size %d bytes",
size, freeSpace(), mSize);
return 0;
diff --git a/media/java/android/media/JetPlayer.java b/media/java/android/media/JetPlayer.java
index 1570db4..06cda34 100644
--- a/media/java/android/media/JetPlayer.java
+++ b/media/java/android/media/JetPlayer.java
@@ -52,8 +52,13 @@
* <li>the number of segments left to play in the queue,</li>
* <li>application controller events (CC80-83) to mark points in the MIDI segments.</li>
* </ul>
- * Use {@link #getJetPlayer()} to construct a JetPlayer instance. JetPlayer is a singleton class.
- *
+ * Use {@link #getJetPlayer()} to construct a JetPlayer instance. JetPlayer is a singleton class.
+ * </p>
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use JetPlayer, read the
+ * <a href="{@docRoot}guide/topics/media/jetplayer.html">JetPlayer</a> developer guide.</p></div>
*/
public class JetPlayer
{
diff --git a/media/java/android/media/MediaPlayer.java b/media/java/android/media/MediaPlayer.java
index ec1c27a..eb32563 100644
--- a/media/java/android/media/MediaPlayer.java
+++ b/media/java/android/media/MediaPlayer.java
@@ -43,8 +43,6 @@
* MediaPlayer class can be used to control playback
* of audio/video files and streams. An example on how to use the methods in
* this class can be found in {@link android.widget.VideoView}.
- * Please see <a href="{@docRoot}guide/topics/media/index.html">Audio and Video</a>
- * for additional help using MediaPlayer.
*
* <p>Topics covered here are:
* <ol>
@@ -54,6 +52,12 @@
* <li><a href="#Callbacks">Register informational and error callbacks</a>
* </ol>
*
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use MediaPlayer, read the
+ * <a href="{@docRoot}guide/topics/media/mediaplayer.html">Media Playback</a> developer guide.</p>
+ * </div>
+ *
* <a name="StateDiagram"></a>
* <h3>State Diagram</h3>
*
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index 8f5d0e5..7b42ac3 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -60,9 +60,15 @@
* applications are required to create MediaRecorder objects on threads with a
* Looper running (the main UI thread by default already has a Looper running).
*
- * <p>See the <a href="{@docRoot}guide/topics/media/index.html">Audio and Video</a>
- * documentation for additional help with using MediaRecorder.
- * <p>Note: Currently, MediaRecorder does not work on the emulator.
+ * <p><strong>Note:</strong> Currently, MediaRecorder does not work on the emulator.
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use MediaRecorder for recording video, read the
+ * <a href="{@docRoot}guide/topics/media/camera.html#capture-video">Camera</a> developer guide.
+ * For more information about how to use MediaRecorder for recording sound, read the
+ * <a href="{@docRoot}guide/topics/media/audio-capture.html">Audio Capture</a> developer guide.</p>
+ * </div>
*/
public class MediaRecorder
{
diff --git a/opengl/java/android/opengl/GLSurfaceView.java b/opengl/java/android/opengl/GLSurfaceView.java
index 4c7f84e..51b7c58 100644
--- a/opengl/java/android/opengl/GLSurfaceView.java
+++ b/opengl/java/android/opengl/GLSurfaceView.java
@@ -54,6 +54,12 @@
* <li>Optionally wraps, traces, and/or error-checks the renderer's OpenGL calls.
* </ul>
*
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use OpenGL, read the
+ * <a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL</a> developer guide.</p>
+ * </div>
+ *
* <h3>Using GLSurfaceView</h3>
* <p>
* Typically you use GLSurfaceView by subclassing it and overriding one or more of the
@@ -636,6 +642,13 @@
* this interface, and then call {@link GLSurfaceView#setRenderer} to
* register the renderer with the GLSurfaceView.
* <p>
+ *
+ * <div class="special reference">
+ * <h3>Developer Guides</h3>
+ * <p>For more information about how to use OpenGL, read the
+ * <a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL</a> developer guide.</p>
+ * </div>
+ *
* <h3>Threading</h3>
* The renderer will be called on a separate thread, so that rendering
* performance is decoupled from the UI thread. Clients typically need to
diff --git a/opengl/java/android/opengl/package.html b/opengl/java/android/opengl/package.html
index 7175b33..3c57af9 100644
--- a/opengl/java/android/opengl/package.html
+++ b/opengl/java/android/opengl/package.html
@@ -1,5 +1,8 @@
<HTML>
<BODY>
-Provides OpenGL utilities.
+<p>Provides an OpenGL ES static interface and utilities.</p>
+
+<p>For more information about how to use OpenGL, read the
+<a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL</a> developer guide.</p>
</BODY>
</HTML>
diff --git a/opengl/java/javax/microedition/khronos/opengles/package.html b/opengl/java/javax/microedition/khronos/opengles/package.html
new file mode 100644
index 0000000..0e3dbee
--- /dev/null
+++ b/opengl/java/javax/microedition/khronos/opengles/package.html
@@ -0,0 +1,8 @@
+<HTML>
+<BODY>
+<p>Provides a standard OpenGL interface.</p>
+
+<p>For more information about how to use OpenGL, read the
+<a href="{@docRoot}guide/topics/graphics/opengl.html">OpenGL</a> developer guide.</p>
+</BODY>
+</HTML>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packages/SystemUI/res/layout/navigation_bar.xml
index 25bc2ea..d19fd81 100644
--- a/packages/SystemUI/res/layout/navigation_bar.xml
+++ b/packages/SystemUI/res/layout/navigation_bar.xml
@@ -156,7 +156,7 @@
android:layout_height="match_parent"
android:layout_width="match_parent"
android:visibility="gone"
- android:paddingTop="24dp"
+ android:paddingTop="0dp"
>
<LinearLayout
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index e2cff68..55d101a 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -123,7 +123,7 @@
<string name="accessibility_tty_enabled" msgid="4613200365379426561">"Téléscripteur activé"</string>
<string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Sonnerie en mode vibreur"</string>
<string name="accessibility_ringer_silent" msgid="9061243307939135383">"Sonnerie en mode silencieux"</string>
- <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> supprimé."</string>
+ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Application \"<xliff:g id="APP">%s</xliff:g>\" ignorée."</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5257833881698644687">"Données 2G-3G désactivées"</string>
<string name="data_usage_disabled_dialog_4g_title" msgid="4789143363492682629">"Données 4G désactivées"</string>
<string name="data_usage_disabled_dialog_mobile_title" msgid="1046047248844821202">"Données mobiles désactivées"</string>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index f618662..d7c73c4 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -123,7 +123,7 @@
<string name="accessibility_tty_enabled" msgid="4613200365379426561">"Телетайп включен."</string>
<string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Вибровызов."</string>
<string name="accessibility_ringer_silent" msgid="9061243307939135383">"Беззвучный режим."</string>
- <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Приложение <xliff:g id="APP">%s</xliff:g> убрано."</string>
+ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Приложение \"<xliff:g id="APP">%s</xliff:g>\" удалено из списка."</string>
<string name="data_usage_disabled_dialog_3g_title" msgid="5257833881698644687">"Передача данных по каналам 2G и 3G отключена"</string>
<string name="data_usage_disabled_dialog_4g_title" msgid="4789143363492682629">"Передача данных по каналу 4G отключена"</string>
<string name="data_usage_disabled_dialog_mobile_title" msgid="1046047248844821202">"Мобильный Интернет отключен"</string>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index 36f81f7..df0c072 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -65,9 +65,9 @@
<string name="screenshot_saving_ticker" msgid="7403652894056693515">"Ekran görüntüsü kaydediliyor..."</string>
<string name="screenshot_saving_title" msgid="8242282144535555697">"Ekran görüntüsü kaydediliyor..."</string>
<string name="screenshot_saving_text" msgid="2419718443411738818">"Ekran görüntüsü kaydediliyor."</string>
- <string name="screenshot_saved_title" msgid="6461865960961414961">"Ekran görüntüsü yakalandı."</string>
+ <string name="screenshot_saved_title" msgid="6461865960961414961">"Ekran görüntüsü alındı."</string>
<string name="screenshot_saved_text" msgid="1152839647677558815">"Ekran görüntünüzü izlemek için dokunun."</string>
- <string name="screenshot_failed_title" msgid="705781116746922771">"Ekran görüntüsü yakalanamadı."</string>
+ <string name="screenshot_failed_title" msgid="705781116746922771">"Ekran görüntüsü alınamadı."</string>
<string name="screenshot_failed_text" msgid="8134011269572415402">"Ekran görüntüsü kaydedilemedi. Depolama birimi kullanımda olabilir."</string>
<string name="usb_preference_title" msgid="6551050377388882787">"USB dosya aktarım seçenekleri"</string>
<string name="use_mtp_button_title" msgid="4333504413563023626">"Medya oynatıcı olarak ekle (MTP)"</string>