Merge "ContentValues: improve documentation" into nyc-dev
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java
index 50e7356..0f64b92 100644
--- a/core/java/android/database/sqlite/SQLiteDatabase.java
+++ b/core/java/android/database/sqlite/SQLiteDatabase.java
@@ -1431,10 +1431,9 @@
* row. The keys should be the column names and the values the
* column values
* @param conflictAlgorithm for insert conflict resolver
- * @return the row ID of the newly inserted row
- * OR the primary key of the existing row if the input param 'conflictAlgorithm' =
- * {@link #CONFLICT_IGNORE}
- * OR -1 if any error
+ * @return the row ID of the newly inserted row OR <code>-1</code> if either the
+ * input parameter <code>conflictAlgorithm</code> = {@link #CONFLICT_IGNORE}
+ * or an error occurred.
*/
public long insertWithOnConflict(String table, String nullColumnHack,
ContentValues initialValues, int conflictAlgorithm) {
diff --git a/core/res/res/values/styles_holo.xml b/core/res/res/values/styles_holo.xml
index fdf9e31..8ca12ae 100644
--- a/core/res/res/values/styles_holo.xml
+++ b/core/res/res/values/styles_holo.xml
@@ -1172,7 +1172,8 @@
<style name="Widget.Holo.Light.FastScroll" parent="Widget.Holo.FastScroll" />
- <style name="Widget.Holo.SuggestionItem" parent="TextAppearance.Holo.Medium">
+ <style name="Widget.Holo.SuggestionItem">
+ <item name="textAppearance">@android:style/TextAppearance.Holo.Medium</item>
<item name="background">@color/white</item>
<item name="drawablePadding">8dip</item>
<item name="gravity">start|center_vertical</item>
@@ -1188,9 +1189,9 @@
<item name="textColor">@color/black</item>
</style>
- <style name="TextAppearance.Holo.SuggestionHighlight" parent="TextAppearance.SuggestionHighlight" />
+ <style name="TextAppearance.Holo.SuggestionHighlight" parent="@android:style/TextAppearance.SuggestionHighlight" />
- <style name="Widget.Holo.SuggestionButton" parent="Widget.Holo.SuggestionItem">
+ <style name="Widget.Holo.SuggestionButton" parent="@android:style/Widget.Holo.SuggestionItem">
<item name="background">#E9E9E9</item>
<item name="textColor">@color/black</item>
</style>
diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml
index 6752e3c..3ed8daa 100644
--- a/core/res/res/values/styles_material.xml
+++ b/core/res/res/values/styles_material.xml
@@ -1001,7 +1001,8 @@
<item name="contentDescription">@string/media_route_button_content_description</item>
</style>
- <style name="Widget.Material.SuggestionItem" parent="@android:style/TextAppearance.Material.Body1">
+ <style name="Widget.Material.SuggestionItem">
+ <item name="textAppearance">@android:style/TextAppearance.Material.Body1</item>
<item name="textColor">?attr/textColorSecondary</item>
<item name="drawablePadding">8dip</item>
<item name="gravity">start|center_vertical</item>
@@ -1016,11 +1017,12 @@
<item name="textSize">14sp</item>
</style>
- <style name="TextAppearance.Material.TextSuggestionHighlight" parent="Widget.Material.SuggestionItem">
+ <style name="TextAppearance.Material.TextSuggestionHighlight">
<item name="textColor">?attr/textColorPrimary</item>
</style>
- <style name="Widget.Material.SuggestionButton" parent="@android:style/TextAppearance.Material.Button">
+ <style name="Widget.Material.SuggestionButton">
+ <item name="textAppearance">@android:style/TextAppearance.Material.Button</item>
<item name="textColor">?attr/colorAccent</item>
<item name="drawablePadding">8dip</item>
<item name="gravity">start|center_vertical</item>
diff --git a/docs/html/preview/api-overview.jd b/docs/html/preview/api-overview.jd
index 110418a..dc78bb9 100644
--- a/docs/html/preview/api-overview.jd
+++ b/docs/html/preview/api-overview.jd
@@ -733,19 +733,21 @@
<p>
Android N introduces APK Signature Scheme v2, a new app-signing scheme that
- offers faster app install times and better protection against unauthorized
- alterations to APK files. Android Studio 2.2 and Gradle provide built-in
- support for APK Signature Scheme v2.
+ offers faster app install times and more protection against unauthorized
+ alterations to APK files. By default, Android Studio 2.2 and the Android
+ Plugin for Gradle 2.2 sign your app using both APK Signature Scheme v2 and
+ the traditional signing scheme, which uses JAR signing.
</p>
<p>
- Although we recommend applying APK Signature Scheme v2 to your app, the new
- scheme is not mandatory. If your app doesn't build properly when using the
- APK Signature Scheme v2, you can use the traditional signing scheme—which
- uses JAR signing—instead. To use the traditional scheme, open the
- module-level <code>build.gradle</code> file and add the
- <code>v2SigningEnabled</code> parameter to your release signing
- configuration, setting this parameter's value to <code>false</code>:
+ Although we recommend applying APK Signature Scheme v2 to your app, this new
+ scheme is not mandatory. If your app doesn't build properly when using APK
+ Signature Scheme v2, you can disable the new scheme. The disabling process
+ causes Android Studio 2.2 and the Android Plugin for Gradle 2.2 to sign your
+ app using only the traditional signing scheme. To sign with only the
+ traditional scheme, open the module-level <code>build.gradle</code> file, then
+ add the line <code>v2SigningEnabled false</code> to your release signing
+ configuration:
</p>
<pre>
@@ -764,12 +766,18 @@
}
</pre>
+<p class="caution"><strong>Caution: </strong> If you sign your app using APK
+ Signature Scheme v2 and make further changes to the app, the app's signature
+ is invalidated. For this reason, use tools such as <code>zipalign</code>
+ before signing your app using APK Signature Scheme v2, not after.
+</p>
+
<p>
- For more information, see the following guides, which describe how to <a href=
- "{@docRoot}studio/tools/publishing/app-signing.html#release-mode"> sign an app
- in Android Studio</a> and how to <a href=
+ For more information, read the Android Studio documents that describe how to
+ <a href="{@docRoot}studio/tools/publishing/app-signing.html#release-mode">
+ sign an app</a> in Android Studio and how to <a href=
"{@docRoot}studio/tools/building/configuring-gradle.html#signing"> configure
- the Gradle build file for signing apps</a>.
+ the build file for signing apps</a> using the Android Plugin for Gradle.
</p>
<h2 id="scoped_directory_access">Scoped directory access</h2>
diff --git a/docs/html/preview/features/data-saver.jd b/docs/html/preview/features/data-saver.jd
index d5cdf27..c4cab18 100644
--- a/docs/html/preview/features/data-saver.jd
+++ b/docs/html/preview/features/data-saver.jd
@@ -14,7 +14,7 @@
<a href="#status">Checking Data Saver Preferences</a>
<ol>
<li>
- <a href="#request-whitelist">Requesting Whitelist Permissions</a>
+ <a href="#request-whitelist">Requesting whitelist permissions</a>
</li>
</ol>
</li>
@@ -138,15 +138,17 @@
If your app needs to use data in the background, it can request whitelist
permissions by sending a
<code>Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS</code>
- (<code>"android.settings.IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS"</code>)
- intent with a <code>package:<your-app-id></code> URI.
+ intent containing a URI of your app's package name: for example,
+ <code>package:MY_APP_ID</code>.
</p>
<p>
- Sending the intent and URI launches the <strong>Settings</strong> app, and
- displays your app's <strong>App Data Usage</strong> page to the user. The
- user can then decide whether to enable background data for your app.
- It is good practice to prompt the user before sending this intent.
+ Sending the intent and URI launches the <strong>Settings</strong> app and
+ displays data usage settings for your app. The user can then decide whether
+ to enable background data for your app. Before you send this intent, it is
+ good practice to first ask the user if they want to launch the
+ <strong>Settings</strong> app for the purpose of enabling background data
+ usage.
</p>
<h2 id="monitor-changes">
@@ -156,9 +158,8 @@
<p>
Apps can monitor changes to Data Saver preferences by creating a {@link
android.content.BroadcastReceiver} to listen for {@code
- ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} ({@code
- "android.net.conn.RESTRICT_BACKGROUND_CHANGED"}) and dynamically registering
- the receiver with {@link android.content.Context#registerReceiver
+ ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} and dynamically
+ registering the receiver with {@link android.content.Context#registerReceiver
Context.registerReceiver()}. When an app receives this broadcast, it should
<a href="#status">check if the new Data Saver preferences affect its
permissions</a> by calling {@code